ページの先頭行へ戻る
Symfoware Server V11.0.1 クラスタ導入運用ガイド
Symfoware

10.3.6 インダウトログファイルのリカバリ

インダウトログファイルのリカバリには、Symfoware/RDB運用中に行う方法と、Symfoware/RDB停止中に行う方法があります。Symfoware/RDB運用中のリカバリは、Symfoware Server Enterprise Extended Editionで利用できます。

インダウトログファイルに入出力障害が発生した場合、Symfoware/RDBは自動的にフォールバック運用になります。このため、業務スケジュールの都合の良い時間にリカバリしてください。

インダウトログファイルに入出力障害が発生した場合のフォールバック運用では、インダウト状態となったトランザクションが更新していたデータベースはインダウトリカバリ不可閉塞となり、データベースのリカバリが必要です。ただし、その他のデータベースについては引き続きアクセス可能となります。

Symfoware/RDB運用中のリカバリ
リカバリ操作の手順

システムロググループの場合は、Capitalシステムの運用ノードでリカバリをしてください。

ユーザロググループの場合は、ロググループが偏在するSatelliteシステムでリカバリをしてください。

(1) 業務中にインダウトログファイルのアクセスエラーが
    発生した場合、システムメッセージを出力して、
    インダウトログファイルを閉塞します。
    テンポラリログファイルとインダウトログファイルを
    同一ローデバイスに配置している場合                      ⇒(2)
    テンポラリログファイルとインダウトログファイルを
    同一ローデバイスに配置していない場合                    ⇒(5)
(2) テンポラリログファイルを閉塞します。                    ――― rdblogコマンド
                                                                   (Hオプションかつ
                                                                    tオプションかつ
                                                                    gオプション)
    ログ管理ファイルとテンポラリログファイルを同一
    ローデバイスに配置している場合                          ⇒(3)
    ログ管理ファイルとテンポラリログファイルを同一
    ローデバイスに配置していない場合                        ⇒(5)
(3) ログ管理ファイルを閉塞します。                          ――― rdblogコマンド
                                                                   (Hオプションかつ
                                                                    Iオプションかつ
                                                                    gオプション)
    ロググループ管理ファイルとログ管理ファイルを同一
    ローデバイスに配置している場合                          ⇒(4)
    ロググループ管理ファイルとログ管理ファイルを同一
    ローデバイスに配置していない場合                        ⇒(5)
(4) ロググループ管理ファイルを閉塞します。                  ――― rdblogコマンド
                                                                   (Hオプションかつ
                                                                    Mオプション)
(5) 媒体障害の場合は、障害ボリュームを取り換え、            ――― CE作業 
    ボリュームの構成情報をリカバリします。
    ロググループ管理ファイル、ログ管理ファイル、
    テンポラリログファイル、インダウトログファイルを
    同一ローデバイスに配置している場合                      ⇒(6)
    ログ管理ファイル、テンポラリログファイル、
    インダウトログファイルを同一ローデバイスに配置
    している場合                                            ⇒(7)
    テンポラリログファイル、インダウトログファイルを
    同一ローデバイスに配置している場合                      ⇒(8)
    上記以外の場合                                          ⇒(9)
(6) ロググループ管理ファイルをリカバリし閉塞を解除します。 ――― rdblogコマンド
                                                                  (Pオプションかつ
                                                                   Mオプション)
(7) ログ管理ファイルをリカバリし閉塞を解除します。         ――― rdblogコマンド
                                                                  (Pオプションかつ
                                                                   Iオプションかつ
                                                                   gオプション)
(8) テンポラリログファイルをリカバリし閉塞を解除します。   ――― rdblogコマンド
                                                                  (Pオプションかつ
                                                                   tオプションかつ
                                                                   gオプション)
(9) インダウトログファイルをリカバリし閉塞を解除します。   ――― rdblogコマンド 
                                                                  (Pオプションかつ
                                                                   iオプションかつ
                                                                   gオプション)

