在单个 RedHat 虚机中安装 Db2 开发版中的 HADR 功能 | 进阶技巧
【作者】陆川,从事IT行业20多年,精通Db2和Informix数据库,擅长运维和高可用架构设计和实施;熟悉Sybase数据库;目前从事Db2的推广和Informix的升级和维护等工作。
一、前言
本文描述了如何在单个REDHAT中,在Db2 11.1开发版中搭建HADR,方便用户快速的掌握Db2的HADR技术。
如果用两个虚机来做,虽然更接近实际的生产环境,但单个笔记本上很可能没有足够的内存来运行两个虚机;但计算机技术发展很快,很可能过几年之后这也不成为问题。
二、安装前置条件检查
运行安装包中的db2prereqcheck程序,确认所有的安装条件都已经满足,才可以保证数据库实例创建成功。
三、创建实例所需要的用户和组
groupadd db2iadm1
groupadd db2iadm2
groupadd db2fadm1
groupadd db2fadm2
useradd -g db2iadm1 -d /home/db2inst1 -m db2inst1
useradd -g db2iadm2 -d /home/db2inst2 -m db2inst2
useradd -g db2fadm1 -d /home/db2fenc1 -m db2fenc1
useradd -g db2fadm2 -d /home/db2fenc2 -m db2fenc2
passwd db2inst1
passwd db2fenc1
passwd db2inst2
passwd db2fenc2
四、创建实例
使用root用户
cd /opt/ibm/db2/V11.1/instance
./db2icrt -s ese -u db2fenc1 db2inst1
./db2icrt -s ese -u db2fenc2 db2inst2
五、增加HADR服务所使用的端口号
修改 /etc/services,增加两行
hadr_inst1 70001/tcp
hadr_inst2 70002/tcp
六、准备数据库的表空间目录
mkdir /db2data1
mkdir /db2data2
chown db2inst1:db2iadm1 db2data1
chown db2inst1:db2iadm1 db2data2
mkdir /db2inst2
chown db2inst2:db2iadm2 /db2inst2
七、在db2inst1实例中创建数据库
db2 "create db nbdb on /db2data1,/db2data2"
八、修改HADR需要的参数
mkdir -p /db2data1/db2arch
db2 connect to nbdb
db2 update db cfg using logindexbuild on
db2 update db cfg using indexrec restart
db2 update db cfg using logarchmeth1 disk:/db2data1/db2inst1
不允许不记日志的操作:
db2 update db cfg using BLOCKNONLOGGED YES
db2 terminate
db2 deactivate db nddb
对数据库做假备份
db2 backup db nbdb to /dev/null
九、创建联机备份,后面会在db2inst2上进行恢复
mkdir -p /tmp/db2backup
cd /tmp/db2backup
db2 backup db nbdb online
十、修改primary实例的HADR相关参数
db2 connect to nbdb
db2 get db cfg | grep -i hadr
db2 update db cfg using HADR_LOCAL_HOST 192.168.1.6
db2 update db cfg using HADR_remote_HOST 192.168.1.6
db2 update db cfg using HADR_remote_svc hadr_inst2
db2 update db cfg using HADR_local_svc hadr_inst1
db2 update db cfg using HADR_remote_inst db2inst2
十一、使HADR参数生效
db2 deactivate db nbdb
db2 activate db nbdb
十二、设置HADR相关的注册变量
db2set DB2_HADR_SOSNDBUF=1024000
db2set DB2_HADR_SORCVBUF=1024000
db2set DB2_HADR_ROS=on
db2set DB2_HADR_ROS_AVOID_REPLAY_ONLY_WINDOW=on
db2set DB2_STANDBY_ISO=UR
db2 terminate
十三、重启db2inst1实例
db2stop force
db2start
十四、在db2inst2实例中恢复数据库
由于是在同一台机器上,所以需要使用重定向恢复
cd /tmp/backup
db2 restore db nbdb redirect generate script restore.sql
修改restore.sql中的恢复路径信息
主要修改的地方如下:
ON '/db2inst2'
-- , '/db2data2'
DBPATH ON '/home/db2inst2'
INTO NBDB
SET STOGROUP PATHS FOR IBMSTOGROUP
ON '/db2inst2'
-- , '/db2data2'
然后执行下面的命令进行恢复
db2 -tvf restore_new.sql
注意不需要执行前滚操作,HADR在启动之后会自动从primary追日志。
十五、修改db2inst2上HADR相关参数
db2 update db cfg for nbdb using hadr_local_host 192.168.1.6
db2 update db cfg for nbdb using hadr_remote_host 192.168.1.6
db2 update db cfg for nbdb using hadr_remote_svc hadr_inst1
db2 update db cfg for nbdb using hadr_local_svc hadr_inst2
db2 update db cfg for nbdb using hadr_remote_inst db2inst1
db2 update db cfg for nbdb using BLOCKNONLOGGED YES
十六、修改db2inst2上的注册变量
db2set -lr | grep HADR
db2set DB2_HADR_SOSNDBUF=1024000
db2set DB2_HADR_SORCVBUF=1024000
db2set DB2_HADR_ROS=on
db2set DB2_HADR_ROS_AVOID_REPLAY_ONLY_WINDOW=on
db2set -lr | grep STAND
db2set DB2_STANDBY_ISO=UR
db2 terminate
十七、启动db2inst2,作为standby实例
db2stop force
db2start
db2 start hadr on db nbdb as standby
十八、启动db2inst1作为 primary实例
db2 start hadr on db nbdb as primary
db2 activate db nbdb
确认HADR的状态:
db2pd -db nbdb -hadr
十九、验证HADR能够正常工作
db2 connect to nbdb
db2pd -db nbdb -tab
db2 "create table t2 (c1 int)"
二十、给角色授权
由于是两个不同的用户,因此需要将t1上的权限授权给db2inst2用户;
可能需要授权的用户很多,因此这里采用角色授权;
$ db2 create role myrole
$ db2 grant all on t2 to role myrole
$db2 grant role myrole to user db2inst2
在db2inst2上连接数据库,你将看到t2表的数据被复制了过来:
[db2inst2@node01 ~]$ db2 connect to nbdb
Database Connection Information
Database server = DB2/LINUXX8664 11.1.4.4
SQL authorization ID = DB2INST2
Local database alias = NBDB
[db2inst2@node01 ~]$ db2 "select * from db2inst1.t2"
C1
1
1 record(s) selected.
如有任何问题,可点击文末阅读原文到社区原文下评论交流
资料/文章推荐:
DB2数据库HADR部署三个难点问题
http://www.talkwithtrend.com/Article/244027
DB2数据库HADR部署实施研讨总结
http://www.talkwithtrend.com/Article/244025
实战DB2 purescale集群HADR环境联机升级修订包(上)
http://www.talkwithtrend.com/Article/241445
实战DB2 purescale集群HADR环境联机升级修订包(下)
http://www.talkwithtrend.com/Article/241447
欢迎关注社区 “数据库容灾”技术主题,将会不断更新优质资料、文章。地址:
http://www.talkwithtrend.com/Topic/4619
下载 twt 社区客户端 APP
与更多同行在一起
高手随时解答你的疑难问题
轻松订阅各领域技术主题
浏览下载最新文章资料
长按识别二维码即可下载
或到应用商店搜索“twt”
*本公众号所发布内容仅代表作者观点,不代表社区立场