DB2 v9.7
情况描述:
$db2set DB2_HADR_ROS=ON
一、192.168.8.45为主库,192.168.8.46 为备库:
$db2pd -d hadrdb -hadr
Database Partition 0 -- Database HADRDB -- Active -- Up 0 days 22:06:09 -- Date 2016-05-10-12.42.34.708573
HADR Information:
Role State SyncMode HeartBeatsMissed LogGapRunAvg (bytes)
Primary Peer Nearsync 0 155315
ConnectStatus ConnectTime Timeout
Connected Tue May 10 09:12:46 2016 (1462842766) 60
LocalHost LocalService
192.168.8.45 61711
RemoteHost RemoteService RemoteInstance
192.168.8.46 61712 db2inst1
二、客户端配置:
$db2 catalog tcpip node hadr45 remote 192.168.8.45 server 60000
$db2 catalog db hadrdb at node hadr45
$db2 update alternate server for database hadrdb using hostname 192.168.8.46 port 60000
三、可正常连接,插入:
$db2 connect to hadrdb
Database Connection Information
Database server = DB2/LINUXX8664 9.7.11
SQL authorization ID = DB2INST1
Local database alias = HADRDB
$db2 "insert into t1 values (1)"
DB20000I The SQL command completed successfully.
四、备库正常接管
$db2 takeover hadr on db hadrdb
192.168.8.46为主库,192.168.8.45 为备库:
$db2pd -d hadrdb -hadr
Database Partition 0 -- Database HADRDB -- Active Standby -- Up 0 days 22:12:20 -- Date 2016-05-10-12.48.45.133745
HADR Information:
Role State SyncMode HeartBeatsMissed LogGapRunAvg (bytes)
Standby Peer Nearsync 0 66
ConnectStatus ConnectTime Timeout
Connected Tue May 10 09:12:46 2016 (1462842766) 60
ReplayOnlyWindowStatus ReplayOnlyWindowStartTime MaintenanceTxCount
Inactive N/A 0
LocalHost LocalService
192.168.8.45 61711
RemoteHost RemoteService RemoteInstance
192.168.8.46 61712 db2inst1
五、客户端可正常连接,不能插入,可查询:
$db2 connect to hadrdb
Database Connection Information
Database server = DB2/LINUXX8664 9.7.11
SQL authorization ID = DB2INST1
Local database alias = HADRDB
$db2 "insert into t1 values (1)"
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL1773N The statement or command requires functionality that is not
supported on a read-enabled HADR standby database. Reason code = "5".
$db2 "select count(1) from t1 with ur"
1
-----------
2
1 record(s) selected.
问题:除了重新catalog数据库,还有其他办法自动连接到接管后新的主库吗?或者通常是怎么处理的?