以下の処理はDSIが偏在するSatelliteシステムで実施してください。

(10) インダウトリカバリ不可閉塞が設定された資源が          ――― rdbinfコマンド 
    あるか調べます。                                              (lオプションかつ
                                                                   aオプション
                                                                   または
                                                                   iオプションかつ
                                                                   aオプション) 
(11) インダウトリカバリ不可閉塞が設定された資源が          ――― rdbrcvコマンド
   ある場合は、それらを退避データとアーカイブログを
   用いてメディアリカバリによりリカバリします。
リカバリ操作例

ここでは、以下の場合を想定しています。

  • ログ管理ファイル、テンポラリログファイル、インダウトログファイルを同一のボリュームに配置している

  • ユーザロググループ

システムロググループの場合は、rdblogコマンドのgオプション(ロググループ名の指定)を省略して実行してください。

rdb: ERROR: qdg12850u:インダウトログファイルの入出力処理で異常が発生しました 
     errno=5 (システム名=rdbsys1) 
rdb: INFO : qdg13239i:ロググループ”group1”において事象”qdg12850u”が発生しました
     (システム名=rdbsys1) 

rdb: ERROR: qdg13824e:インダウトログファイルを閉塞しました(システム名=rdbsys1) 
rdb: INFO : qdg13239i:ロググループ”group1”において事象”qdg13824e”が発生しました 
     (システム名=rdbsys1) 

$ rdblog -H -t -g group1 
$ rdblog -H -I -g group1 

CE作業 … 媒体障害の場合は、障害ボリュームを取り換え、ボリュームの構成情報をリカバリします。

$ rdblog -P -I -g group1 
$ rdblog -P -t -g group1 
$ rdblog -P -i -g group1 

$ rdbinf -l inh -a

$ rdbrcv -F -i 在庫管理DB.在庫表DSI -f stock@/backup/rdb -w /home/rdb/work

閉塞状態のインダウトログファイルをリカバリして閉塞状態を解除するには、メモリ上の情報を使用します。そのため、インダウトログファイルが閉塞状態のままSymfoware/RDBを停止すると、Pオプションでリカバリできません。必ず、Symfoware/RDBを停止する前にPオプションでインダウトログファイルをリカバリしてください。なお、Pオプションによりインダウトログファイルをリカバリする前にSymfoware/RDBを停止した場合は、“Symfoware/RDB停止中のリカバリ”に従ってリカバリしてください。インダウトログファイルの入出力障害以外の理由でボリューム交換を行う場合は、ボリュームの交換を行う前に、インダウトログファイルを閉塞状態にしてください。インダウトログファイルの閉塞は、rdblogコマンドのHオプションおよびiオプションで行います。

閉塞されたデータベース資源のリカバリ

インダウトログファイルが閉塞されると、DSIにインダウトリカバリ不可閉塞が設定されることがあります。よって、トランザクションモニタを起動してインダウトリカバリ(アプリケーションサーバからのコミット/ロールバック指示によるインダウトトランザクションの解決)が完了した後には、インダウトリカバリ不可閉塞が設定されたDSIを、退避データとアーカイブログを用いてメディアリカバリにより最新状態にリカバリしてください。このようにインダウトリカバリが完了してからメディアリカバリを行うことにより、資源は分散トランザクションの結果を正しく反映した状態でリカバリされます。このメディアリカバリは、インダウトリカバリが完了した後であれば、インダウトログファイルのリカバリ前でもリカバリ後でも行うことができます。

