(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Db2】START HADR AS STANDBYを実施するもUnable to start HADR. Reason code = "1"となる

スポンサーリンク

事象

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を実施する必要があります。

以上。