陈辉
作者陈辉·2012-08-23 15:19
研发工程师·IBM

DB2 HADR安装实战

字数 7217阅读 2723评论 12赞 1
最近开始支持DB2 HADR,操作了一遍安装配置,把安装步骤整理下来,分享给大家。
1.主机、备机分别安装同一版本的DB2
host1:rubbia.svl.ibm.com
host2:joule.svl.ibm.com

2.配置两台机器ssh信任
为便于HADR中两台主机间相互通信与远程操作,所以本例中两台机器配置ssh信任,两个节点都执行操作
$ssh-keygen -t rsa
然后一路全部回车,采用默认值,会在/home/.ssh或当前用户目录的.ssh下生成id_dsa.pub公钥,将此文件复制到对方机器相应目录后执行
#cat id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 authorized_keys

eg.
ssh-keygen -t rsa
cat id_rsa.pub.joule >> ~/.ssh/authorized_keys
cat id_rsa.pub.rubbia >> ~/.ssh/authorized_keys
到此为止ssh配置完毕,以下还需配置rsh
vi .rhosts
将对方hostname和用户名写入该文件
eg.
joule chenhui


3.在host1上创建数据库:
 db2 "create db hadrdb automatic storage no"
 
4.设置主数据库配置参数:
 db2 update db cfg for hadrdb using logretain on
 db2 update db cfg for hadrdb using trackmod on
 db2 update db cfg for hadrdb using logindexbuild on
 db2 update db cfg for hadrdb using indexrec restart
 
 
 查看hadr相关的配置参数
 db2 get db cfg for hadrdb | grep -i hadr
        Database Configuration for Database hadrdb
 HADR database role                                      = STANDARD
 HADR local host name                  (HADR_LOCAL_HOST) =
 HADR local service name                (HADR_LOCAL_SVC) =
 HADR remote host name                (HADR_REMOTE_HOST) =
 HADR remote service name              (HADR_REMOTE_SVC) =
 HADR instance name of remote server  (HADR_REMOTE_INST) =
 HADR timeout value                       (HADR_TIMEOUT) = 120
 HADR log write synchronization mode     (HADR_SYNCMODE) = NEARSYNC
 HADR peer window duration (seconds)  (HADR_PEER_WINDOW) = 0
 
 
 把没有设置的部分填上:
 
db2 update db cfg for hadrdb using hadr_local_host rubbia;
db2 update db cfg for hadrdb using hadr_local_svc 54321;
db2 update db cfg for hadrdb using hadr_remote_host joule;
db2 update db cfg for hadrdb using hadr_remote_svc 54321 hadr_remote_inst chenhui;


5.备份数据库
注意,如果你是第一次将日志的方式设置为retain方式,这次备份会使数据库跳出backup pending方式。当从数据库恢复时,不要使用这个备份文件,而是需要重新备份一次,使用第二次备份的文件。

db2 backup db hadrdb
rm HADRDB.0.chenhui.NODE0000.CATN0000.20120822233623.001
db2 backup db hadrdb

将生成的backup image拷贝到host2.
chmod 777 HADRDB.0.chenhui.NODE0000.CATN0000.20120822233623.001
rcp HADRDB.0.chenhui.NODE0000.CATN0000.20120822233623.001 chenhui@joule:/home/chenhui/

6.在host2上,恢复数据库
db2 restore db hadrdb

7.在host2上,修改数据库配置参数
/home/chenhui->db2 get db cfg for hadrdb | grep -i hadr
       Database Configuration for Database hadrdb
 HADR database role                                      = STANDARD
 HADR local host name                  (HADR_LOCAL_HOST) = rubbia
 HADR local service name                (HADR_LOCAL_SVC) = 54321
 HADR remote host name                (HADR_REMOTE_HOST) = joule
 HADR remote service name              (HADR_REMOTE_SVC) = 54321
 HADR instance name of remote server  (HADR_REMOTE_INST) = chenhui
 HADR timeout value                       (HADR_TIMEOUT) = 120
 HADR log write synchronization mode     (HADR_SYNCMODE) = NEARSYNC
 HADR peer window duration (seconds)  (HADR_PEER_WINDOW) = 0
 
注意把 local host name 和remote host name互换,
db2 update db cfg for hadrdb using HADR_LOCAL_HOST joule HADR_REMOTE_HOST rubbia


8.在host2上,启动db2为standby
db2 start hadr on db hadrdb as standby
注意:这里要先启动standby

9.在host1上,启动db2为primary
db2 start hadr on db hadrdb as primary

10.在host1或host2上运行db2pd,查看hadr状态
db2pd -db hadrdb -hadr               

Database Partition 0 -- Database HADRDB -- Active -- Up 0 days 00:01:22 -- Date 2012-08-23-00.06.27.002376

HADR Information:
Role    State                SyncMode   HeartBeatsMissed   LogGapRunAvg (bytes)
Primary Peer                 Nearsync 0                  25157              

ConnectStatus ConnectTime                           Timeout  
Connected     Thu Aug 23 00:05:12 2012 (1345705512) 120      

LocalHost                                LocalService     
rubbia                                   54321            

RemoteHost                               RemoteService      RemoteInstance   
joule                                    54321              chenhui          

PrimaryFile  PrimaryPg  PrimaryLSN       
S0000000.LOG 54         0x000000000235E2FE

StandByFile  StandByPg  StandByLSN       
S0000000.LOG 53         0x000000000235DFDE

如图,状态为Peer,说明primary和standby连接正常,且可以正常接管。









 
 

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论12 条评论

aiqihzaiqihz系统运维工程师上海申石
2013-04-02 19:37
感谢楼主分享
uc804uc804数据库运维工程师企业
2013-01-25 11:07
感谢分享
btlcmbtlcm数据库管理员陕西百嘉贸易服务有限公司
2012-09-21 17:05
谢谢分享,注意事项很好
study123study123系统架构师ERICSSON
2012-09-17 17:17
值得参考!谢谢分享!
陈辉陈辉研发工程师IBM
2012-09-13 15:59
zhmwang: 还需要设置SSH互信? 没必要吧 嘻嘻
是没有必要,不过在我的环境中,习惯配成这样,很多命令很方便。
繁华如梦繁华如梦其它深圳某证券
2012-09-13 01:06
谢谢分享~~~
daoguo525daoguo525系统工程师世纪五岳(北京)科技有限公司
2012-09-12 12:44
写得不错!
zhmwangzhmwangPDOceanBase
2012-09-11 22:05
还需要设置SSH互信? 没必要吧 嘻嘻
陈辉陈辉研发工程师IBM
2012-09-11 13:32
weiruan85: 你这个db2level是多少,
V97fp6
weiruan85weiruan85数据库管理员ibm
2012-09-11 09:35
你这个db2level是多少,
drdb2drdb2系统工程师se
2012-09-09 08:49
thank you very much your for sharing
wangqiwangqi软件开发工程师北京传诚科技有限公司
2012-08-24 12:06
很棒的内容,尤其是文章里列出了几个注意事项,
Ctrl+Enter 发表

作者其他文章

相关问题

X社区推广