第 13 章 备份和迁移
13.1. 备份和恢复 Red Hat Virtualization Manager
13.1.1. 备份 Red Hat Virtualization Manager - 概述
使用 engine-backup 工具对 Red Hat Virtualization Manager 进行常规备份。该工具将引擎数据库和配置文件备份到单个文件中,并可在不中断 ovirt-engine 服务的情况下运行。
13.1.2. engine-backup 命令的语法
engine-backup 命令有两种基本模式之一:
# engine-backup --mode=backup
# engine-backup --mode=restore
这些两种模式通过一组参数进一步扩展,允许您指定引擎数据库的备份范围和不同凭据的范围。运行 engine-backup --help 获取完整的参数及其功能列表。
基本选项
--mode
- 指定命令将执行备份操作还是恢复操作。有两个可用选项 -
backup
和restore
。这是必需参数。 --file
- 指定在备份模式中要备份的文件的路径和名称,以及在恢复模式中读取备份数据的文件的路径和名称。这是 backup 模式和 restore 模式中的必要参数。
--log
- 指定要写入备份或恢复操作的文件的路径和名称。在 backup 模式和 restore 模式中,此参数都是必需的。
--scope
- 指定 backup 或 restore 操作的范围。有四个选项: 可备份或恢复所有数据库和配置数据 ;
文件
,仅备份或恢复系统上的文件;db
,仅备份或恢复管理器数据库;以及dwhdb
,仅备份或恢复数据仓库数据库。默认范围
都是
。在相同的 engine-backup 命令中,可以多次指定--scope
参数。
Manager 数据库选项
只有在以
restore
模式使用 engine-backup 命令时,以下选项才可用。下面的选项语法适用于恢复管理器数据库。恢复数据仓库数据库具有相同的选项。有关数据仓库选项语法,请参阅 engine-backup --help。
--provision-db
- 为要恢复到的 Manager 数据库备份创建一个 PostgreSQL 数据库。在远程主机上恢复备份或全新安装(尚未配置 PostgreSQL 数据库)时,这是必需的参数。
--change-db-credentials
- 允许您指定备用凭证,以使用存储在备份本身中的凭证恢复 Manager 数据库。有关这个参数所需的附加参数,请参阅 engine-backup --help。
--restore-permissions
或--no-restore-permissions
- 恢复(或不恢复)数据库用户权限。恢复备份时,需要这些参数之一。注意如果备份包含额外数据库用户的授权,使用
--restore-permissions
和--provision-db
(或--provision-dwh-db
)选项恢复备份将创建具有随机密码的额外用户。如果额外用户需要访问恢复的系统,则必须手动更改这些密码。请参阅 https://access.redhat.com/articles/2686731。
13.1.3. 使用 engine-backup 命令创建备份
在 Manager 处于活跃状态时,可以使用 engine-backup 命令备份 Red Hat Virtualization Manager。在
--scope
中附加以下选项之一来指定要执行的备份:
- All :管理器中所有数据库和配置文件的完整备份
文件
:仅备份系统上的文件db
:仅备份管理器数据库dwhdb
:仅备份数据仓库数据库
重要
要将数据库恢复到全新安装的 Red Hat Virtualization Manager,仅数据库备份不足;管理器还需要访问配置文件。任何指定默认范围的备份(
all
)都必须由 文件
范围或文件系统备份编译。
过程 13.1. engine-backup 命令使用示例
- 登录到运行 Red Hat Virtualization Manager 的机器。
- 创建备份:
例 13.1. 创建完整备份
# engine-backup --scope=all --mode=backup --file=file_name --log=log_file_name
例 13.2. 创建管理器数据库备份
# engine-backup --scope=files --scope=db --mode=backup --file=file_name --log=log_file_name
将db
选项替换为dwhdb
以备份数据仓库数据库。使用提供的路径和文件名创建包含备份的tar
文件。
包含备份的
tar
文件现在可以用于恢复环境。
13.1.4. 使用 engine-backup 命令恢复备份
使用 engine-backup 命令恢复备份涉及比创建备份更多的步骤,具体取决于恢复目的地。例如,engine-backup 命令可用于将备份恢复到 Red Hat Virtualization 的现有安装,并使用本地或远程数据库。
重要
备份只能恢复到与备份环境相同的主版本的环境。例如,Red Hat Virtualization 版本 4.0 环境的备份只能恢复到另一个 Red Hat Virtualization 版本 4.0 环境。要查看备份文件中所含的 Red Hat Virtualization 版本,请解压缩备份文件,并在解压缩文件的根目录下的
version
文件中读取值。
13.1.5. 将备份恢复到全新安装
engine-backup 命令可用于将备份恢复到 Red Hat Virtualization Manager 的新安装。以下流程必须在安装了基础操作系统的机器上执行,并安装了 Red Hat Virtualization Manager 所需的软件包,但尚未运行 engine-setup 命令。这个过程假设可以从要恢复备份的机器访问备份文件或文件。
过程 13.2. 将备份恢复到全新安装
- 登录到 Manager 机器。如果您要将 engine 数据库恢复到远程主机,则需要登录并在该主机上执行相关的操作。同样,如果也将数据仓库恢复到远程主机,则需要登录并在该主机上执行相关操作。
- 恢复完整的备份或仅数据库备份。
- 恢复完整的备份:
# engine-backup --mode=restore --file=file_name --log=log_file_name --provision-db --restore-permissions
如果数据仓库也作为完整备份的一部分恢复,请置备额外的数据库:engine-backup --mode=restore --file=file_name --log=log_file_name --provision-db --provision-dwh-db --restore-permissions
- 通过恢复配置文件和数据库备份来恢复数据库:
# engine-backup --mode=restore --scope=files --scope=db --file=file_name --log=log_file_name --provision-db --restore-permissions
上面的示例恢复 Manager 数据库的备份。# engine-backup --mode=restore --scope=files --scope=dwhdb --file=file_name --log=log_file_name --provision-dwh-db --restore-permissions
上面的示例恢复数据仓库数据库的备份。
如果成功,则会显示以下输出:You should now run engine-setup. Done.
- 运行以下命令并按照提示配置恢复的 Manager:
# engine-setup
Red Hat Virtualization Manager 已恢复到备份中保留的版本。要更改新 Red Hat Virtualization 系统的完全限定域名,请参阅 第 18.1.1 节 “oVirt Engine Rename 工具”。
13.1.6. 将备份恢复到覆盖现有安装
engine-backup 命令可将备份恢复到已安装和设置 Red Hat Virtualization Manager 的机器。当您备份安装、在该安装上执行更改,然后从备份中恢复安装时,这非常有用。
重要
当恢复备份以覆盖现有安装时,您必须使用 engine-cleanup 命令清理现有安装,然后才能使用 engine-backup 命令。因为 engine-cleanup 命令只清理引擎数据库,且不会丢弃数据库或删除拥有该数据库的用户,因此您不需要创建新数据库或指定数据库凭证,因为用户和数据库已经存在。
过程 13.3. 将备份恢复到覆盖现有安装
- 登录到 Red Hat Virtualization Manager 机器。
- 删除配置文件并清理与 Manager 关联的数据库:
# engine-cleanup
- 恢复完整备份或仅数据库备份:
- 恢复完整备份:
# engine-backup --mode=restore --file=file_name --log=log_file_name --restore-permissions
- 通过恢复配置文件和数据库备份来恢复数据库备份:
# engine-backup --mode=restore --scope=files --scope=db --file=file_name --log=log_file_name --restore-permissions
上面的示例恢复 Manager 数据库的备份。如有必要,还要恢复数据仓库数据库:# engine-backup --mode=restore --scope=dwhdb --file=file_name --log=log_file_name --restore-permissions
如果成功,则会显示以下输出:You should now run engine-setup. Done.
- 运行以下命令并按照提示重新配置防火墙并确保正确配置了
ovirt-engine
服务:# engine-setup
13.1.7. 使用不同凭证恢复备份
engine-backup 命令可将备份恢复到已安装和配置 Red Hat Virtualization Manager 的机器,但备份中的数据库凭证与要恢复备份的计算机上的数据库凭证不同。当您进行安装的备份,并希望将安装从备份恢复到不同的系统时,这非常有用。
重要
当恢复备份以覆盖现有安装时,您必须使用 engine-cleanup 命令清理现有安装,然后才能使用 engine-backup 命令。因为 engine-cleanup 命令只清理引擎数据库,且不会丢弃数据库或删除拥有该数据库的用户,因此您不需要创建新数据库或指定数据库凭证,因为用户和数据库已经存在。但是,如果引擎数据库所有者的凭据未知,您必须在恢复备份前更改它们。
过程 13.4. 使用不同凭证恢复备份
- 登录到安装 Red Hat Virtualization Manager 的机器。
- 运行以下命令并按照提示删除与 Manager 关联的数据库:
# engine-cleanup
- 如果该用户的凭证未知,请更改引擎数据库的所有者密码:
- 输入 postgresql 命令行:
# su postgres $ psql
- 更改拥有引擎数据库的用户的密码:
postgres=# alter role user_name encrypted password 'new_password';
如果需要,对拥有ovirt_engine_dwh
数据库的用户重复此操作。
- 使用
--change-db-credentials
参数恢复完整的备份或仅数据库备份,以传递新数据库的凭证。在本地的数据库到管理器的 database_location 是localhost
。注意以下示例为每个数据库使用--*password
选项而不指定密码,这将为每个数据库提示输入密码。可以在命令本身中为这些选项提供密码,但不建议密码存储在 shell 历史记录中。另外,--*passfile=
password_file 选项可用于每个数据库安全地将密码传递给engine-backup
工具,而无需交互式提示。- 恢复完整的备份:
# engine-backup --mode=restore --file=file_name --log=log_file_name --change-db-credentials --db-host=database_location --db-name=database_name --db-user=engine --db-password --no-restore-permissions
如果数据仓库也作为完整备份的一部分恢复,请包括额外数据库的修订凭证:engine-backup --mode=restore --file=file_name --log=log_file_name --change-db-credentials --db-host=database_location --db-name=database_name --db-user=engine --db-password --change-dwh-db-credentials --dwh-db-host=database_location --dwh-db-name=database_name --dwh-db-user=ovirt_engine_history --dwh-db-password --no-restore-permissions
- 通过恢复配置文件和数据库备份来恢复数据库备份:
# engine-backup --mode=restore --scope=files --scope=db --file=file_name --log=log_file_name --change-db-credentials --db-host=database_location --db-name=database_name --db-user=engine --db-password --no-restore-permissions
上面的示例恢复 Manager 数据库的备份。# engine-backup --mode=restore --scope=files --scope=dwhdb --file=file_name --log=log_file_name --change-dwh-db-credentials --dwh-db-host=database_location --dwh-db-name=database_name --dwh-db-user=ovirt_engine_history --dwh-db-password --no-restore-permissions
上面的示例恢复数据仓库数据库的备份。
如果成功,则会显示以下输出:You should now run engine-setup. Done.
- 运行以下命令并按照提示重新配置防火墙并确保正确配置了
ovirt-engine
服务:# engine-setup
13.1.8. 将引擎数据库迁移到远程服务器数据库
在 Red Hat Virtualization Manager 初始配置后,您可以将
engine
数据库迁移到远程数据库服务器。使用 engine-backup 创建数据库备份,并在新的数据库服务器中恢复它。此流程假设新数据库服务器安装了 Red Hat Enterprise Linux 7,并配置了适当的订阅。请参阅安装指南中的订阅所需 权利。
过程 13.5. 迁移数据库
- 登录到 Red Hat Virtualization Manager 机器并停止
ovirt-engine
服务,使其不会影响到引擎备份:# systemctl stop ovirt-engine.service
- 创建
engine
数据库备份:# engine-backup --scope=files --scope=db --mode=backup --file=file_name --log=log_file_name
- 将备份文件复制到新的数据库服务器:
# scp /tmp/engine.dump root@new.database.server.com:/tmp
- 登录到新的数据库服务器并安装 engine-backup :
# yum install ovirt-engine-tools-backup
- 在新数据库服务器上恢复数据库。FILE_ NAME 是从 Manager 复制的备份文件。
# engine-backup --mode=restore --scope=files --scope=db --file=file_name --log=log_file_name --provision-db --no-restore-permissions
- 现在数据库已迁移,启动
ovirt-engine
服务:# systemctl start ovirt-engine.service