インダウトリカバリ不可閉塞が設定されているDSIは、以下のいずれかの方法で調べることができます。

  • rdbinfコマンドにlオプションとaオプションを指定して実行します。DSIの閉塞種別に“IIH” が表示されているDSIが、インダウトリカバリ不可閉塞が設定されているDSIです。

  • rdbinfコマンドにiオプション(またはpオプション)とaオプションを指定して実行します。State欄に“INH”かつCause欄に“IIH”が表示されているDSIが、インダウトリカバリ不可閉塞が設定されているDSIです。

  • インダウトリカバリ不可閉塞が設定される際にメッセージログファイルに次のようなメッセージが出力されます。メッセージに表示された資源名からリカバリすべきDSIを特定することができます。

    rdb: ERROR: qdg13816u:インダウトリカバリによるリカバリが不可能なため データベースをアクセス禁止状態にしました
    DB名=’在庫管理DB’ DSI名=’在庫表DSI’
    rdb: ERROR: qdg13817u:インダウトリカバリによるリカバリが不可能なため データベースをアクセス禁止状態にしました
    DB名=’在庫管理DB’ DSI名=’在庫表DSI’ ページ識別番号=’10’
    rdb: INFO: qdg13820i:インダウトリカバリによるリカバリが不可能となったため、DSI’在庫管理DB.在庫表DSI’に
    設定されているインダウト閉塞をインダウトリカバリ不可閉塞に置換しました
Symfoware/RDB停止中のリカバリ
リカバリ操作の手順

Capitalシステムが稼動する任意のノードで、RDBNAMEにCAPITALを指定して、以下の手順でリカバリをしてください。

(1) スケーラブル型のクラスタアプリケーションに
    登録されているすべての運用系および待機系の
    クラスタアプリケーションを保守停止します。
    クラスタアプリケーションの保守停止手順は、
    “9.5 クラスタアプリケーションの保守のための停止”を
    参照してください。
(2) 媒体障害の場合は、障害ボリュームを取り換え、             ―――― CE作業
    ボリュームの構成情報をリカバリします。
    ロググループ管理ファイル、ログ管理ファイル、
    テンポラリログファイル、インダウトログファイル
    を同一ローデバイスに配置している場合                        ⇒(3)
    ログ管理ファイル、テンポラリログファイル、
    インダウトログファイルを同一ローデバイスに配置している場合  ⇒(6)
    テンポラリログファイル、インダウトログファイルを
    同一ローデバイスに配置している場合                          ⇒(9)
    上記以外の場合                                              ⇒(11)
(3) ロググループ管理ファイルを作成します。                      ―――― rdblogコマンド
                                                                         (Mオプション)
(4) 同一ローデバイス以外のすべてのロググループの               ―――― rdblogコマンド
    ログ管理ファイルを再登録します。                                     (Aオプションかつ
                                                                          Iオプション)
(5) 当該ロググループ以外のすべてのロググループのログ         ―――― rdblogコマンド
    管理ファイルが正常に登録されたことを確認します。                     (Vオプションかつ
                                                                          Iオプション)
(6) ログ管理ファイルを作成します。                              ―――― rdblogコマンド
    システムロググループの場合                                           (Iオプション)
    ユーザロググループかつ(3)によりロググループ管理                      (Iオプションかつ
    ファイルを作成している場合                                            gオプション)
    ユーザロググループかつ(3)によりロググループ管理                      (Iオプションかつ
    ファイルを作成していない場合                                          rオプションかつ
                                                                          gオプション)
(7) すべてのアーカイブログファイルを再登録します。              ―――― rdblogコマンド
                                                                         (Aオプションかつ
                                                                          aオプション)
(8) すべてのアーカイブログファイルが正常に登録された            ―――― rdblogコマンド
    ことを確認します。                                                   (Vオプションかつ
                                                                          aオプションかつ
                                                                          gオプション)
(9) テンポラリログファイルを再作成します。                      ―――― rdblogコマンド
                                                                         (Gオプションかつ
                                                                          tオプションかつ
                                                                          rオプションかつ
                                                                          gオプション)
