Symfoware Server Mirroring Controller 運用ガイド
目次 索引 前ページ次ページ

第5章 異常時の運用> 5.4 正系ノードでのSymfoware/RDBの異常> 5.4.3 RDBシステムファイルの異常

5.4.3.8 テンポラリログファイルのリカバリ

正系ノードのテンポラリログファイルに入出力障害が発生した場合のDBミラーリングシステムのリカバリ方法について説明します。

■テンポラリログファイルとDBミラーリングシステムのリカバリの関

テンポラリログファイルのリカバリ方法によっては、DBミラーリングシステムのリカバリが必要です。以下に、テンポラリログファイルのリカバリ方法とDBミラーリングシステムのリカバリとの関係を示します。

[表:テンポラリログファイルのリカバリ方法とDBミラーリングシステムへのリカバリの関係]

テンポラリログファイルのリカバリ方法

正系ノードのDBミラーリングシステムのリカバリ

副系ノードのDBミラーリングシステムのリカバリ

ノードの切替えを行わない場合

Symfoware/RDB運用中

不要

ロールバック不可閉塞のデータベースについてのリカバリが必要

ノードの切替えを行う場合

Symfoware/RDBを正常停止してからdxswitchコマンドでノードを切替えた場合

- RLP の再登録(注)
- ロールバック不可閉塞のデータベースの資源についてのリカバリ

 

Symfoware/RDBを強制停止して切替えた場合(Symfoware/RDBの強制停止によるノード切替えまたはdxswitchコマンドの実行)

DCUの再構築
(全件複写によるデータベースのリカバリを含む)


注)ログ管理ファイルをリカバリ対象のボリュームに配置している場合

DBミラーリングシステムの異常監視対象としてテンポラリログファイルを設定している場合には、Symfoware/RDBを強制停止して切り替えます。そのため、Symfoware/RDBの運用中にリカバリする場合や、Symfoware/RDBを正常停止して切り替えるようなリカバリ方法を計画する場合には、異常監視対象として設定しないでください。

■ノードの切替えを行わない場

副系ノードへノードの切替えを行わずに、Symfoware/RDBの運用中にテンポラリログファイルをリカバリする方法について示します。

本手順では、正系ノードのデータベースの資源がロールバック不可閉塞となる場合があります。その場合には、異常となった資源に対応する副系ノードのデータベースを全件複写によりリカバリする必要があります。

◆操作の手順

◆データベースサーバ1の操作

  1. 利用者業務の運用中にテンポラリログファイルのアクセスエラーが発生した場合、システムメッセージを出力して 、テンポラリログファイルを閉塞します。

  2. dxsvstopコマンドを実行してDBミラーリングサービスをリカバリ停止します。

    $ dxsvstop -r
  3. Symfoware/RDBの運用中に行うテンポラリログファイルのリカバリを行います。

  4. dxsvstartコマンドを実行してDBミラーリングサービスを開始します。

    $ dxsvstart -c
  5. dxsvstopコマンドを実行してDBミラーリングサービスを通常停止します。

    $ dxsvstop
  6. 全件複写により副系ノードのデータベースをリカバリします。Symfoware Serverのrdbunlコマンドでロールバック不可閉塞になった資源に関してデータを退避します。

  7. dxsvstartコマンドを実行してDBミラーリングサービスを開始します。

    $ dxsvstart -c

◆データベースサーバ2の操作

  1. 正系ノードでのdxsvstopコマンド実行による副系ノードのDBミラーリングサービス停止を、以下のメッセージにより確認します。

    SYMFOWARE_SYMDX: INFO: 12136: DB mirroring service stopped in normal state by the demand from the other node .
  2. 全件複写により副系ノードのデータベースをリカバリします。rdbsloaderコマンドでロールバック不可閉塞になった資源に関してデータをロードします。

  3. dxsvstartコマンドを実行してDBミラーリングサービスを開始します。

    $ dxsvstart -r

◆アプリケーションサーバの操作

  1. DBミラーリングサービスを停止する前に、利用者業務を停止します。

  2. 利用者業務を再開します。

ロールバック不可閉塞になった資源については、Symfoware Serverのrdbinfコマンドにより調査可能です。

Symfoware/RDBを正常停止してからノードの切替えを行った場合のリカバ

テンポラリログファイルの閉塞状態から、Symfoware/RDBを正常停止し、ノードの切替えを行ってからリカバリする方法について示します。

