DB2 HADR 配置示例

介绍

  DB2的HA可以在OS级别使用专门的HA来实现,也可使用DB2内置的HADR来实现,且配置和管理很简单。

  一个HADR环境需要两台数据库服务器:主数据库服务器(primary)和备用数据库服务器(standby,处于standby角色的数据库不能够被访问)。当主数据库中发生事务操作时,会同时将日志文件通过TCP/IP协议传送到备用数据库服务器,然后备用数据库对接受到的日志文件进行重放(Replay),从而保持与主数据库的一致性。当主数据库发生故障时,备用数据库服务器可以接管主数据库服务器的事务处理。此时,备用数据库服务器作为新的主数据库服务器进行数据库的读写操作,而客户端应用程序的数据库连接可以通过自动客户端重新路由(Automatic Client Reroute)机制转移到新的主服务器。当原来的主数据库服务器被修复后,又可以作为新的备用数据库服务器加入HADR。通过这种机制,DB2 UDB实现了数据库的灾难恢复和高可用性,最大限度的避免了数据丢失。

同步方式

primary和standby 的参数HADR_SYNCMODE用来设置日志的同步方式,参数的设置将取决于DB在事务的响应时间和事务丢失的可能性之间的平衡。

SYNC:primary和standby DB日志均确认写入成功才认为日志写入成功。

NEARSYNC:primary DB日志写入成功,standby DB确认接收到日志即认为日志写入成功。

ASYNC(异步):primary DB日志写入成功,并将日志发送出去之后即认为日志写入成功。

自动客户端重新路由(automatic client reroute)

db2 UPDATE ALTERNATE SERVER FOR DATABASE testdb USING HOSTNAME 172.16.72.11 PORT 60000

#此命令用来在primary和standby DB上设置备用数据库信息.

#ACR 不使用HADR_REMOTE_HOST 和 HADR_REMOTE_SVC 数据库配置参数

DB2 HADR的使用限制

  1. 只有DB2 UDB Enterprise Server Edition(ESE)支持HADR,但HADR不能支持分区数据库(Database Partitioning Feature,DPF)。
  2. 主数据库和备用数据库必须运行在相同的操作系统版本上,并且DB2 UDB的版本也必须一致,除非短暂的软件升级过程。
  3. 主数据库和备用数据库的位大小必须一致(32位或64位)。
  4. 不能在备用数据库上进行备份操作
  5. 备用数据库是不能访问的,客户端程序无法连接备用数据库。
  6. 日至归档操作只能在主数据库上进行。
  7. 带有COPY NO选项的LOAD命令是不支持的
  8. 主数据库和备用数据库必须是一对一的。
  1. HADR不能使用循环日志
  2. HADR不复制数据库配置参数、共享库、DLLs、UDFs或存储过程

HADR操作

启动和停止

db2 start HADR on db testdb user a3intest using passwd as standby

db2 start HADR on db testdb as primary [by force]

#如果在HADR_TIMEOUT所指定的时间内未能建立与备用数据库HADR的连接,启动会失败,使用by force 选项可以在启动失败时强行启动。

db2 deactivate db testdb

db2 stop hadr on db testdb

#stop HADR on standby

db2 stop hadr on db testdb

#stop HADR on primary

查看HADR的连接状态

当备用数据库的HADR启动时,它首先进入本地同步更新状态。并根据本地日志路径配置参数及日志归档方法的设置检索本地系统中的日志文件并重放。当本地日志文件重放完毕,备用数据库进入远程同步暂挂状态。当与主数据库建立连接之后,备用数据库进入远程同步更新状态。即主数据库将自己的日志文件通过TCPIP协议发送给备用数据库,备用数据库接收到日志文件并重放,直到所有日志文件都重放完毕,备用数据库和主数据库进入对等状态

db2 get snapshot for db on testdb

#可以查看primary,standby数据库的连接状态

db2 get db cfg | grep -i hadr

#查询数据库HADR的相关配置

接管/故障转移

当主数据库发生故障时,备用数据库可以接管主数据库的服务,成为新的主数据库(称为故障转移)。当原主数据库修复后,又可以作为备用数据库加入HADR对。即使主数据库服务器没有故障,我们通过接管命令(TAKEOVER)切换主数据库和备用数据库的角色。

db2 takeover HADR on db test by force

#当primary DB故障时紧急接管,takeover命令只运行在standby DB上。

db2 takeover HADR on db testdb

#普通接管

配置示例

hostname:primary.ade.com

IP:172.16.72.11

OS:RHEL7.0

package:db2 V10.1FP4 ESE

instance:a3intest

port:60000

db:testdb

hostname:standby.ade.com

IP:172.16.72.12

OS:RHEL7.0

package:db2 V10.1FP4 ESE

