本文为将A环境(模拟实际生产正常运行状态)Linux服务器上的DB2数据库迁移至B环境Linux服务器上(默认DB2数据库已经创建完成,HADR配置完成)。A、B环境下DB2数据库均为主备模式,配置HADR。
1.A环境数据库在线备份(要求A环境应用服务停止后再进行备份)
db2 backup db testdb online
2.B环境断开连接(主备数据库均断开)
db2 force applications all
db2 list application
若停止不彻底,则可以重启数据库(重启数据库后HADR会停掉):
db2stop force
db2start
3.B环境停HADR(先主机后备机)
断开连接后执行:
db2 deactivate db testdb
db2 stop hadr on db testdb
验证:db2pd -db testdb -hadr
若执行不成功,则可以重新执行断开连接步骤
4.B环境主备库备份文件和归档日志清理
cd home/db2inst1/db2inst1/NODE0000/SQL00001/LOGSTREAM0000
cd /home/db2inst1/bf
5.将最新的A环境备份导入云桌面主库
scp /home/db2inst1/bf/备份文件 db2inst1@主库ip地址:/home/db2inst1/bf
6.B环境主库备份恢复(B环境首先停止应用服务器然后再停止HADR)
db2 restore db testdb taken at 20200101111111replace history file without prompting
7.查询归档日志路径和文件(查询B环境主库)
db2 get db cfg for testdb | grep log
8.查询归档日志路径和文件(查询A环境主库)
db2 get db cfg for testdb | grep log
9.将A环境主库上对应的归档日志,导入云主库对应位置,若B环境主库和A环境归档日志不一致,均需要依次导入
scp /home/db2inst1/db2inst1/NODE0000/SQL00001/LOGSTREAM0000/S00000222.LOG db2inst1@172.10.37.136:/home/db2inst1/db2inst1/NODE0000/SQL00001/LOGSTREAM0000
10.B环境前滚
db2 rollforward db testdb to end of logs and complete
11.B环境断开连接(B环境主库)
db2 force applications all
db2 list application
12.B环境主库备份
db2 backup db testdb
13.B环境备份文件导入到B环境备库
scp /home/db2inst1/bf/备份文件 db2inst1@备库IP:/home/db2inst1/bf
14.B环境备库恢复
db2 restore db testdb taken at 20200101111111 without prompting
15.B环境查看参数是否正常
db2 get db cfg for testdb | grep HADR
主库:
HADR_LOCAL_HOST db2A
HADR_LOCAL_REMOTE_HOST db2B
备库:
HADR_LOCAL_HOST db2B
HADR_LOCAL_REMOTE_HOST db2A
16.B环境启动HADR(先备后主)
db2 start hadr on db testdb as standby --备机启动
17.B环境启动HADR(先备后主)
db2 start hadr on db testdb as primary --主机启动
18.B环境HADR状态验证
db2pd -db testdb -hadr
状态为HADR_STATE = PEER
19.B环境HADR验证
1、主库
db2 connect to testdb
db2 “create table test.test (id int)”
db2 “create index test.test_pk on test.test(id asc) include null keys allow reverse scans”
db2 “insert into test.test values (‘1’)”
db2 “select * from test.test”
2、备库
db2 connect to testdb
db2 “select * from test.test”
db2 “select count(*) from test.qr_order_detial”
db2look -d testdb -e -t test.test