(10) テンポラリログファイルが正常に登録されたことを             ―――― rdblogコマンド
    確認します。                                                         (Vオプションかつ
                                                                          tオプションかつ
                                                                          gオプション)
    ログ管理ファイルがインダウトログファイルと
    同一ローデバイスに配置していない場合                        ⇒(11)
    ログ管理ファイルがインダウトログファイルと
    同一ローデバイスに配置している場合                          ⇒(12)
(11) インダウトログファイルを削除します。                       ―――― rdblogコマンド
                                                                         (Dオプションかつ
                                                                          iオプションかつ
                                                                          eオプションかつ
                                                                          gオプション)

(12) インダウトログファイルを再作成します。                    ―――― rdblogコマンド
                                                                        (Gオプションかつ
                                                                         iオプションかつ
                                                                         gオプション)
(13) インダウトログファイルが正常に作成されたことを            ―――― rdblogコマンド
    確認します。                                                        (Vオプションかつ
                                                                         iオプションかつ
                                                                         gオプション)
(14) ユーザロググループかつ(6)によりログ管理ファイルを
    作成している場合
    ユーザロググループ用のRDBディレクトリファイルを            ―――― rdbscldirコマンド
    再登録します。                                                      (Aオプションかつ
                                                                         gオプション)

(15) ユーザロググループ用のRDBディレクトリファイルが           ―――― rdbscldirコマンド
    正常に登録されたことを確認します。                                  (Vオプションかつ
                                                                         gオプション)
(16) Symfoware/RDBを起動します。(動作確認)                     ―――― rdbstartコマンド
(17) Symfoware/RDBを停止します。(動作確認)                     ―――― rdbstopコマンド
(18) rdbrcvdicコマンドのLOADモードでRDBディレクトリ            ―――― rdbrcvdicコマンド
    ファイルのみをリカバリします。(インダウト閉塞の強制                 (Lオプションかつ
    解除およびRDBディクショナリとの整合をとります。)                     rオプションかつ
    RDBディレクトリファイルのリカバリは、インクリメンタル                ddlオプション)
    リカバリによるリカバリを推奨します。(縮退運転の時間が
    短縮できます。)
(19) rdbrcvdicコマンドのLOADモードですべてのユーザログ         ―――― rdbrcvdicコマンド
    グループ用のRDBディレクトリファイルをリカバリします。               (Lオプションかつ
    ユーザロググループ用のRDBディレクトリファイルの                      ddlオプションかつ
    リカバリは、インクリメンタルリカバリによるリカバリを                 gオプション)
    推奨します。(縮退運転の時間が短縮できます。)
(20) Symfoware/RDBを起動します。                               ―――― rdbstartコマンド
(21) ホットスタンバイの使用を宣言します。                      ―――― rdbhsutyコマンド
                                                                        (monオプション)
(22) Symfoware/RDBを停止します。                               ―――― rdbstopコマンド
(23) スケーラブル型のクラスタアプリケーションに登録
    されているすべての運用系および待機系
    クラスタアプリケーションの保守停止を解除します。
    クラスタアプリケーションの保守停止解除の手順は、
    “9.6 クラスタアプリケーションの保守停止の解除”を
    参照してください。

以下の処理はDSIが偏在するSatelliteシステムで実施してください。

(24) RDBディレクトリファイルをインクリメンタルリカバリ          ―――― rdbrcvコマンド
    によりリカバリした場合は、DSIのアクセス情報を復元します。            (Dオプション)
(25) データベースの整合を以下の方法で確認します。
    インダウトログファイルの入出力障害が発生した時に
    更新中の処理が以下の状態になる可能性があります。更新の
    状況を確認し、必要に応じてデータベースの再更新を行ってください。
        - インダウトログの入出力障害が発生したノードで、その直前に
          実行中の更新処理をコミットしていた場合、全ノードでロール
          バックになっている可能性がある。
        - インダウトログの入出力障害が発生したノード以外で、その直前
          にロールバックした更新が、インダウトログの入出力障害が発生
          したノード内のデータベースでコミットになっている可能性がある。