怎样搭建DB2?HADR(高可用性灾难恢复)?

来源:百度文库 编辑:神马文学网 时间:2024/04/30 07:17:05

怎样搭建DB2 HADR(高可用性灾难恢复)?

(2009-09-10 09:48:56)转载 标签:

db2

hadr

配置

高可用性

灾难备份

灾难恢复

it

分类: DB2管理

 DB2 HADR高可用性灾难恢复类似于Oracle的Data Guard。是一种通过重放日志方式实现热备份的数据库备份方式。在实现高可用性方面相对于HA来说有以下好处和缺点:

好处:

1. 主服务器故障时,HA需要在备份机上重启数据库Instance, 这通常需要花费几分钟时间。而HADR需要回滚未完成的事务,一般来说在正常OLTP环境下,很少有长事务,所以HADR备份机的启动速度比较快(30秒内)。

2. HADR可以实现远程备份,当然HA也可以通过磁盘阵列网络的高级拷贝功能实现某种程度的远程备份。但是这种磁盘拷贝至少比HADR多耗费3倍以上网络带宽。

3. 听说HADR正在做Readonly on Standby,到时候备机可读就比不可读的HA的备机强了不少。

缺点:

1. HADR需要多一倍的存储空间。HA是共享存储的。

2. HADR在扩展表空间,使用超过2GB LOB,使用DPF方面有诸多的限制。对维护人员的要求比较高。

3. HADR的备机空闲时也需要不停的replay log,需要占用CPU和内存资源。HA的备机空闲时几乎不占用CPU和内存资源,可以做交互备份。

总结来说,HA适用于有一定高可用性需求的小型企业环境。而HADR适用于有高可用性或远程热备份需求的大型企业用户。

 

下面介绍,如何配置HADR。

 

1. 软硬件需求

两台独立的服务器都必须有相同的操作系统和版本号

两台服务器的DB2主版本号必须一致

建议两台服务器使用相同的小版本号(fixpack)

   两台服务器使用不同的小版本号是允许的,这主要是为了滚动升级(Rolling Upgrade),但是不建议在正常使用的时候用

   主服务器的版本号不能比备份服务器的版本号新

主服务器和备份服务器必须用相同的存储路径

   这个要求主要是为了保证tablespace的扩展能被复制。

   可以使用symbolic links(链接文件)实现主备机使用相同目录

 

2. 在主备机上分别安装DB2并创建Instance

 

3. 在主机上创建数据库并修改参数

打开日志保留

   db2 update db cfg using LOGRETAIN on

 

4. 备份主服务器数据库

   db2 backup db

 

5. 在备份服务器上恢复数据库

恢复数据库时同时更新历史文件

   db2 restore db replace history file

 

注意: 备份服务器的数据库必须处于roll forward pending状态,才能启动HADR as standby。所以,恢复数据库以后,千万不要执行db2 rollforward end of log。HADR假设备机的日志比主机日志旧,所以备机最好就不要执行前滚日志操作,等启动HADR时,备机会自动自行该操作。

 

6. 修改HADR的参数

主备机上面HADR的参数要相互对应

 

主机参数                                备机参数
HADR_LOCAL_HOST        主机名           HADR_REMOTE_HOST
HADR_REMOTE_HOST       备机名           HADR_LOCAL_HOST
HADR_LOCAL_SVC         主机监听端口     HADR_REMOTE_SVC
HADR_REMOTE_SVC        备机监听端口     HADR_LOCAL_SVC
         主机instance     HADR_REMOTE_INST
HADR_REMOTE_INST       备机instance     

使用db2 update db cfg修改上述参数。

注意主备机的监听端口不能被其他程序占用。而且也不能使用instance使用的端口(SVCENAME中指定的端口)

 

7. 停止主服务器,重启备份服务器

主服务器:db2stop

备份服务器:db2stop

            db2start

在备份服务器上启动HADR

  db2 start hadr on db as standby

 

8. 启动主服务器

主服务器:db2start

在主服务器上启动HADR

  db2 start hadr on db as primary

 

可以使用db2pd -db hadrdb -hadr命令检查HADR的启动情况。如果主备机都在"peer"状态证明HADR启动成功。

 

9. 尝试进行切换(take over)

切换命令只能在备机上执行:

db2 takeover HADR on DB [by force]

 

 

关于HADR的其他问题请参考:

http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.admin.ha.doc/doc/t0051382.html