データベースの運用中に、アーカイブログファイルに入出力障害が発生した場合のリカバリ方法について説明します。
システムメッセージ“qdg03815u”、“qdg12250u”、“qdg12275w”または“qdg12483u”が出力されます。さらに、スケーラブルログ運用を行っている場合は、システムメッセージ“qdg13239i”が出力されます。このメッセージより、リカバリすべきアーカイブログファイルのロググループ名を特定してください。rdblogコマンド実行時には、“-g ロググループ名”を指定し、ユーザロググループに属する資源にのみ処理を行ってください。
この場合のリカバリ操作の手順とリカバリ操作例を以下に示します。
リカバリ操作の手順
(1) 業務中にアーカイブログファイルのアクセスエラー が発生した場合、システムメッセージを出力して、 アーカイブログファイルを閉塞します。同時に、 空きアーカイブログファイルがある場合は、自動 的に切り替わります。 スケーラブルログ運用を行っている場合は、シス テムメッセージにより、リカバリすべきアーカイブログ ファイルのロググループを特定します。 (2) Symfoware/RDBを停止します。 ―――――― rdbstopコマンド (3) 障害ディスクを取り換えます。 ―――――― CE作業 (4) ディレクトリ構成をリカバリします。 ―――――― mkdirコマンド (5) アーカイブログファイルの状態を表示します。 ―――――― rdblogコマンド (Vオプションかつ aオプション [かつgオプション]) (6) すべてのアーカイブログファイルを削除します。 ―――――― rdblogコマンド (Dオプションかつ aオプション [かつgオプション]) (7) アーカイブログファイルを作成します。 ―――――― rdblogコマンド (Gオプションかつ aオプション [かつgオプション]) (Uオプションかつ aオプション [かつgオプション]) (8) すべてのアーカイブログファイルが正常に作成された―――――― rdblogコマンド ことを確認します。 (Vオプションかつ aオプション [かつgオプション]) (9) Symfoware/RDBを起動します。 ―――――― rdbstartコマンド スケーラブルログ運用を行っていない場合または、 システムロググループの場合 → (10)へ ユーザロググループの場合 → (11)へ (10) RDBディクショナリの退避データを取得します。 ―――――― rdbdmpdicコマンド (11) すべての資源の退避データを取得します。 ―――――― rdbdmpコマンド スケーラブルログ運用の場合はリカバリ対象のログ グループに属する資源のみ退避データが必要です。
リカバリ操作例
ここでは、以下の場合を想定しています。
同一のディスクに別のアーカイブログファイルを配置している
スケーラブルログ運用を行っていない
ユーザロググループの場合は、rdblogコマンドにgオプション(ロググループ名の指定)を指定して実行してください。
qdg12275w:アーカイブログファイルD:\SFWD\RDB\USR\LOG\ARCLOG3(通番:125)への書き込み時に writeシステムコールでエラーが発生しました errno=5 (システム名=rdbsys1) > rdbstop CE作業 … 障害ディスクの交換 > mkdir D:\SFWD\RDB\USR\LOG > rdblog -V -a serial# status total used avail capacity backup-data path 4 full 10M 10M 0 100% ----- D:\SFWD\RDB\USR\LOG\ARCLOG1 5 switch 10M 5419520 26037760 17% ----- D:\SFWD\RDB\USR\LOG\ARCLOG2 6 inh 10M 974336 30482944 3% ----- D:\SFWD\RDB\USR\LOG\ARCLOG3 > rdblog -D -a D:\SFWD\RDB\USR\LOG\ARCLOG1 > rdblog -D -a D:\SFWD\RDB\USR\LOG\ARCLOG2 > rdblog -D -a D:\SFWD\RDB\USR\LOG\ARCLOG3 > rdblog -G -a D:\SFWD\RDB\USR\LOG\ARCLOG1 10M > rdblog -U -a D:\SFWD\RDB\USR\LOG\ARCLOG2 > rdblog -U -a D:\SFWD\RDB\USR\LOG\ARCLOG3 > rdblog -V -a serial# status total used avail capacity backup-data path 7 empty 10M 0 10M 0% ----- D:\SFWD\RDB\USR\LOG\ARCLOG1 0 empty 10M 0 10M 0% ----- D:\SFWD\RDB\USR\LOG\ARCLOG2 0 empty 10M 0 10M 0% ----- D:\SFWD\RDB\USR\LOG\ARCLOG3 > rdbstart > rdbdmpdic -f DICBACK@E:\BACKUP\DIC -e -y > rdbdmp -i 在庫管理DB.在庫表DSI -f STOCK@E:\BACKUP\DB -e -y
注意
アーカイブログファイルの再作成後は、DSIおよびRDBディクショナリの退避データを採取しなおしてください。アーカイブログファイルが再作成された場合、アーカイブログファイルが再作成される以前に採取された退避データを使用したメディアリカバリができなくなるためです。
アーカイブログファイルが異常状態になり、かつDSIとRDBディクショナリの両方、または、いずれかが異常状態となった場合は、アーカイブログファイルを再作成し、DSIおよびRDBディクショナリを復元後にDSIおよびRDBディクショナリの退避データを採取しなおしてください。