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