Show Table of Contents
第 8 章 迁移数据库
8.1. 把自承载引擎数据库迁移到一个远程服务器数据库中
当 Red Hat Virtualization Manager 被初始配置后,您可以把自承载引擎的
engine 数据库迁移到一个远程的数据库服务器。
这个任务被分为两个步骤。第一个步骤:准备远程的 PostgreSQL 数据库。远程数据库服务器需要安装并配置了 Red Hat Enterprise Linux,并且具有所需的订阅。
第二个步骤:迁移数据库,使用 PostgreSQL 的
pg_dump 和 pg_restore 命令来处理数据库的备份和恢复。编辑 /etc/ovirt-engine/engine.conf.d/10-setup-database.conf 文件来包括更新的信息,最少需要更新新数据库服务器的位置信息。如果新数据库服务器中的数据库名称、角色名称或密码也有变化,这些信息也需要在 10-setup-database.conf 文件中进行相应的更新。在这里介绍的步骤中,为了尽量简化对这些文件的修改,我们使用了默认的 engine 数据库设置。
过程 8.1. 为 Red Hat Virtualization Manager 准备远程 PostgreSQL 数据库
- 登录到远程数据库服务器并安装 PostgreSQL server 软件包:
# yum install postgresql-server
- 初始化 PostgreSQL 数据库,启动
postgresql服务,把它设置为在系统引导时被自动启动:# service postgresql initdb # service postgresql start # chkconfig postgresql on
- 使用
postgres用户连接到 psql 命令行界面:# su - postgres $ psql
- 为 Manager 读写数据库创建一个用户。Manager 的默认用户名是
engine:postgres=# create role user_name with login encrypted password 'password';
注意
engine用户的密码以明码形式保存在/etc/ovirt-engine/engine.conf.d/10-setup-database.conf文件中。在新服务器上创建的角色可以使用任何密码,但如果新密码和保存在这个文件中的密码不同,则需要修改这个文件中的密码。 - 创建一个用来保存 Red Hat Virtualization 环境信息的数据库。Manager 的默认数据库名是
engine,默认的用户名是engine:postgres=# create database database_name owner user_name template template0 encoding 'UTF8' lc_collate 'en_US.UTF-8' lc_ctype 'en_US.UTF-8';
- 启用 md5 客户验证机制来允许对数据库进行访问。编辑
/var/lib/pgsql/data/pg_hba.conf文件,在文件底部的、以local开头的行的下面添加以下内容(使用 Manager 的 IP 地址替换 X.X.X.X 的值):host database_name user_name X.X.X.X/32 md5
- 允许 TCP/IP 到数据库的连接。编辑
/var/lib/pgsql/data/postgresql.conf文件,添加以下行:listen_addresses='*'
在这个例子中,postgresql服务被配置为监听所有接口上的连接。您可以使用 IP 地址来指定只监听特定接口上的连接。 - 打开 PostgreSQL 数据库连接所使用的默认端口,保存更新的防火墙规则:
# iptables -I INPUT 5 -p tcp --dport 5432 -j ACCEPT # service iptables save
- 重启
postgresql服务:# service postgresql restart
另外,可以设置 SSL 来进行安全的数据库连接(请参阅 http://www.postgresql.org/docs/8.4/static/ssl-tcp.html#SSL-FILE-USAGE)。
过程 8.2. 迁移数据库
- 登录到任何一个运行引擎的主机,把环境设置为
global维护模式。这会禁用高可用性代理,并防止在进行数据库迁移过程中出现 Manager 迁移的情况:# hosted-engine --set-maintenance --mode=global
- 登录到 Manager 虚拟机,停止
ovirt-engine服务,从而使它不会影响到引擎的备份:# service ovirt-engine stop
- 使用 PostgreSQL 的
pg_dump命令创建engine数据库的备份:# su - postgres -c 'pg_dump -F c engine -f /tmp/engine.dump'
- 把备份文件复制到新的数据库中。目标目录需要允许
postgres用户对它的访问:# scp /tmp/engine.dump root@new.database.server.com:/tmp/engine.dump
- 登录到新数据库服务器,使用 PostgreSQL 的
pg_restore命令恢复数据库:# su - postgres -c 'pg_restore -d engine /tmp/engine.dump'
- 登录到 Manager 虚拟机,更新
/etc/ovirt-engine/engine.conf.d/10-setup-database.conf文件中的设置。使用新数据库服务器的 IP 地址替换ENGINE_DB_HOST的localhost。如果新数据库服务器的引擎名称、角色名称或密码也有变化,则还需修改这个文件中的相应值。 - 现在,数据库已被迁移,启动
ovirt-engine服务:# service ovirt-engine start
- 登录到运行引擎的主机,关闭维护模式,启用高可用性代理:
# hosted-engine --set-maintenance --mode=none

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.