本手順では、正系ノードのデータベースがロールバック不可閉塞となる場合があります。その状態で、副系ノードへノードの切替えを行った場合、異常が発生したノードにおいて、以下のリカバリが必要となります。

Symfoware/RDBの停止を検知するとDBミラーリングシステムがノード切替えを行うため、直前にDBミラーリングサービスをリカバリ停止する必要があります。

◆操作の手順

◆データベースサーバ1の操作

  1. 利用者業務の運用中にテンポラリログファイルのアクセスエラーが発生した場合、メッセージを出力して、テンポラリログファイルを閉塞します。

  2. Symfoware Serverのrdbcninfコマンドを実行し、トランザクションの状態(Tran)の“TINH”が無くなるまで待ちます。

  3. dxsvstopコマンドを実行してDBミラーリングサービスをリカバリ停止します。

     $ dxsvstop -r

  4. Symfoware/RDBへのSQLやRDBコマンドの実行を停止してから、Symfoware Serverのrdbstopコマンドを実行し、Symfoware/RDBを正常停止します。

  5. Symfoware/RDBの資源のリカバリを行います。

    注)Symfoware/RDBの資源のディスク配置によりリカバリ対象の資源が異なります。
  6. rdbbcrlpコマンドを実行して、BC ログ管理ファイルに DCUを構成する2つのRLP を再登録します 。

    $ rdbbcrlp -A -p 複写元RLP名 -S 自側送信用RLMのローデバイス名
    $ rdbbcrlp -A -p 複写先RLP名 -S 自側送信用RLMのローデバイス名

  7. rdbbcdcuコマンドを実行してRLP が正常に登録されたことを確認します。

    $ rdbbcdcu -V -b

    表示例

    $ rdbbcdcu -V -b
    
    LogGroup             : system
    RLCbuffNum           : -
    RLCbuffSize          : -
    RLCnum               : 3
    RLCsize              : 10240K
    RLPid  RLPname  Kind       OnMode   OnStat            RLPstat        InhCause   ConStat        DisConCause
        1  rlp001   origin     capture  online            normal         -          disconnection  own-stop
        2  rlp002   duplicate  init     standby           normal         -          disconnection  own-stop
  8. dxrebuildコマンドによりノード組込みを行います。

    $ dxrebuild
  9. データベースサーバを起動します。

  10. 監視プロセスを起動します。

  11. BC管理DBをメモリ常駐します。

  12. dxsvstartコマンドを実行してDBミラーリングサービスを開始します。

    $ dxsvstart -r
  13. 正系ノードでのdxsvstopコマンド実行による副系ノードのDBミラーリングサービス停止を、以下のメッセージにより確認します。

    SYMFOWARE_SYMDX: INFO: 12136: DB mirroring service stopped in normal state by the demand from the other node .
  14. 全件複写により副系ノードのデータベースをリカバリします。rdbsloaderコマンドでロールバック不可閉塞になった資源に関してデータをロードします。

  15. dxsvstartコマンドを実行してDBミラーリングサービスを開始します。

    $ dxsvstart -r

◆データベースサーバ2の操作

  1. dxswitchコマンドを実行してノードの切替えを行います。

    $ dxswitch -n
  2. dxsvstopコマンドを実行してDBミラーリングサービスを通常停止します。

    $ dxsvstop
  3. 全件複写により副系ノードのデータベースをリカバリします。rdbunlコマンドでロールバック不可閉塞になった資源に関してデータを退避します。

  4. dxsvstartコマンドを実行してDBミラーリングサービスを開始します。

    $ dxsvstart -c

◆アプリケーションサーバの操作

  1. DBミラーリングサービスを停止する前に、利用者業務を停止します。

  2. 利用者業務を再開します。

ノードの切替えが発生してから、正系ノードで利用者業務を継続する場合は、ログ破棄したデータベースのリカバリを利用して利用者業務を継続します。利用者業務を停止した後、ロールバック不可閉塞となった資源を全件複写してリカバリします。

■Symfoware/RDBを強制停止してからノードの切替えを行った場合のリカバ

テンポラリログファイルの閉塞状態から、Symfoware/RDBを強制停止して、ノード切替えを行った場合(正系ノードでのrdbstopコマンドの-eオプションの実行またはdxswitchコマンドを実行)のリカバリ方法について説明します。

