【HADR】搭建实战
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:
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】搭建实战的更多相关文章
- 小D课堂 - 新版本微服务springcloud+Docker教程_3-05 服务注册和发现Eureka Server搭建实战
笔记 5.服务注册和发现Eureka Server搭建实战 简介:使用IDEA搭建Eureka服务中心Server端并启动,项目基本骨架介绍 官方文档:http://clou ...
- Elasticsearch数据库 | Elasticsearch-7.5.0应用搭建实战
Elasticsearch 是一个可用于分布式以及符合RESTful 风格的搜索和数据分析引擎.-- Elastic Stack 官网 搭建Elasticsearch的"那些事儿" ...
- Linux-Rsync服务器/客户端搭建实战
一.需求 每晚汇总各机器的操作日志,同步到主服务器进行日志分析. 二.基础知识 rsync 分为服务器端.客户端,服务器端搭建比客户端辛苦一些(也是很简单). rsync 服务器是指以 deamon ...
- Struct2、Hibernate3、Spring3框架搭建实战(转)
采用目前最新的struts-2.3.1.2.hibernate3.6.10.Final.spring-framework-3.1.1.RELEASE开发包,以及eclipse-jee-indigo-S ...
- Nuget私有服务搭建实战
最近更新了Nuget私有服务器的版本,之前是2.8.5,现在是2.11.3. Nuget服务器的搭建,这里有篇很详细的文章,跟着弄就好了: https://docs.microsoft.com/en- ...
- ASP.NET MVC项目框架快速搭建实战
MVC项目搭建笔记---- 项目框架采用ASP.NET MVC+Entity Framwork+Spring.Net等技术搭建,采用”Domain Model as View Model“的MVC开发 ...
- 超详细解说Hadoop伪分布式搭建--实战验证【转】
超详细解说Hadoop伪分布式搭建 原文http://www.tuicool.com/articles/NBvMv2原原文 http://wojiaobaoshanyinong.iteye.com/b ...
- Docker竟然还能这么玩?商业级4G代理搭建实战!
时间过得真快,距离这个系列的上一篇文章<商业级4G代理搭建指南[准备篇]>发布的时间已经过了两个星期了,上个星期由于各种琐事缠身,周二开始就没空写文章了,所以就咕咕咕了. 那么在准备篇中, ...
- Hexo+Github个人博客搭建 | 实战经验分享
概述 第一次尝试搭建属于自己的博客,并且成功了,非常开心. 很久之前就想搭建一个博客,可是也一直没有行动,最近在逛B站的时候发现一个up主(CodeSheep)的一个视频 <手把手教你从0开始搭 ...
随机推荐
- srping boot thymeleaf 学习总结 (2) - thymeleaf properties 国际化 mesaage
thymeleaf获取配置properties中的数据与thymeleaf国际化(摘录) 使用thymeleaf提供的国际化 有时候会有直接在模板中获取配置文件properties中的配置信息,比如: ...
- Web前后端数据交换技术和规范发展史:Form、Ajax、Comet、Websocket
第一阶段:Form web应用想要与服务器交互,必须提交一个表单(form).服务器接收并处理该表单,然后返回一个全新的页面. 缺点:前后两个页面需要更新的数据可能很少,这个过程可能传输了很多之前那个 ...
- windows下Apache的虚拟主机配置
1.Apache虚拟主机: 在Apache上有关于虚拟主机的具体说明,具体可以参考Apache手册,这里简单的说一下虚拟主机主要分为两种: 1.基于主机名的虚拟主机(一个IP地址,多个网站) 2.基于 ...
- Zookeeper客户端cli_st为何在crontab中运行不正常?
实践中,发现直接在命令行终端运行cli_st时,能够得到预期的结果,但一将它放到crontab中,则只收到: bye 相关的一段clit_st源代码如下: if (FD_ISSET(, &rf ...
- C++智能指针shared_ptr
shared_ptr 这里有一个你在标准库中找不到的—引用数智能指针.大部分人都应当有过使用智能指针的经历,并且已经有很多关于引用数的文章.最重要的一个细节是引用数是如何被执行的—插入,意思是说你将引 ...
- swipe.js 使用方法
1.插件要求的css样式: <style> .swipe { overflow: hidden; visibility: hidden; position: relative; } .sw ...
- postgres数据库参数配置说明介绍
访问 1. listen_addresses 监听访问地址 2. port 监听端口 3. max_connections 最大连接数 4. 性能 1. shared_buffers PostgreS ...
- Flex 布局里 input 宽度最小 150px 的问题, 浏览器 BUG?
今天在使用 flex 布局时, 发现当 flex 布局容器比小(小于 150px )时,里面的 input[text] 的宽度会比容器宽: <style> #main { width:12 ...
- 接口IDisposable的用法
C#的每一个类型都代表一种资源,而资源又分为两类: 托管资源 由CLR管理分配和释放的资源,即从CLR里new出来的对象. 非托管资源 不受CLR管理的对象,如Windows内核对象,或者文件.数 ...
- Jmeter+Ant生成结果报告时,MinTime、MaxTime显示NaN的问题
将apache-jmeter-2.13\lib中的serializer-2.7.2.jar.xalan-2.7.2.jar复制到apache-ant-1.9.6\lib中即可: 复制前生成: