资讯专栏INFORMATION COLUMN

db2 数据库HADR配置实施方案

IT那活儿 / 1803人阅读
db2 数据库HADR配置实施方案
[
1.什么是DB2的HADR
]


DB2High Availability Disaster Recovery(HADR) 是一个简单易用的数据复制特性,该特性为局部和全面站点故障提供一个高可用性(HA)解决方案。HADR(高可用性灾难恢复)是DB2数据库的一个组件,是DB2提供给用户的一种高可用性和灾难恢复的解决方案。组成HADR需要一对机器,一个主机和一个备机。它的基本原理是主机将数据库产生的日志通过网络传输到备机,然后备机将这些日志重新应用,整个过程类似于前滚恢复。从而保证主机和备机数据库的一致。当主机发生意外停机以后,例如停电或者灾难等,备机可以很快的接替主机继续工作。从DB2V97FP1 开始,HADR开始支持ROS(ReadOn Standby),备机除了做备份数据库以外,还可以接收连接,执行读操作。


[
2.如何配置HADR
]


2.1、环境准备

主库:192.168.100.101  CM01

备库:192.168.100.102  CM11


2.2、主库配置

  1. 使用db2sampl命令创建样本db

db2sampl


  1. 打开主库日志归档模式

db2 update db cfg for usingLOGARCHMETH1 LOGRETAIN

注:上面的命令将启用数据库以进行日志归档,并将日志保留在同一活动日志目录中。这还将使数据库处于备份挂起状态。


  1. 进行离线备份

db2 "backup database "

注意:离线备份不是必需的。也可以使用在线备份。但是,在线备份可能需要更长的时间才能使HADR对进入对等状态。为了简单起见,我们在这里使用离线备份。


  1. 在主数据库上设置HADR cfg参数

db2 update db cfg for usingHADR_LOCAL_HOST
db2 update db cfg for using HADR_LOCAL_SVC
db2update db cfg for using HADR_REMOTE_HOST
db2 update db cfg for usingHADR_REMOTE_SVC
db2 update db cfg for using HADR_REMOTE_INST
db2update db cfg for using LOGINDEXBUILD ON


  1. 进行脱机备份以用于设置HADR

db2 "backup database "


2.3、备库配置

  1. 版本一致

确保两个服务器都在同一版本上,以免发生不匹配的情况。在两个服务器上运行“ db2level”命令,以检查它们是否在相同的DB2版本和修订包中。


  1. 通过FTP将备份映像(从主机)传输到备机


  2. 备库进行恢复

db2 "restore database DBNAME"


  1. 在备用数据库上设置HADR cfg参数。

db2 update db cfg for usingHADR_LOCAL_HOST
db2 update db cfgfor using HADR_LOCAL_SVC
db2update db cfg for using HADR_REMOTE_HOST
db2 update db cfg for usingHADR_REMOTE_SVC
db2 update db cfg for using HADR_REMOTE_INST


  1. 启动备机

db2 start hadr on database as standby


  1. 在主服务器上启动HADR

db2 start hadr on database as primary

   --验证HADR是否运行

   db2pd -db -hadr


2.4、两台机器之间进行角色切换的步骤

1. ON PRIMARY (CM01):

db2 connect to
2. ONPRIMARY (CM01):

db2 "create table tab1 (col1 int)"
3.ON PRIMARY (CM01):

db2 "insert into tab1 values (1)"-insert 20 rows
4. ON PRIMARY (CM01):

power down the Primary --> db2stopforce
5. ON STANDBY (CM11):

db2 takeover hadr on database by force
6. The STANDBY instance on CM11 (DB2) is now theprimary
7. ON CM11:

db2pd -db -hadr (the ROLEshould state: PRIMARY)
8. ON CM11:

db2 connect to
9. ONCM11:

db2 "select * from tab1" -Youshould see the 20 rows inserted
10. ON CM11:

db2 "create table tab2 (col1int)"
11. ON CM11:

db2 "insert into tab2 values (1)"-insert about 20 rows
12. ON CM01:

db2 start hadr on database as standby
13. ON CM01:

db2pd -db -hadr (the ROLEshould state: STANDBY)
14. on CM01:

db2 takeover hadr on database
15.on CM01:

