整理这篇文档主要记录复制搭建过程中遇到的问题,被其中一个搞了好久才突然一下子明白过来。。。。

1.备份恢复的时候报错:SQL0970N The system attempted to write to a read-only file. SQLSTATE=55009
2.SQL1768N Unable to start HADR. Reason code = “5”.
3.没有复制。。。

辅助工具: db2diag
db2diag -level Error
在一台机器上安装了两个实例db2inst1,db2inst2,然后将HADR_LOCAL_SVC 和HADR_REMOTE_SVC设置的与实例的运行端口一致,所以,一直在报“SQL1768N Unable to start HADR. Reason code = “5””的错误,实际上在这里有个误解,我们配置MySQL的复制时,要使用端口号3306,但是这里的复制监听端口跟MySQL的端口不一样的,因为DB2的进程实际上就是Linux的进程,所以在这里需要另行开端口,也就是我们随意指定一个监听端口,当启动HADR后,这个端口就会打开,负责复制的通信。

如图:

2017-09-01-16.28.54.340565+480 I908211E796           LEVEL: Error
PID     : 36456                TID : 139973198079744 PROC : db2sysc
INSTANCE: db2inst2             NODE : 000            DB   : KILO
APPHDL  : 0-17                 APPID: *LOCAL.db2inst2.170901082853
AUTHID  : DB2INST2             HOSTNAME: db22.com
EDUID   : 22                   EDUNAME: db2agent (KILO)
FUNCTION: DB2 UDB, High Availability Disaster Recovery, hdrValidateLocalServiceDbCfg, probe:21210
MESSAGE : ZRC=0x87800142=-2021654206=HDR_ZRC_CONFIG_LOCAL_SVC"HADR_LOCAL_SVC configuration parameter is an invalid service name"
DATA #1 : <preformatted>
HADR_LOCAL_SVC cannot be same port as SVCENAME or SVCENAME +1
HADR_LOCAL_SVC 54001,  Port # 54001
SVCENAME       54001,  Port # 54001
SVCENAME + 1   54002

诊断日志中说HADR_LOCAL_SVC cannot be same port as SVCENAME or SVCENAME +1 ,所以突然就想到应该是要另开端口的。

2.db2inst1上的备份,db2inst2上恢复时报SQL0970N :read-only的错误

[db2inst2@a18 ~]$ db2 restore db kilo taken at 20170904100841
SQL0970N  The system attempted to write to a read-only file.  SQLSTATE=55009
2017-09-04-10.12.50.228929+480 I169707E3155          LEVEL: Error (OS)
PID     : 4096                 TID : 140640650258176 PROC : db2sysc
INSTANCE: db2inst2             NODE : 000            DB   :
APPHDL  : 0-13                 APPID: *LOCAL.db2inst2.170904020959
AUTHID  : DB2INST2             HOSTNAME: a18.mysql.iso0.lfk.com
EDUID   : 21                   EDUNAME: db2agent (instance)
FUNCTION: DB2 Common, OSSe, ossErrorIOAnalysis, probe:100
CALLED  : OS, -, open                             OSERR: EACCES (13)
DATA #1 : String, 157 bytes
A total of 2 analysis will be performed :- User info- Path access permission
[db2inst2@a18 ~]$ db2 restore db kilo taken at 20170904100841 on /home/db2inst2
DB20000I  The RESTORE DATABASE command completed successfully.

3.在primary上建表并插入数据,standby上没有收到。

db2diag -level Error
... ... ...
2017-09-01-17.08.55.963065+480 E3711665E645          LEVEL: Error
PID     : 39151                TID : 140330070435584 PROC : db2sysc
INSTANCE: db2inst1             NODE : 000            DB   : KILO
HOSTNAME: db22.com
EDUID   : 41                   EDUNAME: db2hadrp.0.1 (KILO)
FUNCTION: DB2 UDB, High Availability Disaster Recovery, hdrEduAcceptEvent, probe:20200
MESSAGE : Did not receive anything through HADR connection for the duration of HADR_TIMEOUT. Closing connection.
DATA #1 : String, 30 bytes
hdrCurrentTime/hdrLastRecvTime
DATA #2 : unsigned integer, 4 bytes
1504256935
DATA #3 : unsigned integer, 4 bytes
15042564172017-09-01-18.18.58.511765+480 E3720982E514          LEVEL: Error (OS)
PID     : 39151                TID : 140330070435584 PROC : db2sysc
INSTANCE: db2inst1             NODE : 000            DB   : KILO
HOSTNAME: db22.com
EDUID   : 41                   EDUNAME: db2hadrp.0.1 (KILO)
FUNCTION: DB2 UDB, oper system services, sqloPdbQuerySocketErrorStatus, probe:15
MESSAGE : ZRC=0x810F001C=-2129723364=SQLO_NO_CONNECTION "No connection"
CALLED  : OS, -, getsockopt                       OSERR: ECONNRESET (104)2017-09-01-18.19.19.039294+480 I3721497E557          LEVEL: Error
PID     : 39151                TID : 140330070435584 PROC : db2sysc
INSTANCE: db2inst1             NODE : 000            DB   : KILO
HOSTNAME: db22.com
EDUID   : 41                   EDUNAME: db2hadrp.0.1 (KILO)
FUNCTION: DB2 UDB, High Availability Disaster Recovery, hdrSendRedirectMsgToOneAddress, probe:31070
MESSAGE : ZRC=0xFFFFFFFF=-1
DATA #1 : <preformatted>
The HADR primary was not able to form a TCP connection with the standby: [0000:0000:0000:0000:0000:0000:0000:0001]:54001.... ... ...
2017-09-04-11.13.22.594229+480 I445495E514           LEVEL: Error
PID     : 11131                TID : 140677660796672 PROC : db2sysc
INSTANCE: db2inst2             NODE : 000            DB   : KILO
HOSTNAME: a18.mysql.iso0.lfk.com
EDUID   : 90                   EDUNAME: db2hadrs.0.0 (KILO)
FUNCTION: DB2 UDB, High Availability Disaster Recovery, hdrEduAcceptEvent, probe:20280
MESSAGE : ZRC=0x810F0019=-2129723367=SQLO_CONN_REFUSED "Connection refused"
DATA #1 : <preformatted>
Failed to connect to primary.

