商讯信箱
用户名: @
密  码:   注册|忘记密码
登录
个人用户经销商
您的位置:首页 > 技术频道 > 正文

使用WebSphere中间件构建数据库环境

    为主要计算机上的每个数据库配置 HADR 变量。(此处显示的步骤仅适用于主要计算机。)必须对每个数据库重复此过程。在设置这些变量时,请验证 hard_local_host 和 hard_remote_host 变量是否引用了正确的计算机。而且,hadr_local_svc 和 hadr_remote_svc 变量必须与上述 /etc/services 文件中定义的名称相匹配。下面我们以“Sample”数据库为例进行说明:
    清单 2. Sample 数据库的 HADR 变量
>db2 update db cfg for Sample using hadr_local_host <primary machine IP address>
>db2 update db cfg for Sample using hadr_remote_host <standby machine IP address>
>db2 update db cfg for Sample using hadr_local_svc ha_sample
>db2 update db cfg for Sample using hadr_remote_svc ha_sample_int
>db2 update db cfg for Sample using hadr_remote_inst <DB2 instance name on the standby>
>db2 update db cfg for Sample using hadr_timeout 120
>db2 update db cfg for Sample using hadr_syncmode nearsync
>db2 update db cfg for Sample using logretain on
>db2 update db cfg for Sample using LOGINDEXBUILD on
>db2 update alternate server for database Sample using hostname <Standby IP address>
port 60000
    上例中,NEARSYNC 被选为同步模式。此模式虽然比 SYNC 模式提供较少的事务丢失保护,但比 SYNC 模式的事务响应时间要短一些。注意,清单 2 中的最后命令可以为 DB2 HADR 启用自动客户端重新路由功能,并且端口 60000 是备用计算机上的 DB2 实例端口号。

    请通过输入此命令来验证您的配置值,如清单 3 所示:
db2 get db cfg for <database_name> | grep HADR
    清单 3. 主要计算机上 Sample 数据库的 HADR 配置
>db2 get db cfg for sample | grep HADR

HADR database role = STANDARD
HADR local host name (HADR_LOCAL_HOST) = svtlewis.rchland.ibm.com
HADR local service name (HADR_LOCAL_SVC) = ha_sample
HADR remote host name (HADR_REMOTE_HOST) = svtclark.rchland.ibm.com
HADR remote service name (HADR_REMOTE_SVC) = ha_sample_int
HADR instance name of remote server (HADR_REMOTE_INST) = db2inst1
HADR timeout value (HADR_TIMEOUT) = 120
HADR log write synchronization mode (HADR_SYNCMODE) = NEARSYNC
    现在,我们可以从主要计算机上备份数据库,并将其还原到备用计算机上。下面的命令将备份主要计算机上的数据库(如清单 4 中所示。)您需要对每个数据库重复此命令。请注意,您无法对正在连接其客户端应用程序的数据库执行备份。
cd <temp_backup_directory>
db2 backup db <database_name>
    每个数据库的备份副本将存储在 <temp_backup_directory> 中。
    清单 4. 主要计算机上的备份数据库
>cd tmpdir
>db2 backup db sample

Backup successful. The timestamp for this backup image is :20061101161943
    将主要机计算机上生成的备份文件传输到备用计算机。要将数据库还原到备用计算机,请使用您的 DB2 用户 ID 登录到备用计算机。下面的命令将把数据库还原到备用计算机上(清单 5)。您需要对每个数据库重复此命令:

db2 restore db <database_name> from <temp_restore_directory> replace history file
清单 5. 将数据库还原到备用计算机上
>cd tmpdir
>db2 restore db sample replace history file

DB20000I The RESTORE DATABASE command completed successfully.
    在将所有数据库还原到备用计算机上之后,必须将清单 6 中所示的用于各个数据库的所有 DB2 HADR 变量从主要 DB2 服务器复制到备用服务器。从备用 DB2 服务器的角度看,主要 DB2 服务器就是远程主机。因此,您需要修改备用计算机上的 hadr_local_host、hadr_remote_host、hadr_local_svc 和 hadr_remote_svc 值。另外,必须更新自动客户端重新路由,以指向主要计算机。
    请注意,端口 60000 是主要计算机上的 DB2 实例端口号。
    清单 6. 备用计算机上 Sample 数据库的 HADR 变量
>db2 update db cfg for Sample using hadr_local_host <standby machine IP address>
>db2 update db cfg for Sample using hadr_remote_host <primary machine IP address>
>db2 update db cfg for Sample using hadr_local_svc ha_sample_int
>db2 update db cfg for Sample using hadr_remote_svc ha_sample

>db2 update alternate server for database Sample using hostname <Primary machine IP
address> port 60000
    在主要计算机或备用计算机上启动 DB2 HADR 之前,正确设置所有 HADR 参数的值非常重要。如果这些参数中任何一个参数为空或者配置不正确,DB2 HADR 服务器都不会正常启动。另外,还需要先在备用计算机上启动 DB2 HADR,然后才可以在主要计算机上启动它。

    在备用计算机上,首先禁用数据库,然后发出 start hadr 命令,将其作为备用数据库启动(清单 7)。
db2 deactivate db <database_name>
db2 start hadr on db <database_name> as standby
    清单 7. 禁用 Sample 并将其作为备用数据库启动
>db2 deactivate db sample
>db2 start hadr on db sample as standby

DB20000I The START HADR ON DATABASE command completed successfully

>db2 get snapshot for db on sample | grep Role

Role = Standby
    在主要计算机上,首先激活数据库,然后发出 start hadr 命令将其作为主要数据库启动(清单 8)。
db2 activate db <database_name>
db2 start hadr on db <database_name> as primary
    清单 8. 激活 Sample 并将其作为主要数据库启动
> db2 activate db sample
> db2 start hadr on db sample as primary

DB20000I The START HADR ON DATABASE command completed successfully

> db2 get snapshot for db on sample | grep Role

Role = Primary
    在启动 DB2 HADR 服务器时,您会收到一条指示“START HADR ON DATABASE command completed successfully”的消息。为确保 HADR 服务器在主要计算机和备用计算机上使用了正确的角色运行,您可以向主要计算机和备用计算机发出以下命令进行验证:

db2 get snapshot for db on <database_name> | grep Role

    在 HADR 状态角色下,您将看到用于备用计算机的“Standby”状态和用于主要计算机的“Primary”状态。如果得不到每个数据库的正确标识符,则需要检查前面的所有步骤。

    在备用计算机和主要计算机上的数据库成功启动后,您需要确保两个数据库处于同步状态。否则,故障转移将无法成功进行,从而会导致发生不希望的结果,如数据丢失。发出以下命令,以检查主要和备用数据库计算机上两个数据库的状态:

db2 get snapshot for database on <database_name> | grep State

    您需要等待备用数据库连接到主要数据库之后,才能使两个数据库处于对等模式。在数据库处于对等模式之后,主要计算机和备用计算机上的 DB2 HADR 服务器就准备就绪可供使用了。
1 2 3 4 5
【内容导航】
第1页: 引言 第2页: DB2 HADR 设置
第3页: JDBC Driver 的行为 第4页: HADR 接管
第5页: 结束语
©版权所有。未经许可,不得转载。
[责任编辑:振宇]
[an error occurred while processing this directive]