Symfoware Server Mirroring Controller 運用ガイド |
目次
索引
![]() ![]() |
第5章 異常時の運用 | > 5.4 正系ノードでのSymfoware/RDBの異常 | > 5.4.3 RDBシステムファイルの異常 |
正系ノードのテンポラリログファイルに入出力障害が発生した場合のDBミラーリングシステムのリカバリ方法について説明します。
テンポラリログファイルのリカバリ方法によっては、DBミラーリングシステムのリカバリが必要です。以下に、テンポラリログファイルのリカバリ方法とDBミラーリングシステムのリカバリとの関係を示します。
テンポラリログファイルのリカバリ方法 |
アーカイブログ運用の有無 |
正系ノードのDBミラーリングシステムのリカバリ |
副系ノードのDBミラーリングシステムのリカバリ |
|
---|---|---|---|---|
ノードの切替えを行わない場合 |
Symfoware/RDB運用中 |
− |
不要 |
ロールバック不可閉塞のデータベースについてのリカバリが必要 |
ノードの切替えを行う場合 |
Symfoware/RDBを正常停止してからdxswitchコマンドでノードを切替えた場合 |
あり |
- RLP の再登録(注) |
|
なし |
DCUの再構築 |
|||
Symfoware/RDBを強制停止して切替えた場合(Symfoware/RDBの強制停止によるノード切替えまたはdxswitchコマンドの実行) |
あり |
|||
なし |
注)ログ管理ファイルをリカバリ対象のボリュームに配置している場合
DBミラーリングシステムの異常監視対象としてテンポラリログファイルを設定している場合には、Symfoware/RDBを強制停止して切り替えます。そのため、Symfoware/RDBの運用中にリカバリする場合や、Symfoware/RDBを正常停止して切り替えるようなリカバリ方法を計画する場合には、異常監視対象として設定しないでください。
DBミラーリングシステムの異常監視対象の設定については、“セットアップガイド ”の“システムの監視対象と方法”を参照してください。
DCUの再構築については“DCUの再構築”を参照してください。
副系ノードへノードの切替えを行わずに、Symfoware/RDBの運用中にテンポラリログファイルをリカバリする方法について示します。
本手順では、正系ノードのデータベースの資源がロールバック不可閉塞となる場合があります。その場合には、異常となった資源に対応する副系ノードのデータベースを全件複写によりリカバリする必要があります。
利用者業務の運用中にテンポラリログファイルのアクセスエラーが発生した場合、システムメッセージを出力して 、テンポラリログファイルを閉塞します。
dxsvstopコマンドを実行してDBミラーリングサービスをリカバリ停止します。
$ dxsvstop -r |
Symfoware/RDBの運用中に行うテンポラリログファイルのリカバリを行います。
dxsvstartコマンドを実行してDBミラーリングサービスを開始します。
$ dxsvstart -c |
dxsvstopコマンドを実行してDBミラーリングサービスを通常停止します。
$ dxsvstop |
全件複写により副系ノードのデータベースをリカバリします。Symfoware Serverのrdbunlコマンドでロールバック不可閉塞になった資源に関してデータを退避します。
dxsvstartコマンドを実行してDBミラーリングサービスを開始します。
$ dxsvstart -c |
正系ノードでのdxsvstopコマンド実行による副系ノードのDBミラーリングサービス停止を、以下のメッセージにより確認します。
SYMFOWARE_SYMDX: INFO: 12136: DB mirroring service stopped in normal state by the demand from the other node . |
全件複写により副系ノードのデータベースをリカバリします。rdbsloaderコマンドでロールバック不可閉塞になった資源に関してデータをロードします。
dxsvstartコマンドを実行してDBミラーリングサービスを開始します。
$ dxsvstart -r |
DBミラーリングサービスを停止する前に、利用者業務を停止します。
利用者業務を再開します。
ロールバック不可閉塞になった資源については、Symfoware Serverのrdbinfコマンドにより調査可能です。
Symfoware Serverのrdbunlコマンドおよびrdbinfコマンドについては、“Symfoware Server コマンドリファレンス”を参照してください。
ロールバック不可閉塞が発生した場合は“Symfoware/RDBを正常停止してからノードの切替えを行った場合のリカバリ”を参考してください。
テンポラリログファイルの閉塞状態から、Symfoware/RDBを正常停止し、ノードの切替えを行ってからリカバリする方法について示します。
本手順では、正系ノードのデータベースがロールバック不可閉塞となる場合があります。その状態で、副系ノードへノードの切替えを行った場合、異常が発生したノードにおいて、以下のリカバリが必要となります。
アーカイブログ運用を行っていない場合
アーカイブログ運用を行っていない場合には、切替え先のノードで利用者業務を継続することができますが、異常が発生したノードは利用不可となります。そのため、DBミラーリングサービスを緊急停止してから、DCUの再構築が必要となります。
“Symfoware/RDBを強制停止してからノードの切替えを行った場合のリカバリ”の手順において、Symfoware/RDBの強制停止を通常停止と置き換えて、DCUの再構築を行ってください。
ロールバック不可閉塞となった資源のリカバリ
ロールバック不可閉塞が発生した場合は、該当資源に対して、ノードの切替え先のデータベースからの全件複写が必要です。なお、全件複写を行うためには、利用者業務の停止を伴うため、業務停止可能な時間帯まで待機することが必要です。そのため、全件複写するまでの間に、新たな正系ノードでロールバック不可閉塞となった資源に対するRERUNログを新たな副系ノードで破棄する必要があります。
ログ管理ファイルの再作成に伴うRLP再登録
テンポラリログファイルのリカバリ手順で、ログ管理ファイルを再作成する場合には、ノード組込みを行う直前にDCUを構成する2つのRLPの再登録が必要です。
Symfoware/RDBの停止を検知するとDBミラーリングシステムがノード切替えを行うため、直前にDBミラーリングサービスをリカバリ停止する必要があります。
RERUNログの破棄方法は、対象資源をrdbinhコマンドで閉塞させてから、“ログ破棄を利用したリカバリ”を参照して実施してください。
ノード組込みについては“ノード組込み”を参照してください。
利用者業務の運用中にテンポラリログファイルのアクセスエラーが発生した場合、メッセージを出力して、テンポラリログファイルを閉塞します。
Symfoware Serverのrdbcninfコマンドを実行し、トランザクションの状態(Tran)の“TINH”が無くなるまで待ちます。
dxsvstopコマンドを実行してDBミラーリングサービスをリカバリ停止します。
$ dxsvstop -r |
Symfoware/RDBへのSQLやRDBコマンドの実行を停止してから、Symfoware Serverのrdbstopコマンドを実行し、Symfoware/RDBを正常停止します。
Symfoware/RDBの資源のリカバリを行います。
障害ボリュームの交換
ログ管理ファイルの再作成
アーカイブログファイルの再登録
テンポラリログファイルの再作成
ログ管理ファイルを再作成しなかった場合 → 手順8へ
注)Symfoware/RDBの資源のディスク配置によりリカバリ対象の資源が異なります。
rdbbcrlpコマンドを実行して、BC ログ管理ファイルに DCUを構成する2つのRLP を再登録します 。
$ rdbbcrlp -A -p 複写元RLP名 -S 自側送信用RLMのローデバイス名 $ rdbbcrlp -A -p 複写先RLP名 -S 自側送信用RLMのローデバイス名 |
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 |
dxrebuildコマンドによりノード組込みを行います。
$ dxrebuild |
データベースサーバを起動します。
監視プロセスを起動します。
BC管理DBをメモリ常駐します。
dxsvstartコマンドを実行してDBミラーリングサービスを開始します。
$ dxsvstart -r |
正系ノードでのdxsvstopコマンド実行による副系ノードのDBミラーリングサービス停止を、以下のメッセージにより確認します。
SYMFOWARE_SYMDX: INFO: 12136: DB mirroring service stopped in normal state by the demand from the other node . |
全件複写により副系ノードのデータベースをリカバリします。rdbsloaderコマンドでロールバック不可閉塞になった資源に関してデータをロードします。
dxsvstartコマンドを実行してDBミラーリングサービスを開始します。
$ dxsvstart -r |
dxswitchコマンドを実行してノードの切替えを行います。
$ dxswitch -n |
dxsvstopコマンドを実行してDBミラーリングサービスを通常停止します。
$ dxsvstop |
全件複写により副系ノードのデータベースをリカバリします。rdbunlコマンドでロールバック不可閉塞になった資源に関してデータを退避します。
dxsvstartコマンドを実行してDBミラーリングサービスを開始します。
$ dxsvstart -c |
DBミラーリングサービスを停止する前に、利用者業務を停止します。
利用者業務を再開します。
ノードの切替えが発生してから、正系ノードで利用者業務を継続する場合は、ログ破棄したデータベースのリカバリを利用して利用者業務を継続します。利用者業務を停止した後、ロールバック不可閉塞となった資源を全件複写してリカバリします。
テンポラリログファイルのリカバリについては“Symfoware Server RDB運用ガイド”を参照してください。
Symfoware Serverのrdbcninfコマンドおよびrdbstopコマンドについては“Symfoware Serverコマンドリファレンス”を参照してください。
ログ破棄したデータベースのリカバリについては“ログ破棄を利用したリカバリ”を参照してください。
全件複写によるリカバリについては“全件複写によるデータベースのリカバリ”を参照してください。
監視プロセスの起動については“監視プロセスの起動”を参照してください。
BC管理DBのメモリ常駐については“BC管理DBのメモリ常駐”を参照してください。
テンポラリログファイルの閉塞状態から、Symfoware/RDBを強制停止して、ノード切替えを行った場合(正系ノードでのrdbstopコマンドの-eオプションの実行またはdxswitchコマンドを実行)のリカバリ方法について説明します。
Symfoware/RDBを強制停止した場合には、切替え先のノードで利用者業務を継続することができますが、異常が発生したノードは利用不可となります。そのため、DBミラーリングサービスを緊急停止してから、利用者業務が停止可能な時間帯にDCUの再構築を行う必要があります。
利用者業務の運用中にテンポラリログファイルのアクセスエラーが発生した場合、メッセージを出力して、テンポラリログファイルを閉塞します。
Symfoware Serverのrdbstopコマンドを実行し、Symfoware/RDBを強制停止します。
$ rdbstop -e |
モニタデーモンの停止を行います。
$ dxstop |
主系および従系RLPのIDを確認します。rdbbcdcuコマンドを実行して、出力されるRLPidを確認します。ここで確認したRLPのIDは、以降で行うRLP管理オブジェクトの削除手順で使用します。
$ rdbbcdcu -V -b |
実行例
Symfoware/RDBを強制停止した場合に行うテンポラリログファイルのリカバリを行います。
障害ボリュームの交換
ログ管理ファイルの再作成
アーカイブログファイルの再登録
テンポラリログファイルの再作成
ログ管理ファイルの再作成を行わずに、テンポラリログファイルを削除する場合には、手順7のRLPの削除を事前に行ってください。
ログ管理ファイルを再作成した場合 →手順6へ
ログ管理ファイルを再作成しない場合 →手順7へ
注)Symfoware/RDBの資源のディスク配置によりリカバリ対象の資源が異なります。
rdbbclogコマンドを実行して、BCログ管理ファイルを再作成します 。
手順5でのログ管理ファイルの再作成によって、RLPの管理情報が失われるため、BCログ管理ファイルを再作成することで、BCログ管理ファイルからもRLPの管理情報を削除します。→手順8へ
$ rdbbclog -M -r |
DCUを構成するすべてのRLPを削除します。
$ rdbbcrlp -E -p 主系RLPのRLP名 $ rdbbcrlp -E -p 従系RLPのRLP名 |
Symfoware Serverのrdbstartコマンドを実行し、Symfoware/RDBを起動します。
$ rdbstart |
DCUを構成するRLPに対応するRLP管理オブジェクトを削除します。
ただし、手順5でのログ管理ファイルの再作成や手順7でのRLPの削除によって、RLPの管理情報が失われるため、以下の手順により、主系および従系RLPに対応するRLP管理オブジェクトのDSI名およびデータベーススペース名を特定して削除します。
BC管理スキーマのデータベース名を特定
BC構成パラメタファイル内のBCMNDBパラメタに指定したBC管理スキーマのデータベース名を特定します。
BC管理オブジェクトのDSI名を特定
手順4により取得したRLPのIDにより、RLP管理オブジェクトのDSI名を特定します。DSI名の特定方法については、“付録B.1 BC管理DBの構成”を参照してください。
RLP管理オブジェクトのDSIを削除
1)および2)で特定したデータベース名およびDSI名より、Symfoware Serverのrdbddlexコマンドを利用して、主系および従系RLPのRLP管理オブジェクトのDSIを削除します。
BC管理DBのデータベーススペース名を特定
手順3により取得したRLPのIDにより、RLP管理オブジェクトのデータベーススペース名を特定します。
RLP管理オブジェクトのデータベーススペースを削除
1)および4)で特定したデータベース名およびデータベーススペース名より、Symfoware Serverのrdbddlexコマンドを利用して、主系および従系RLPのRLP管理オブジェクトのデータベーススペースを削除します。
Symfoware Serverのrdbstopコマンドを実行し、Symfoware/RDBを停止します。
$ rdbstop |
モニタデーモンの削除を行います。DBミラーリング動作環境ファイルのDX_MANAGE_PATHパラメタに指定したディレクトリのファイルをすべて削除します。
セットアップスクリプトdxdelrlpenv.shを実行して、従系RLPの複写先RLPのRERUNログ抽出ファイルおよびRERUNログ引継ぎファイルを削除します。
$ dxdelrlpenv.sh -d 従系RLPのRLP定義ファイル -p 従系RLPのRLP名 |
RECテンプレート作成シェルスクリプトdxreccancel.shを利用して、主系RLPに対して等価性コピーを終了します。
$ dxreccancel.sh -d 主系RLPのRLP定義ファイル -x |
DCUを作成します。
dxsvstopコマンドによりDBミラーリングサービスを緊急停止します。
$ dxsvstop -term |
DCUの再構築を行います。
DCUの再構築を行う前に、利用者業務を停止します。
異常が発生したノードにおいてのDCUの再構築手順は“DCUの再構築”で説明した手順と一部異なります。
RLP管理オブジェクトの削除では、セットアップスクリプトdxdelmnobj.shを利用することはできません。
Symfoware/RDBの強制停止および起動については“Symfoware Server コマンドリファレンス”を参照してください。
Symfoware/RDBの停止および起動については“Symfoware Server セットアップガイド”を参照してください。
データベーススペース名の特定方法およびBC管理DBの構成については“BC管理DBの構成”を参照してください。
DCUの再構築については“DCUの再構築”を参照してください。
DCUの作成については“DCUの再構築”を参照し、“RLP定義ファイルの修正”から実行してください。
目次
索引
![]() ![]() |