db2pd -db -hadr (the ROLEshould state: PRIMARY)
16. ON CM01:

db2 "select * from tab2" -youshould be able to see the 20 rows inserted
17. on CM11:

db2pd -db -hadr (the ROLEshould state; STANDBY) 


注意:

1.两台服务器上的HADR对的主机名不能相同。

2.UNIX系统上的实例名称和基础用户ID可以不同。确保将dbcfg参数HADR_REMOTE_INST的实例的正确名称更新为正确的值。


[
3.HADR的日志传输模式
]


1.SYNC(同步)

在四种方式中,此方式将最大可能地避免事务丢失,但使用此方式会导致事务响应时间最长。在此方式中,仅当日志已写入主数据库上的日志文件,而且主数据库已接收到来自备用数据库的应答,确定日志也已写入备用数据库上的日志文件时,方才认为日志写入是成功的。保证日志数据同时存储在这两处。


2.NEARSYNC(接近同步)

此方式具有比同步方式更短的事务响应时间,但针对事务丢失提供的保护也较少。在此方式中,仅当日志记录已写入主数据库上的日志文件,而且主数据库已接收到来自备用系统的应答,确定日志也已写入备用系统上的主存储器时,方才认为日志写入是成功的。仅当两处同时发生故障,并且目标位置未将接收到的所有日志数据转移至非易失性存储器时,才会出现数据的丢失。


3.ASYNC(异步)

与SYNC和NEARSYNC方式相比,ASYNC方式使事务响应时间更短,但在主数据库出现故障时,导致事务丢失的可能性更大。

在ASYNC方式下,仅当日志记录已写入主数据库上的日志文件,并且已传递到主系统的主机的TCP层时,才认为日志写入成功。因为主系统不会等待来自备用系统的确认,所以当事务仍处于正在传入备用数据库的过程中时,可能会认为事务已落实。


4.SUPERASYNC(超级异步)

此方式具有最短的事务响应时间,但在主系统出现故障时,此方式导致事务丢失的可能性也最大。当您不希望事务由于网络中断或拥塞而受到阻塞或经历较长的响应时间时,此方式很有用。


在此方式下,HADR对永远不会处于对等状态或断开连接的对等状态。只要日志记录已写入主数据库上的日志文件,就认为日志写入成功。由于主数据库不会等待来自备用数据库的确认,所以无论事务的复制状态如何,都会认为已落实该事务。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/130117.html

相关文章

  • 基于代理的据库分库分表框架 Mycat实践

    摘要:文章共字,阅读大约需要分钟概述在如今海量数据充斥的互联网环境下,分库分表的意义我想在此处就不用赘述了。 showImg(https://segmentfault.com/img/remote/1460000017453449); 文章共 1796字,阅读大约需要 4分钟 ! 概 述 在如今海量数据充斥的互联网环境下,分库分表的意义我想在此处就不用赘述了。而分库分表目前流行的方案最起码...

    el09xccxy 评论0 收藏0
  • 新手也能实现,基于SpirngBoot2.0+ 的 SpringBoot+Mybatis 多数据源配

    摘要:下面基于,带着大家看一下中如何配置多数据源。注意版本不一致导致的一些小问题。配置配置两个数据源数据库和数据库注意事项在配置数据源的过程中主要是写成和。五启动类此注解表示启动类这样基于的多数据源配置就已经完成了,两个数据库都可以被访问了。 在上一篇文章《优雅整合 SpringBoot+Mybatis ,可能是你见过最详细的一篇》中,带着大家整合了 SpringBoot 和 Mybatis...

    shiina 评论0 收藏0
  • SpringBoot+Mybatis配置Druid多数据

    摘要:多数据源,一般用于对接多个业务上独立的数据库可能异构数据库。这也就导致异构数据库的检查也是类似问题。内容略数据源多数据源,涉及到异构数据库,必须明确指定,否则的转换出错取值内容可参考初始连接数最大连接池数量。 开篇之前,说一句题外话。多数据源和动态数据源的区别。 多数据源,一般用于对接多个业务上独立的数据库(可能异构数据库)。 动态数据源,一般用于大型应用对数据切分。 配置参考 如...

    Songlcy 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<