第 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- 在备份模式中,指定备份要被保持到的路径和文件名;在恢复模式中,指定备份文件的路径和文件名。这个参赛在备份和恢复模式中都是必须的。
--log- 在备份或恢复操作中的日志文件的路径和文件名。这个参数在备份模式和恢复模式中都是必须的。
--scope- 指定备份或恢复操着的范围。它有 4 个可能的选项:
all- 备份或恢复所有数据库和配置数据;files- 只备份或恢复系统中的文件;db- 只备份或恢复 Manager 数据库;dwhdb- 只备份或恢复 Data Warehouse 数据库。默认设置是all。在同一个engine-backup命令中可以多次指定--scope参数。
Manager 数据库选项
engine-backup 命令的 restore 模式中使用。下面介绍的选项语法适用于恢复 Manager 数据库,但在恢复 Data Warehouse 数据库时也可以使用相同的选项。如需 Data Warehouse 选项语法,请参见 engine-backup --help。
--provision-db- 创建 PostgreSQL 数据库,用于恢复 Manager 数据库备份。在远程主机或尚未配置有 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 命令创建一个备份
engine-backup 命令为 Red Hat Virtualization Manager 创建一个备份的操作可以在 Manager 处于活跃状态时进行。把以下选项之一附加到 --scope 参数后面来指定要进行什么备份:
all:对 Manager 上的所有数据库和配置文件进行一个完整的备份files:只备份系统中的文件db:只备份 Manager 数据库dwhdb:只备份 Data Warehouse 数据库
重要
all 的命令都需要包括一个 files 范围,或一个文件系统备份。
过程 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. 创建一个 Manager 数据库备份
# engine-backup --scope=files --scope=db --mode=backup --file=file_name --log=log_file_name
使用dwhdb替换db选项来备份 Data Warehouse 数据库。一个包括备份数据的tar文件会被创建。
tar 文件现在可以被用来进行环境恢复。
13.1.4. 使用 engine-backup 命令恢复一个备份
engine-backup 命令可以把备份恢复为一个全新的 Red Hat Enterprise Virtualization 安装,或在一个已经存在的 Red Hat Virtualization 系统上进行恢复;它在恢复的时候可以使用本地或远程的数据库。
重要
version 文件中的值。
13.1.5. 在一个全新的系统上恢复一个备份
engine-backup 命令可以被用来在一个全新安装的 Red Hat Virtualization Manager 系统上恢复一个备份。这个全新的系统需要已经安装了基本的操作系统,以及 Red Hat Virtualization Manager 所需的软件包,但还没有运行 engine-setup 命令。另外,需要进行恢复的系统所在的机器需要可以访问备份文件。
过程 13.2. 在一个全新的系统上恢复一个备份
- 登录到 Manager 所在的机器。如果准备在远程主机上恢复引擎数据库,则需要登录该主机并进行相关操作。同样,如果需要在远程主机上恢复 Data Warehouse,同样需要登录该主机并进行相关操作。
- 恢复完整备份或只包括数据库的备份。
- 恢复一个完全备份:
# engine-backup --mode=restore --file=file_name --log=log_file_name --provision-db --restore-permissions
如果 Data Warehouse 也需要作为完整备份的一部分恢复,请部署额外的数据库: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
以上例子恢复了 Data Warehouse 数据库的备份。
如果运行成功,以下输出会被显示:You should now run engine-setup. Done.
- 运行以下命令,并根据提示配置恢复的 Manager:
# engine-setup
13.1.6. 在一个已经配置过的系统上恢复一个备份
engine-backup 命令可以在已经安装并配置了 Red Hat Virtualization Manager 的机器上恢复备份。如果您在安装后进行了备份,然后在更改了该安装后想从备份恢复安装,可以使用这个方法。
重要
engine-backup 命令前运行 engine-cleanup 来清除已经存在的安装。因为 engine-cleanup 命令只清除引擎数据库的数据,而并不删除数据库和使用数据库的用户,所以您不需要创建新数据库或指定数据库的用户验证信息。
过程 13.3. 在一个已经配置过的系统上恢复一个备份
- 登录到 Red Hat Virtualization Manager 机器。
- 删除配置文件并清理与 Red Hat Virtualization 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 数据库的备份。如果需要,也可以恢复 Data Warehouse 数据库:# 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-backup 命令前运行 engine-cleanup 清除已经存在的安装。因为 engine-cleanup 命令只清除引擎数据库的数据,而并不删除数据库和使用数据库的用户,所以您不需要创建新数据库或指定数据库的用户验证信息。但是,如果您不知道引擎数据库所有者的验证信息,您就需要在恢复备份前改变它。
过程 13.4. 使用不同的用户验证信息恢复一个备份
- 登录到 Red Hat Virtualization Manager 所在的机器。
- 运行以下命令,根据提示删除配置文件并清理与 Red Hat Enterprise Virtualization Manager 相关的数据库:
# engine-cleanup
- 如果不知道引擎数据库的所有者的验证信息,修改它的密码:
- 进入 postgresql 命令行:
# su postgres $ psql
- 修改
engine数据库所有者的密码:postgres=# alter role user_name encrypted password 'new_password';
如果需要,为拥有ovirt_engine_dwh数据库的用户重复这个步骤。
- 恢复一个完整备份或数据库备份(通过
--change-db-credentials参数指定新数据库的凭证信息)。Manager 本地数据库的 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
如果 Data Warehouse 也作为完整备份的一部分进行恢复,请包含其他数据库的修改后凭证: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
以上例子恢复了 Data Warehouse 数据库的备份。
如果运行成功,以下输出会被显示:You should now run engine-setup. Done.
- 运行以下命令并根据提示重新配置防火墙,并确认
ovirt-engine服务被正确配置:# engine-setup
13.1.8. 把引擎数据库迁移到一个远程服务器数据库中
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

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.