Summary:

简单的HADR,只用一台虚拟机,两个实例间搭建。工作量不大,一般5分钟左右能够完成。
步骤:
1.设定归档模式
2.使用备份建立standby数据库
3.设定hadr相关的参数
4.启动并测试

测试环境:

OS:Red hat 6
Server: 192.168.122.17
Primary instance: hadr1pri
Primary service/port: 43099
Standby instance: hadr1std
Standby service/port: 44099
DB name: ORG
--注意,切勿使用与DBM SVCENAME 太接近的端口,因为实例会默认使用那端口之后的连续几个端口,所以应尝试更远一些的端口
vi /etc/services
DB2_hadrpri     60008/tcp
DB2_hadrpri_1 60009/tcp
DB2_hadrpri_2 60010/tcp
DB2_hadrpri_END 60011/tcp
DB2_hadrstd 60012/tcp
DB2_hadrstd_1 60013/tcp
DB2_hadrstd_2 60014/tcp
DB2_hadrstd_END 60015/tcp
43099 43099/tcp
44099 44099/tcp

搭建开始

step 1: 创建组和用户

create primary instance id
To create groups on Linux operating systems, enter the following commands:

groupadd -g  db2iadm2
groupadd -g db2fadm2
groupadd -g dasadm2 Create users for each group: useradd -u -g db2iadm2 -m -d /home/hadrpri hadrpri
useradd -u -g db2fadm2 -m -d /home/hadrfenc hadrfenc
useradd -u -g dasadm2 -m -d /home/hadrdas hadrdas

create standby instance id
To create groups on Linux operating systems, enter the following commands:

useradd -u 1020 -g db2iadm2 -m -d /home/hadr1std  hadr1std

useradd -u 1019 -g db2fadm2 -m -d /home/hadr1sfc  hadr1sfc

useradd -u 1018 -g dasadm2 -m -d /home/std1das std1das

step 2:创建实例

cd /opt/IBM/db2/V9.7/instance
./db2icrt -s ese -u hadr1fc hadr1pri
./db2icrt -s ese -u hadr1sfc hadr1std

step3: 主节点归档模式设置,备节点使用restore方式创建数据库,主备节点HADR设置

--在Primary:

--启用归档模式
--启用LOGINDEXBUILD,以便日志有关索引的操作 db2 update db cfg for org using LOGRETAIN on
db2 update db cfg for org using LOGINDEXBUILD on --Backup DB
db2 backup db org to /data

----在standby

--启动数据

--使用primary db 的备份文件进行数据库恢复

db2start 
db2 restore db org from   /home/hadrstd  taken at 20150120040252 on /home/hadrstd dbpath on /home/hadrstd

--这时候standby的数据库应该是roll-forward pedning的状态,切勿手动roll-forward 
   db2 connect to org

SQL1117N  A connection to or activation of database "SAMPLE" cannot be made  
   because of ROLL-FORWARD PENDING.  SQLSTATE=57019

--在Primary:

db2 update dbm cfg using svcename DB2_hadrpri

db2 update db cfg for org using hadr_local_svc  41099

db2 update db cfg for org using hadr_remote_host  192.168.122.17

db2 update db cfg for org using hadr_local_host  192.168.122.17

db2 update db cfg for org using hadr_remote_svc 42099

db2 update db cfg for org using hadr_remote_inst  hadrstd

db2 update db cfg for org using hadr_syncmode sync

db2 connect to org
db2 quiesce database immediate force connections
db2 unquiesce database
db2 connect reset

--在Standby:

db2 update dbm cfg using svcename DB2_hadrstd

db2 update db cfg for org using hadr_remote_host  192.168.122.17

db2 update db cfg for org using hadr_local_svc  42099

db2 update db cfg for org using hadr_local_host  192.168.122.17

db2 update db cfg for org using hadr_remote_svc  41099

db2 update db cfg for org using hadr_remote_inst  hadrpri

db2 update db cfg for org using hadr_syncmode sync

db2 update db cfg for org using HADR_TIMEOUT 3

db2 update db cfg for org using HADR_PEER_WINDOW 120

4.启动并测试

--先启动standby 
    --在Standby: 
    db2 start hadr on db sample as standby 
    DB20000I  The START HADR ON DATABASE command completed successfully. 
     
    --这时候应该是remote catchup pending的状态:

[hadrstd@oc0644314035 db2dump]$ db2pd -d org -hadr

