DB2_hadr配置与切换指引
读窃读记有感DB2 hadr配置与切换⼿册
High Availability Disaster Recovery (HADR)是数据库级别的⾼可⽤性数据复制机制。⼀个HADR环境需要两台数据库服务器:主数据库服务器(primary)和备⽤数据库服务器(standby)。当主数据库中发⽣事务操作时,会同时将⽇志⽂件通过TCP/IP协议传送到备⽤数据库服务器,然后备⽤数据库对接受到的⽇志⽂件进⾏重放(Replay),从⽽保持与主数据库的⼀致性。当主数据库发⽣故障时,备⽤数据库服务器可以接管主数据库服务器的事务处理。此时,备⽤数据库服务器作为新的主数据库服务器进⾏数据库的读写操作,⽽客户端应⽤程序的数据库连接可以通过⾃动客户端重新路由(Automatic Client Reroute)机制转移到新的主服务器。当原来的主数据库服务器被修复后,⼜可以作为新的备⽤数据库服务器加⼊HADR。通过这种机制,DB2 UDB实现了数据库的灾难恢复和⾼可⽤性,最⼤限度的避免了数据丢失。下图为DB2 HADR的⼯作原理图:
注:处于备⽤⾓⾊的数据库不能被访问。
1.配置概述
通过两台版本为DB2 UDB Enterprise Server Edition (ESE)的服务器进⾏配置,实现HADR功能。
现有两台主机,这两台机器的主机名和IP地址分别为:DBServer1
(10.140.210.82)和DBServer2(10.140.210.84)。在下⾯的配置过程中将DBServer1作为主数据库服务器,其实HADR配置好之后,这两台服务器的⾓⾊
是可以转换的。以测试数据库ATSQADEV作为配置对象。
2.配置过程
注:以下命令均在DB2 CLP中执⾏
1. 在DBServer1和DBServer2上安装DB2,并创建缺省实例DB2,服务端⼝:50000,我们使⽤实例所有者⽤户rzhen,密码:a******
2. 通过需求⽤户提供的数据库镜像,通过restore命令在DBServer1上创建数据库ATSQADEV;
3. 修改ATSQADEV数据库配置参数LOGRETAIN为ON,以使该数据库⽇志记录⽅
式改为存档⽇志。
此命令已配置,未执⾏:
UPDATE DB CFG FOR ATSQADEV USING LOGARCHMETH1 disk:/database/archive 4. 修改索引⽇志记录参数UPDATE DB CFG FOR ATSQADEV USING LOGINDEXBUILD ON
UPDATE DB CFG FOR ATSQADEV USING INDEXREC RESTART
注:这⼀步并不是必须的。
5. 备份数据库ATSQADEV
BACKUP DB ATSQADEV TO E:\data\10.140.23.179
其中" E:\data\10.140.23.179"是⽤来存放数据库备份⽂件的⽬录,在存储空间⾜够的情况下,可以指定任何⼀个当前⽤户有写⼊权限的其他⽬录。
备份完成之后,在E:\data\10.140.23.179⽬录下会看到数据库备份映像⽂件:
娱乐 八卦
ATSQADEV.0.DB2.NODE0000.CATN0000.20150508010500.001
注:不同备份所得到的⽂件名的时间标志部分肯定不⼀样,在下⾯的恢复数据库命令中要注意做相应的修改。
6. 将得到的数据库映像⽂件复制到DBServer2对应的⽬录下
(E:\data\10.140.23.179)。
7. 在DBServer2上恢复数据库ATSQADEV:郭冬临老婆是张凯丽
db2 "RESTORE DB ATSQADEV from E:\data\10.140.23.179 taken at 20150508010500 on E: into ATSQADEV WITHOUT PROMPTING"
8. 配置⾃动客户端重新路由:
在主数据库服务器(ATSQADEV:10.140.210.82)上:配置故障时客户端⾃动路由的IP地址(即备机)及端⼝
UPDATE ALTERNATE SERVER FOR DATABASE ATSQADEV USING HOSTNAME
10.140.210.84 PORT 50000
及第花在古代
在备⽤数据库服务器上(ATSQADEV:10.140.210.84):配置故障时⾃动路由的IP地址及端⼝
姑苏UPDATE ALTERNATE SERVER FOR DATABASE ATSQADEV USING HOSTNAME
10.140.210.82 PORT 50000
9. 配置HADR服务和侦听端⼝
Windows可以⽤记事本等编辑。
WINDOWS PATH=’C:\Windows\System32\drivers\etc\services’
Aix或linux需要⽤如下⽅式处理:
⽤vi编辑/etc/services⽂件(需要切换到root⽤户),加⼊下⾯两⾏:
DB2_HADR_1 55001/tcp
DB2_HADR_2 55002/tcp
注意:如果之前已有数据库做了HADR,前⾯的两个端⼝将会被使⽤,需要在两个服务器的services⽂件中新增如下的监听端⼝信息:
DB2_HADR_3 55003/tcp
DB2_HADR_4 55004/tcp
注:这⼀步不是必须的,因为在下⾯配置HADR_LOCAL_SVC和HADR_REMOTE_SVC 数据库参数的时候可以直接使⽤端⼝号来替代服务名。
10. 修改主数据库(DBServer1- ATSQADEV)的配置参数:
UPDATE DB CFG FOR ATSQADEV USING HADR_LOCAL_HOST 10.140.210.82 UPDATE DB CFG FOR ATSQADEV USING HADR_LOCAL_SVC DB2_HADR_3
UPDATE DB CFG FOR ATSQADEV USING HADR_REMOTE_HOST 10.140.210.84 UPDATE DB CFG FOR ATSQADEV USING HADR_REMOTE_SVC DB2_HADR_4 UPDATE DB CFG FOR ATSQADEV USING HADR_REMOTE_INST DB2 UPDATE DB CFG FOR ATSQADEV USING HADR_SYNCMODE NEARSYNC
UPDATE DB CFG FOR ATSQADEV USING HADR_TIMEOUT 120 UPDATE DB CFG FOR ATSQADEV USING LOGARCHOPT1 default CONNECT TO ATSQADEV
QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS UNQUIESCE DATABASE
CONNECT RESET
使⽤db2 get db cfg | more 翻页查看相关的配置是否已修改。
11. 修改备⽤数据库(DBServer2- ATSQADEV)的配置参数:
UPDATE DB CFG FOR ATSQADEV USING HADR_LOCAL_HOST 10.140.210.84 UPDATE DB CFG FOR ATSQADEV USING HADR_LOCAL_SVC DB2_HADR_4 UPDATE DB CFG FOR ATSQADEV USING HADR_REMOTE_HOST
10.140.210.82 UPDATE DB CFG FOR ATSQADEV USING HADR_REMOTE_SVC DB2_HADR_3 UPDATE DB CFG FOR ATSQADEV USING HADR_REMOTE_INST DB2
UPDATE DB CFG FOR ATSQADEV USING HADR_SYNCMODE NEARSYNC UPDATE DB CFG FOR ATSQADEV USING HADR_TIMEOUT 120
UPDATE DB CFG FOR ATSQADEV USING LOGARCHOPT1 default
db2 get db cfg for atsqadev | more
12. 启动HADR:(建议先备库后主库)
⾸先启动备⽤数据库服务器的HADR:
DEACTIVATE DATABASE ATSQADEV
START HADR ON DATABASE ATSQADEV AS STANDBY
配置windows update失败
检查发现82的services⽂件的DB2_HADR_4 与端⼝号之间多了⼀些空格,去除后再次执⾏命令,成功!
再次查看配置信息,数据库⾓⾊变为STANDBY