事象
HADR構成をスタンバイ側で実施しようとするも表題のエラーとなる。
$ db2 "START HADR ON DB SAMPLE AS STANDBY" SQL1768N Unable to start HADR. Reason code = "1".
環境情報
- DB2 v11.5
- RHEL 7
原因/解決策
公式ドキュメントにて
START HADR AS STANDBY コマンドを発行したが、データベースの状態が、ロールフォワード・ペンディングでもロールフォワード進行中でもないため。
と記載あり。
再度プライマリー側のデータをリストア&ロールフォワード・ペンディング状態のまま実施すると
$ db2 "START HADR ON DB SAMPLE AS STANDBY" DB20000I The START HADR ON DATABASE command completed successfully.
コマンドは正常終了し、スタンバイとしてHADRが稼働する。
$ db2pd -hadr -db sample Database Member 0 -- Database SAMPLE -- Standby -- Up ... HADR_ROLE = STANDBY REPLAY_TYPE = PHYSICAL HADR_SYNCMODE = NEARSYNC STANDBY_ID = 0 LOG_STREAM_ID = 0 ..
以下、補足です。
補足
START HADR AS STANDBYはアクティブなデータベース上で発行することはできないため、アクセスができない状態(ROLL-FORWARD PENDING)状態で止めておく必要があります。
もしスタンバイ機のデータベースがアクティブとなっている場合は以下のように再度バックアップから戻し作業をした上で
$ db2 drop database sample DB20000I The DROP DATABASE command completed successfully. $ db2 "RESTORE DB sample FROM '/data'" DB20000I The RESTORE DATABASE command completed successfully.
HADR用の定義を再投入した上で
$ db2 "UPDATE DB CFG FOR sample USING > HADR_LOCAL_HOST test2 > HADR_LOCAL_SVC 50002 > HADR_SYNCMODE NEARSYNC > HADR_REMOTE_HOST test1 > HADR_REMOTE_SVC 50001 > HADR_REMOTE_INST db2inst1 > LOGINDEXBUILD ON > " DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.
START HADR AS STANDBYを実施する必要があります。
以上。