Database Partition 0 -- Database ORG -- Standby -- Up 0 days 00:00:05 -- Date 2015-01-20-22.00.09.169952

HADR Information:

Role    State                SyncMode   HeartBeatsMissed   LogGapRunAvg (bytes)

Standby RemoteCatchupPending Sync     0                  0

ConnectStatus ConnectTime                           Timeout  
Disconnected  Tue Jan 20 22:00:05 2015 (1421809205) 120

LocalHost                                LocalService     
192.168.122.17                           42099

RemoteHost                               RemoteService      RemoteInstance   
192.168.122.17                           41099              hadrstd

PrimaryFile  PrimaryPg  PrimaryLSN       
S0000000.LOG 0          0x0000000002728010

StandByFile  StandByPg  StandByLSN         StandByRcvBufUsed

--再启动Primary 
    --在Primary: 
[hadr1pri@oc0644314035 data]$ db2 start hadr on database org as primary

DB20000I  The START HADR ON DATABASE command completed successfully.

[hadrstd@oc0644314035 ~]$ db2pd -d org -hadr

Database Partition 0 -- Database ORG -- Standby -- Up 0 days 00:11:53 -- Date 2015-01-21-00.59.58.732725

HADR Information:

Role    State                SyncMode   HeartBeatsMissed   LogGapRunAvg (bytes)

Standby Peer                 Sync     0                  0

ConnectStatus ConnectTime                           Timeout  
Connected     Wed Jan 21 00:48:39 2015 (1421819319) 3

PeerWindowEnd                         PeerWindow

Wed Jan 21 01:01:57 2015 (1421820117) 120

LocalHost                                LocalService     
192.168.122.17                           42099

RemoteHost                               RemoteService      RemoteInstance   
192.168.122.17                           41099              hadrpri

PrimaryFile  PrimaryPg  PrimaryLSN       
S0000001.LOG 0          0x0000000002728010

StandByFile  StandByPg  StandByLSN         StandByRcvBufUsed

S0000001.LOG 0          0x0000000002728010 0%

--可以看到一旦Primary也起来了,hadr的状态就会变成peer

--这时候尝试手动归档,看日志是否能够顺利传递到standby 
[hadr1pri@oc0644314035 data]$  db2 archive log for DB sample

DB20000I  The ARCHIVE LOG command completed successfully.

--在Standby进行role 切换

[hadrstd@oc0644314035 ~]$ db2 takeover hadr on database org

DB20000I  The TAKEOVER HADR ON DATABASE command completed successfully.

[hadrstd@oc0644314035 ~]$ db2pd -d org -hadr

Database Partition 0 -- Database ORG -- Active -- Up 0 days 00:12:16 -- Date 2015-01-21-01.00.21.098460

HADR Information:

Role    State                SyncMode   HeartBeatsMissed   LogGapRunAvg (bytes)

Primary Peer                 Sync     0                  0

ConnectStatus ConnectTime                           Timeout  
Connected     Wed Jan 21 00:48:39 2015 (1421819319) 3

PeerWindowEnd                         PeerWindow

Wed Jan 21 01:02:20 2015 (1421820140) 120

LocalHost                                LocalService     
192.168.122.17                           42099

RemoteHost                               RemoteService      RemoteInstance   
192.168.122.17                           41099              hadrpri

PrimaryFile  PrimaryPg  PrimaryLSN       
S0000001.LOG 0          0x0000000002728010

StandByFile  StandByPg  StandByLSN       
S0000001.LOG 0          0x0000000002728010

References

搭建案例:

http://guoyanxi.iteye.com/blog/1173906

http://blog.csdn.net/dream19881003/article/details/7417285

自己总结的ISSUES

http://www.cnblogs.com/DBA-Ivan/p/4260264.html

Issues:

https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014850278

http://bytes.com/topic/db2/answers/496482-unable-start-hadr-reason-code-7-a

http://www.dbforums.com/showthread.php?1665366-DB2-9-7-HADR-setup