The HADR primary was not able to form a TCP connection with the standby: [0000:0000:0000:0000:0000:0000:0000:0001]:54001.

4.备库设置可读

[db2inst2@a18 ~]$ db2 connect to kilo
SQL1776N  The command cannot be issued on an HADR database. Reason code = "1".

启用“在备用数据库上读取”
将 DB2_HADR_ROS 注册表变量设置为 ON。

[db2inst2@a18 ~]$ db2set DB2_HADR_ROS=ON
#重启一下db2实例,重启一下复制
[db2inst2@a18 ~]$ db2 connect to kiloDatabase Connection InformationDatabase server        = DB2/LINUXX8664 11.1.2.2SQL authorization ID   = DB2INST2Local database alias   = KILO

5.设置了可读,如果用户不一致,还是会因为没有权限报SQL0551N的错误呢

SQL0551N
authorization-ID does not have the required authorization or privilege to perform operation operation on object object-name.
SELECT AUTHORITY, D_USER, D_GROUP, D_PUBLIC, ROLE_USER, ROLE_GROUP, ROLE_PUBLIC, D_ROLE  FROM TABLE (SYSPROC.AUTH_LIST_AUTHORITIES_FOR_AUTHID ('ALICE', 'U') ) AS T   ORDER BY AUTHORITY

在备份之前进行授权。

授权后备份恢复后又遇到一个问题:

执行select时报错:SQL1773N,
查找参考官文:

SQL1773N
该语句或命令失败,因为其需要使用允读的 HADR 备用数据库上不支持的功能。原因码:原因码。
说明与原因码对应的解释是:1使用了除 UR 之外的隔离级别,并且已关闭 DB2_STANDBY_ISO 注册表变量。
db2set  DB2_STANDBY_ISO=UR

终于正确读出来了~

https://www.ibm.com/support/knowledgecenter/zh/SSEPGG_10.1.0/com.ibm.db2.luw.admin.ha.doc/doc/t0011725.html

操作步骤

本次搭建采用一机两个实例搭建:

HADR角色 host svcname instname 数据库版本 数据库名称
主库 localhost ba5oltp1 10.5 ST
备库 localhost db2inst1 10.5

1).主机上设置循环日志

2).主机上连接到授权

db2 connect to st
db2 "grant DATAACCESS ON DATABASE TO DB2INST1"

3).主机上备份数据库

db2 backup database to /tmp

4).root更改备份文件所有者

chown db2inst1 /tmp/ST*

5).备库上恢复

db2 restore db st from /tmp taken at 20170920112008 on /home/db2inst1

6).编辑/etc/services文件,添加与SVCENAME不同的服务名和端口号

#ba5oltp1
$db2 get dbm cfg | grep SVCTCP/TP Service name              (SVCENAME)=DB2cbaoltp1
#主库所在的实例服务
DB2cba5oltp1    50110/tcp
#添加主库HADR的端口号
DB2_ba5oltp1_1  60071/tcp#备库所在的实例服务
DB2_db2inst1    60011/tcp
#备库HADR的端口号
DB2_db2inst1_1  60013/tcp

7).根据配置执行更新

#主库上:
db2 update db cfg for ST using HADR_LOCAL_HOST localhost HADR_LOCAL_SVC DB2_ba5oltp1_1  HADR_REMOTE_HOST localhost HADR_REMOTE_SVC DB2_db2inst1_1 HADR_REMOTE_INST db2inst1#备库上:
db2 update db cfg for ST using HADR_LOCAL_HOST localhost HADR_LOCAL_SVC DB2_db2inst1_1 HADR_REMOTE_HOST localhost HADR_REMOTE_SVC DB2_ba5oltp1_1    HADR_REMOTE_INST ba5oltp1

