Chinaunix首页 | 论坛 | 博客
  • 博客访问: 192111
  • 博文数量: 19
  • 博客积分: 2515
  • 博客等级: 大尉
  • 技术积分: 450
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-11 10:34
文章分类
文章存档

2011年(1)

2010年(5)

2008年(13)

我的朋友

分类:

2010-03-20 22:55:32

学了好长时间DB2了,写一些关于db2这个HADR组件的功能吧。HADRhigh availability disaster recovery的简写。组成HADR,需要一对机器(DB2并没有支持多个从机,是因为这样会给系统的管理带来很大麻烦),一个主机(primary),一个从机(secondary)。从高可用性上来讲,当主机发生故障时,从机可以很快的接替主机工作,可以减少数据库的故障时间;从灾难恢复上来讲,如果主机由于不可预测的灾难发生了故障,远程的从机数据不受任何影响,可以保证数据不会丢失。

 

      这样做,缺点也是很明显的,就是客户需要承担一个额外的数据库服务器的费用。从v97fp1开始,DB2 HADR开始支持ROSread on standby)。从这个版本开始,从机开始支持读操作,客户的读操作可以使用从机完成,减少主机的负载,提高系统的系能。这样,客户就不必担心额外的费用了。

 

      现在,写一下HADR配置的过程吧,前提是大家已经安装了db2。大家其实可以从google上搜索到很多关于这个话题的文章,但是我还是决定写一下,希望给大家多一个参考。

 

      首先,说明几个需要注意的问题:

 

      (1). HADR pair不可以使用circular logging。大家可以参照db2 infocenter,阅读以下DB2log方式

 

      (2). HADR的从机是由主机的备份镜像恢复而成的

 

      (3). 启动HADR的时候应该首先启动standby,然后在启动primary

 

      (4). StandbyPrimary上和HADR相关的参数一定要一致,否则会在系统握手校验的时候失败

 

      现在我们假设HADR Pair部署在主机hostp和从机hosts

 

      第一步,分别在主机和从机上创建数据库:

 

       db2 create db hadrdb

 

      第二步,设置主数据库配置参数:

 

       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

 

       db2 update db cfg for hadrdb using HADR_LOCAL_HOST hostp

       db2 update db cfg for hadrdb using HADR_LOCAL_SVC 54321

       db2 update db cfg for hadrdb using HADR_REMOTE_HOST hosts

       db2 update db cfg for hadrdb using HADR_REMOTE_SVC 54321

       db2 update db cfg for hadrdb using HADR_REMOTE_INST db2inst1

       db2 update db cfg for hadrdb using HADR_TIMEOUT 120

       db2 update db cfg for hadrdb using HADR_PEER_WINDOW 10

       db2 update db cfg for hadrdb using HADR_SYNCMODE sync

 

      第三步,备份主数据库,生成一个备份文件

 

       db2 backup db hadrdb

 

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

 

      第四步,将刚才备份的数据库日志文件拷贝到一个从机可以使用的文件系统里面

 

      第五步,在从数据库上恢复数据库:

 

       db2 restore db hadrdb from HADRDB.0.sfbao.NODE0000.CATN0000.20091116071458.001

 

      第六步,配置从数据库的参数:

 

      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

 

      db2 update db cfg for hadrdb using HADR_LOCAL_HOST hosts

      db2 update db cfg for hadrdb using HADR_LOCAL_SVC 54321

      db2 update db cfg for hadrdb using HADR_REMOTE_HOST hostp

      db2 update db cfg for hadrdb using HADR_REMOTE_SVC 54321

      db2 update db cfg for hadrdb using HADR_REMOTE_INST db2isnt1

      db2 update db cfg for hadrdb using HADR_TIMEOUT 120

      db2 update db cfg for hadrdb using HADR_PEER_WINDOW 10

      db2 update db cfg for hadrdb using HADR_SYNCMODE sync

 

      其实,对于这一步,你只要更新HADR_LOCAL_HOSTHADR_REMOTE_HOST就可以了,因为其他的参数在restore db的时候都会恢复出来。

 

      第七步,启动从数据库:

 

      db2 start hadr on db hadrdb as standby

 

      第八步,启动主数据库:

 

      db2 start hadr on db hadrdb as primary

 

      到这里,一个HADR Pair就配置好了。笔记本快没电了,以后在写其它的。

 

      计划下一次写一下和HADRDB2 HA结合使用。

 

阅读(2600) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~