db2 HADR搭建

来源:互联网 发布:厦门大学大数据实验室 编辑:程序博客网 时间:2024/05/16 14:51

配置过程:
1. 在DB1和DB2上安装DB2,并创建缺省实例db2inst1,服务端口:50000,我们使用缺省的实例所有者用户db2inst1,密码:db2inst1
DB1地址192.168.1.162;DB2地址192.168.1.163
2. 在DB1上创建样本数据库SAMPLE
3. 修改SAMPLE数据库配置参数LOGRETAIN为ON,以使该数据库日志记录方式改为存档日志。
UPDATE DB CFG FOR SAMPLE USING LOGRETAIN ON
UPDATE DB CFG FOR SAMPLE USING TRACKMOD ON

  1. 修改索引日志记录参数
    UPDATE DB CFG FOR SAMPLE USING LOGINDEXBUILD ON
    UPDATE DB CFG FOR SAMPLE USING INDEXREC RESTART
    注:这一步并不是必须的。
  2. 备份数据库SAMPLE
    BACKUP DB SAMPLE TO /$PATH

  3. 将得到的数据库映像文件复制到DB2对应的目录

  4. 在DB2上恢复数据库SAMPLE:
    RESTORE DATABASE SAMPLE FROM “$path ” TAKEN AT
    dbbak_timestamp REPLACE HISTORY FILE WITHOUT PROMPTING
  5. 配置自动客户端重新路由:
    在主数据库服务器(DBSERV1)上:
    UPDATE ALTERNATE SERVER FOR DATABASE SAMPLE USING HOSTNAME 192.168.1.163 PORT 50000
    在备用数据库服务器上(DBSERV2):
    UPDATE ALTERNATE SERVER FOR DATABASE SAMPLE USING HOSTNAME 192.168.1.162 PORT 50000
  6. 配置HADR服务和侦听端口
    用vi编辑/etc/services文件(需要切换到root用户),加入下面两行:
    DB2_HADR_1 55001/tcp
    DB2_HADR_2 55002/tcp
    对于 Windows,编辑%SystemRoot%\system32\drivers\etc\services。
    注:这一步不是必须的,因为在下面配置HADR_LOCAL_SVC和HADR_REMOTE_SVC数据库参数的时候您可以直接使用端口号来替代服务名。
  7. 修改主数据库(DBSER1 - SAMPLE)的配置参数:
    UPDATE DB CFG FOR SAMPLE USING HADR_LOCAL_HOST 192.168.1.162
    UPDATE DB CFG FOR SAMPLE USING HADR_LOCAL_SVC DB2_HADR_1
    UPDATE DB CFG FOR SAMPLE USING HADR_REMOTE_HOST 192.168.1.163
    UPDATE DB CFG FOR SAMPLE USING HADR_REMOTE_SVC DB2_HADR_2
    UPDATE DB CFG FOR SAMPLE USING HADR_REMOTE_INST db2inst1
    UPDATE DB CFG FOR SAMPLE USING HADR_SYNCMODE NEARSYNC
    UPDATE DB CFG FOR SAMPLE USING HADR_TIMEOUT 120
    CONNECT TO SAMPLE
    QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS
    UNQUIESCE DATABASE
    CONNECT RESET
  8. 修改备用数据库(DBSERV2 - SAMPLE)的配置参数:
    UPDATE DB CFG FOR SAMPLE USING HADR_LOCAL_HOST 192.168.1.163
    UPDATE DB CFG FOR SAMPLE USING HADR_LOCAL_SVC DB2_HADR_2
    UPDATE DB CFG FOR SAMPLE USING HADR_REMOTE_HOST 192.168.1.162
    UPDATE DB CFG FOR SAMPLE USING HADR_REMOTE_SVC DB2_HADR_1
    UPDATE DB CFG FOR SAMPLE USING HADR_REMOTE_INST db2inst1
    UPDATE DB CFG FOR SAMPLE USING HADR_SYNCMODE NEARSYNC
    UPDATE DB CFG FOR SAMPLE USING HADR_TIMEOUT 120
  9. 启动HADR:
    首先启动备用数据库服务器的HADR:
    DEACTIVATE DATABASE SAMPLE
    START HADR ON DATABASE SAMPLE AS STANDBY
    然后启动主数据库服务器的HADR:
    DEACTIVATE DATABASE SAMPLE
    START HADR ON DATABASE SAMPLE AS PRIMARY
    注:如果你先启动主数据库服务器HADR,那么你必须保证在HADR_TIMEOUT参数指定的时间内(单位为秒)启动备用数据库服务器HADR。否则将启动失败。

启动过程中,主机报错reson code = 8,表示有一个或多个HADR参数无效,检查后没有发现参数丢失,重启dbm后启动正常

备机接管
db2 takeover hadr on database DBNAME(by force)

关闭HADR
db2 deactivate database DBNAME
db2 stop hadr on database DBNAME

查看HADR信息
db2pd -d DBNAME -hadr

db2 get snapshot for database on DBNAME

同步模式:
SYNC(同步):
采用SYNC方式时,仅当主数据库日志写入成功,并收到备用数据库的应答,确保备用数据库的日志也成功写入的情况下,才认为日志写入成功。
这种方式下的事务响应时间最长,但最大限度的确保不发生事务丢失。
NEARSYNC(接近同步):
采用NEARSYNC方式时,当主数据库日志写入成功,并收到备用数据库的应答,确定备用数据库已经接收到日志时,即认为日志写入成功。也就是说,备用数据库接收到的日志并不一定能成功写入持久存储设备上的日志文件。
这种方式下的事务响应时间比SYNC方式短,且仅当两台服务器同时发生故障时,才会发生事务丢失。
ASYNC(异步):
采用ASYNC方式时,当主数据库日志写入成功,并将日志发送出去之后,即认为日志写入成功。此方式并不保证备用数据库能收到日志,这要依赖于TCP/IP网络情况。
这种方式下的事务响应时间最短,但产生事务丢失的可能性也最大