【HADR】搭建实战的更多相关文章

  1. 小D课堂 - 新版本微服务springcloud+Docker教程_3-05 服务注册和发现Eureka Server搭建实战

    笔记 5.服务注册和发现Eureka Server搭建实战     简介:使用IDEA搭建Eureka服务中心Server端并启动,项目基本骨架介绍          官方文档:http://clou ...

  2. Elasticsearch数据库 | Elasticsearch-7.5.0应用搭建实战

    Elasticsearch 是一个可用于分布式以及符合RESTful 风格的搜索和数据分析引擎.-- Elastic Stack 官网 搭建Elasticsearch的"那些事儿" ...

  3. Linux-Rsync服务器/客户端搭建实战

    一.需求 每晚汇总各机器的操作日志,同步到主服务器进行日志分析. 二.基础知识 rsync 分为服务器端.客户端,服务器端搭建比客户端辛苦一些(也是很简单). rsync 服务器是指以 deamon ...

  4. Struct2、Hibernate3、Spring3框架搭建实战(转)

    采用目前最新的struts-2.3.1.2.hibernate3.6.10.Final.spring-framework-3.1.1.RELEASE开发包,以及eclipse-jee-indigo-S ...

  5. Nuget私有服务搭建实战

    最近更新了Nuget私有服务器的版本,之前是2.8.5,现在是2.11.3. Nuget服务器的搭建,这里有篇很详细的文章,跟着弄就好了: https://docs.microsoft.com/en- ...

  6. ASP.NET MVC项目框架快速搭建实战

    MVC项目搭建笔记---- 项目框架采用ASP.NET MVC+Entity Framwork+Spring.Net等技术搭建,采用”Domain Model as View Model“的MVC开发 ...

  7. 超详细解说Hadoop伪分布式搭建--实战验证【转】

    超详细解说Hadoop伪分布式搭建 原文http://www.tuicool.com/articles/NBvMv2原原文 http://wojiaobaoshanyinong.iteye.com/b ...

  8. Docker竟然还能这么玩?商业级4G代理搭建实战!

    时间过得真快,距离这个系列的上一篇文章<商业级4G代理搭建指南[准备篇]>发布的时间已经过了两个星期了,上个星期由于各种琐事缠身,周二开始就没空写文章了,所以就咕咕咕了. 那么在准备篇中, ...

  9. Hexo+Github个人博客搭建 | 实战经验分享

    概述 第一次尝试搭建属于自己的博客,并且成功了,非常开心. 很久之前就想搭建一个博客,可是也一直没有行动,最近在逛B站的时候发现一个up主(CodeSheep)的一个视频 <手把手教你从0开始搭 ...

随机推荐

  1. win32多线程-异步(asynchronous) I/O

    I/O设备是个慢速设备,无论打印机.调制解调器,甚至硬盘,与CPU相比都奇慢无比,坐下来干等I/O的完成是一件不甚明智事情. 异步(asynchronous) I/O在win32多线程程序设计中被称为 ...

  2. python将json转csv

    现有一个需求要将json转成excel,使用python将其转为csv格式,使用excel打开即可. import json import csv import codecs f = open('te ...

  3. .NET框架源码解读之准备CLR源码阅读环境

    微软发布了CLR 2.0的源码,这个源码是可以直接在freebsd和windows环境下编译及运行的,请在微软shared source cli(http://www.microsoft.com/en ...

  4. solr-DIH:dataimport增量全量创建索引

    索引创建完毕,就要考虑怎么定时的去重建, 除了写solrj,可以定时调用下面两条url进行增量或者全量创建索引   全量:http://ip:port/webapp_name/core_name/da ...

  5. .Net 数据缓存浅析

    目录 1场景出发 1.1数据请求 1.2优化改进 2缓存 3缓存进阶 3.1缓存清除 3.2有效性 3.3线程安全 4适用场景和优劣 4.1适用场景 4.2优劣 5结语 1场景出发 1.1数据请求 小 ...

  6. JavaSe 之三目运算符应用

    刚学习Java基本知识,对于三目运算符的应用,尝试了做出求某年份中月份的天数. /*自己随意定义一个年份和月份,使用三目运算符 取得当前月份具体天数.并且输出在控制台. 注意哦:大月31天,小月30天 ...

  7. connect db2 by tools

  8. Java50道经典习题-程序16 在控制台上打印九九乘法表

    题目:输出9*9口诀.分析:利用双重for循环进行输出,分行与列考虑,共9行9列,i控制行,j控制列. public class Prog16 { public static void main(St ...

  9. 【Oracle 12c】最新CUUG OCP-071考试题库(58题)

    58.(16-1) choose the best answer: Examine the structure of the BOORSTRANSACTIONS table: Examine the ...

  10. ESXi到KVM之v2v迁移

    1.ESXi到KVM之v2v情况说明 (1).配置任务列表: 1)VMwareESXi虚拟平台下linux系统迁移到KVM虚拟平台.2)VMwareESXi虚拟平台下windows系统迁移到KVM虚拟 ...