启动HADR

备库上:

DB2的HADR的搭建相关推荐

  1. db2 v10.5 HADR 搭建过程

    organization: China Poka Author: Duan Yu mail:chinazzbcn@gmail.com or cn-duanyu@foxmail.com 1 .HADR ...

  2. Redhat Linux 5.3环境实施DB2 V9.7 HADR

    数据库主机:使用VMware workstation 虚拟两台机器 操作系统:Red Hat EL 5.3 数据库软件:DB2 V9.7 虚拟机,操作系统环境安装过程省去. 2.2逻辑拓扑结构 2.3 ...

  3. db2 数据库配置HADR+TSA添加集群节点

    Db2配置HADR高可用+TSA添加集群节点 一.服务器资源 Master IP:10.78.10.1 数据库:dbclass Slave IP:10.78.10.2 数据库:dbclass VIP: ...

  4. 软件测试b s环境如何配置,B/S架构测试环境搭建_DB2篇(Win32系统)

    前言:前一篇分享了Oracle环境下的环境搭建和恢复,这一篇分享下DB2数据库的环境搭建,欢迎拍砖. 一.搭建测试环境: (1)新建数据库,DB2安装完成之后,在开始菜单中查看对应的信息,步骤是&qu ...

  5. win10卸载db2_如何在Linux下干净卸载db2数据库

    满意答案 sesqhr2m 2017.07.29 采纳率:50%    等级:9 已帮助:1512人 1.首先确定有哪几个DB2实例及其数据库,并清除数据库和实例 1 2 3 4 #/opt/IBM/ ...

  6. SQL注入系列之环境搭建(一)----ASP+ACCESS注入环境搭建

    一.常见网站搭建组合 操作系统:windows linux 搭建平台:iis apache uginx tomcat 脚本格式:asp php aspx jsp cgi war py pl do js ...

  7. 实战TSA与HADR

    转自:http://www.db2china.net//home/space.php?uid=28836&do=blog&id=31085 IBM信息管理月刊第十期有很多大牛的HADR ...

  8. 世界领先!详解蚂蚁金服自研数据库OceanBase的高可用及容灾方案

    小蚂蚁说: 关于蚂蚁金服自研的金融级分布式关系型数据库OceanBase的故事相信大家已经不再陌生了(新来的同学可以移步<厉害了,蚂蚁金服!创造了中国自己的数据库OceanBase>了解更 ...

  9. 传统外置存储已近黄昏

    2011年10月18日,冬瓜哥写了一篇文章叫做<传统存储系统或将迎来严酷冬天>.而4年后的今天,EMC被收购,正式标志着一个时代的尾声.2000-2020或许就是传统外置存储系统的第一个纪 ...

最新文章

  1. mysql减少锁等待_降低锁竞争 减少MySQL用户等待时间
  2. Cassandra与RDBMS的设计差别
  3. js控制input框输入数字时,累计求和
  4. oracle中避免sort操作
  5. 计算机接口配件,最近发布:最新的计算机外部接口计算机主板外部接口简介计算机主板接口简介...
  6. python 三维向量 交互_Blender实现Nature of Code1.5单位向量[Nature of Node 004]
  7. python下载文件的第三方库_Python常用第三方库(转载)
  8. 杭电1716排列2 stl
  9. java基础70 负责静态的网页制作语言XML(网页知识)
  10. Keras实现text classification文本二分类
  11. 利用卷积进行序列到序列学习
  12. DB2数据库备份和恢复笔记
  13. GreenSock GSAP 3.0 最新版 所有内容创建于2020年4月4日
  14. 视频在html不能播放器,网页播放器打不开的解决方法
  15. 使用 Onedrive 来同步Mac 桌面
  16. 电脑待办事项桌面_电脑上有没有治拖延症的软件?怎么在办公电脑上添加一款提醒便签软件...
  17. 轻快PDF阅读器绿色版免费下载
  18. 招银网络科技2019年春招笔试面试总结
  19. 怎么才能制作一个比较好的网站
  20. E5 2670 V1 C1 C2版本区别

热门文章

  1. 从失败中崛起!52岁斯皮尔曼,曾携华人科学家2次斩获哥德尔奖
  2. [Spark进阶]--Spark配置参数说明
  3. VB和VBS、VBA的区别及作用
  4. post_thumbnail_html,WordPress自带thumbnail缩略图功能使用介绍
  5. html5选择年月日 年月日时分 年月日时分秒
  6. Trello中的Scrum
  7. 使用mybatis plus时传入中文时出现乱码
  8. Java钉钉markdown模版,钉钉 dingding dingtalk prometheus报警模板template
  9. Java static与final详细讲解
  10. CLIP: Learning Transferable Visual Models From Natural Language Supervision