instance:a3intest

port:60000

db:testdb (restored from primary)

#primary & standby

DB2_a1intest        60000/tcp  (/etc/services)

db2set db2comm=tcpip

db2 update dbm cfg using svcename DB2_a3intest

##make sure the following port is available for HADR.

echo "DB2_HADR_1      61001/tcp" >> /etc/sevices

echo "DB2_HADR_2      61002/tcp" >> /etc/sevices

#归档日志

db2 update db cfg for testdb  using logarchmeth1 logretain

##索引日志记录参数

db2 UPDATE DB CFG FOR testdb USING LOGINDEXBUILD ON

db2 UPDATE DB CFG FOR testdb USING INDEXREC RESTART

##primary

db2 UPDATE ALTERNATE SERVER FOR DATABASE testdb USING HOSTNAME 172.16.72.12 PORT 60000

db2 UPDATE DB CFG FOR testdb USING HADR_LOCAL_HOST 172.16.72.11

db2 UPDATE DB CFG FOR testdb USING HADR_LOCAL_SVC DB2_HADR_1

db2 UPDATE DB CFG FOR testdb USING HADR_REMOTE_HOST 172.16.72.12

db2 UPDATE DB CFG FOR testdb USING HADR_REMOTE_SVC DB2_HADR_2

db2 UPDATE DB CFG FOR testdb USING HADR_REMOTE_INST a3intest

db2 UPDATE DB CFG FOR testdb USING HADR_SYNCMODE NEARSYNC

db2 UPDATE DB CFG FOR testdb USING HADR_TIMEOUT 120

db2 CONNECT TO testdb

db2 QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS

db2 UNQUIESCE DATABASE

db2 CONNECT RESET

##backup db on primary

db2 backup db testdb to /db/a3intest/db2backup

##restore db on standby

db2 restore db testdb from /db/a3intest/db2backup/ taken at 20150203203651 replace history file without prompting

##standby

db2 UPDATE ALTERNATE SERVER FOR DATABASE testdb USING HOSTNAME 172.16.72.11 PORT 60000

db2 UPDATE DB CFG FOR testdb USING HADR_LOCAL_HOST 172.16.72.12

db2 UPDATE DB CFG FOR testdb USING HADR_LOCAL_SVC DB2_HADR_2

db2 UPDATE DB CFG FOR testdb USING HADR_REMOTE_HOST 172.16.72.11

db2 UPDATE DB CFG FOR testdb USING HADR_REMOTE_SVC DB2_HADR_1

db2 UPDATE DB CFG FOR testdb USING HADR_REMOTE_INST a3intest

db2 UPDATE DB CFG FOR testdb USING HADR_SYNCMODE NEARSYNC

db2 UPDATE DB CFG FOR testdb USING HADR_TIMEOUT 120

db2 update db cfg for testdb  using logarchmeth1 logretain

db2 UPDATE DB CFG FOR testdb USING LOGINDEXBUILD ON

db2 UPDATE DB CFG FOR testdb USING INDEXREC RESTART

#start HADR on standby

db2 deactivate db testdb

db2 start hadr on db testdb as standby

#start HADR on primary

db2 deactivate db testdb

db2 start hadr on db testdb as primary

##HADR status

db2pd -db testdb -hadr

##HADR_STATE = PEER 表示连接正常

db2 get snapshot for db on testdb

##可以查询HADR的连接状态

##stop HADR

#primary

db2 stop hadr on db testdb

#standby

db2 deactivate db testdb

db2 stop hadr on db testdb

##test HADR

#primary:

db2 connect to testdb

db2 "CREATE TABLE HADRTEST(ID INTEGER NOT NULL WITH DEFAULT,NAME VARCHAR(10),PRIMARY KEY (ID))"

db2 "INSERT INTO HADRTEST (ID,NAME) VALUES (1,‘a‘)"

db2 "INSERT INTO HADRTEST (ID,NAME) VALUES (2,‘b‘)"

db2 "INSERT INTO HADRTEST (ID,NAME) VALUES (3,‘b‘)"

##standby

db2 takeover hadr on db testdb

db2 get snapshot for db on testdb

db2 connect to testdb

db2 "select * from hadrtest"

时间: 2024-08-04 00:11:33

DB2 HADR 配置示例的相关文章

(转) DB2 HADR

转自http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0508luojunkai/ 原文:http://blog.csdn.net/deanza/article/details/8469447 在DB2的高可用性(HA,High Availability)技术中,Standby是其中之一(还有snapshot和mirror).它的原理跟在Oracle的Data Guard相似,都是提供一种待机模式,让另外一台服务器

(转)使用 DB2 HADR 选择用于灾难恢复的 SUPERASYNC 模式