Symfoware/RDBを強制停止した場合には、切替え先のノードで利用者業務を継続することができますが、異常が発生したノードは利用不可となります。そのため、DBミラーリングサービスを緊急停止してから、利用者業務が停止可能な時間帯にDCUの再構築を行う必要があります。

◆操作の手順

◆データベースサーバ1の操作

  1. 利用者業務の運用中にテンポラリログファイルのアクセスエラーが発生した場合、メッセージを出力して、テンポラリログファイルを閉塞します。

  2. Symfoware Serverのrdbstopコマンドを実行し、Symfoware/RDBを強制停止します。

    $ rdbstop -e

  3. モニタデーモンの停止を行います。

    $ dxstop
  4. 主系および従系RLPのIDを確認します。rdbbcdcuコマンドを実行して、出力されるRLPidを確認します。ここで確認したRLPのIDは、以降で行うRLP管理オブジェクトの削除手順で使用します。

    $ rdbbcdcu -V -b

    実行例

  5. Symfoware/RDBを強制停止した場合に行うテンポラリログファイルのリカバリを行います。

  6. rdbbclogコマンドを実行して、BCログ管理ファイルを再作成します 。
    手順5でのログ管理ファイルの再作成によって、RLPの管理情報が失われるため、BCログ管理ファイルを再作成することで、BCログ管理ファイルからもRLPの管理情報を削除します。→手順8へ

    $ rdbbclog -M -r
  7. DCUを構成するすべてのRLPを削除します。

    $ rdbbcrlp -E -p 主系RLPのRLP名
    $ rdbbcrlp -E -p 従系RLPのRLP名
  8. Symfoware Serverのrdbstartコマンドを実行し、Symfoware/RDBを起動します。

    $ rdbstart
  9. DCUを構成するRLPに対応するRLP管理オブジェクトを削除します。
    ただし、手順5でのログ管理ファイルの再作成や手順7でのRLPの削除によって、RLPの管理情報が失われるため、以下の手順により、主系および従系RLPに対応するRLP管理オブジェクトのDSI名およびデータベーススペース名を特定して削除します。

    1. BC管理スキーマのデータベース名を特定
      BC構成パラメタファイル内のBCMNDBパラメタに指定したBC管理スキーマのデータベース名を特定します。

    2. BC管理オブジェクトのDSI名を特定
      手順4により取得したRLPのIDにより、RLP管理オブジェクトのDSI名を特定します。DSI名の特定方法については、“付録B.1 BC管理DBの構成”を参照してください。

    3. RLP管理オブジェクトのDSIを削除
      1)および2)で特定したデータベース名およびDSI名より、Symfoware Serverのrdbddlexコマンドを利用して、主系および従系RLPのRLP管理オブジェクトのDSIを削除します。

    4. BC管理DBのデータベーススペース名を特定
      手順3により取得したRLPのIDにより、RLP管理オブジェクトのデータベーススペース名を特定します。

    5. RLP管理オブジェクトのデータベーススペースを削除
      1)および4)で特定したデータベース名およびデータベーススペース名より、Symfoware Serverのrdbddlexコマンドを利用して、主系および従系RLPのRLP管理オブジェクトのデータベーススペースを削除します。

  10. Symfoware Serverのrdbstopコマンドを実行し、Symfoware/RDBを停止します。

    $ rdbstop
  11. モニタ環境の削除を行います。DBミラーリング動作環境ファイルのDX_MANAGE_PATHパラメタに指定したディレクトリのファイルをすべて削除します。

  12. セットアップスクリプトdxdelrlpenv.shを実行して、従系RLPの複写先RLPのRERUNログ抽出ファイルおよびRERUNログ引継ぎファイルを削除します。

    $ dxdelrlpenv.sh -d 従系RLPのRLP定義ファイル -p 従系RLPのRLP名
  13. RECテンプレート作成シェルスクリプトdxreccancel.shを利用して、主系RLPに対して等価性コピーを終了します。

    $ dxreccancel.sh -d 主系RLPのRLP定義ファイル -x
  14. DCUを作成します。

◆データベースサーバ2の操作

  1. dxsvstopコマンドによりDBミラーリングサービスを緊急停止します。

    $ dxsvstop -term
  2. DCUの再構築を行います。

◆アプリケーションサーバの操作

  1. DCUの再構築を行う前に、利用者業務を停止します。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2007