使用 DB2 HADR 选择用于灾难恢复的 SUPERASYNC 模式 Vishnu G 和 Hemant Singh2013 年 6 月 25 日发布 WeiboGoogle+用电子邮件发送本页面 0 简介和背景 HADR 是一个通过数据复制提供高可用性和灾难恢复的 DB2 功能.在启用该功能时,可以将主要数据库数据日志实时传送到备用数据库.备用数据库继续重放已收到的日志,以便与主要数据库保持同步. 从 DB2 V9.5 Fix Pack 8 和 DB2 V9.7 Fix Pack 5 开始,

华为MSTP负载均衡配置示例

8.6.7   MSTP负载均衡配置示例 本示例拓扑结构如图8-38所示,SwitchA.SwitchB.SwitchC和SwitchD都运行MSTP.它们彼此相连形成了一个环网,因为在SwitchA与SwitchB之间,以及SwitchC与SwitchD之间都存在冗余链路.为实现VLAN2-VLAN10和VLAN11-VLAN20的流量负载分担,本示例采用MSTP协议配置了两个MSTI,即MSTI1和MSTI2. 图8-38  MSTP配置示例 1.    配置思路分析 (1)在四台交换机创建

tinc vpn简单配置示例扩展(一)——跨越三层网络

tinc vpn简单配置示例扩展(一)--跨越三层网络 在tinc vpn简单配置示例(http://watertoeast.blog.51cto.com/8489855/1711649)一文中,构建tinc VPN的两台机器同属一个局域网(如图一),这样的场景基本与实际应用情况不符.今天对简单示例进行扩展,使构建vpn的两台主机跨越三层网络边界(如图二). 图一 tinc vpn in lan 图二 tinc VPN跨越三层网络边界 如图二所示,PC02的IP地址变成了172.16.1.6,与

Cisco ODR配置示例

静态路由的缺点是,必须手工配置,同时在网络拓扑变化后需要手工更新:动态路由的缺点是,它们需要占用网络带宽和路由器资源.在包含数百个分支站点的中央-分支网络,采用静态路由时配置工作量将非常大,而采用动态路由时将占用大量的资源. 在这种情况下,我们采用第三种方式--按需路由(ODR,On Demand Routing).ODR是Cisco的私有协议,它使用CDP在分支路由器和中央路由器之间传输网络信息.它的优点是,比动态路由协议开销小得多,比静态路由协议配置量少得多.而它的缺点就是,只适合于中央-分

华为IPv4静态路由配置示例

IPv4静态路由配置示例 组网需求 如图1所示,属于不同网段的主机通过几台Switch相连,要求不配置动态路由协议,使不同网段的任意两台主机之间能够互通. 图1 配置IP静态路由组网图 配置思路 采用如下的思路配置IPv4静态路由: 创建VLAN并配置各接口所属VLAN,配置各VLANIF接口的IP地址,实现相邻设备网络互通. 在各主机上配置IP缺省网关,在各台Switch上配置IPv4静态路由或者静态缺省路由,实现不配置动态路由协议,使不同网段的任意两台主机之间能够互通. 操作步骤 1.配置各

LVS NAT模型配置示例

1.LVS-NAT基于Cisco的LocalDirector.VS/NAT不需要在RealServer上做任何设置,其只要能提供一个tcp/ip的协议栈即可,甚至其无论基于什么OS. 2.基于VS/NAT,所有的入站数据包均由Director进行目标地址转换后转发至内部的RealServer,RealServer响应的数据包再由Director转换源地址后发回客户端. 3.VS/NAT模式不能与netfilter兼容,因此,不能将VS/NAT模式的Director运行在netfilter的保护范

LVS DR模型配置示例

要让路由知道哪台主机是Director,进行选择: 1.VIP:MAC(Director VIP) -- MAC绑定,但未必可行,例如路由是运营商的. 2.arptables 3.kernel parameter(常用此配置): arp_ignore:定义接收到ARP请求时的响应级别: 0:默认级别,只要本机配置有相应的地址,就给予响应: 1:只有当请求目标地址是请求到达接口上配置的地址,才给予响应: arp_announce:定义将自己的地址向外通告时的通告级别: 0:默认级别,将本机任何接口

SharePoint 2013 工作流之使用Designer配置示例篇

原文:SharePoint 2013 工作流之使用Designer配置示例篇 在SharePoint 2013中,支持SharePoint Designer 2013(以下简称SPD)配置简单的工作流,完成我们的业务需要.下面,我们就举一个小例子,实现SPD配置工作流. 1. 首先,打开SPD,打开SharePoint站点,在Ribbon菜单上,选择列表工作流,选择需要配置的列表,如下图: 2.弹出对话框,如下图,填写工作流名称.说明及平台类型: 3.进入工作流设计器,如下图: 4.在Ribbo