ロールバック不可が発生した場合のリカバリ方法は、以下の運用形態により異なります。
アーカイブログ運用を行っている場合
アーカイブログ運用を行っていない場合
■アーカイブログ運用を行っている場合
システムメッセージ“qdg03400u”または“qdg03401u”が出力されます。この場合は、rdbrcvコマンドのCオプションによりユーザログテーブルのDSIのリカバリを行ってください。
ロールバック不可からのリカバリ操作の手順とリカバリ操作例を以下に示します。
◆リカバリ操作の手順
(1) 目的業務(ユーザログ出力業務)を実行します。 (2) アーカイブログファイルの強制切替えを行います。 ― rdblog -S -a (3) 対象DSIの高信頼性ログ機能のエントリの切替えを ― rdbcycswh -i 行います。 (4) FULL状態のエントリをすべて出力ファイルに ― rdbcycexp -me -i エクスポートします。 (5) アーカイブログを破棄します。 ― rdblog -R -a (6) 目的業務(ユーザログ出力業務)は継続実行されています。 (7) アーカイブログファイルの強制切替えを行います。 ― rdblog -S -a (8) 対象DSIの高信頼性ログ機能のエントリの切替えを ― rdbcycswh -i 行います。 (9) FULL状態のエントリをすべて出力ファイルに ― rdbcycexp -me -i エクスポートします。 (10) アーカイブログを破棄します。 ― rdblog -R -a 目的業務を実行します ★ DSIのアクセス禁止検出 (JYP5011E,qdg03400u,qdg03401u,qdg03405u,qdg03620u) (11) リカバリ対象DSIを把握します。 ― rdbinf -i -aまたはrdbinf -l -a (注) (12) 対象DSIをリカバリします。 ― rdbrcv -C (13) 対象DSIのユーザログをエクスポートします。 ― rdbcycexp -me -i (14) 目的業務(ユーザログ出力業務)は継続実行されています。 |
注) rdbinf -l -aは、業務データベースとしてSymfoware Server V8.0を利用している場合には、指定できません。
■リカバリ操作例
目的業務(ユーザログ出力業務)を実行します。 $ rdblog -S -a $ rdbcycswh -i ユーザログDB.ユーザログDSI $ rdbcycexp -me -i ユーザログDB.ユーザログDSI -o /home/rdb2/ulog20040602_01.dat $ rdblog -R -a 目的業務(ユーザログ出力業務)は継続実行されています。 $ rdblog -S -a $ rdbcycswh -i ユーザログDB.ユーザログDSI $ rdbcycexp -me -i ユーザログDB.ユーザログDSI -o /home/rdb2/ulog20040602_02.dat $ rdblog -R -a 目的業務(ユーザログ出力業務)は継続実行されています。 rdb: ERROR: qdg03400u:ロールバックが不可能なため データベースをアクセス禁止状態にしました DB名='ユーザログDB' DSI名='ユーザログDSI' (システム名=rdbsys1) $ rdbinf -l inh -a $ rdbrcv -C -i ユーザログDB.ユーザログDSI -w /tmp $ rdbcycexp -me -i ユーザログDB.ユーザログDSI -o /home/rdb2/ulog20040602_03.dat 目的業務(ユーザログ出力業務)は継続実行されています。 |
備考. システムメッセージ“qdg03400u”または“qdg03401u”からリカバリ対象のDSIが限定できる場合は、rdbinfコマンドの“i”オプションおよび“a”オプションでもリカバリ対象のDSIを確認することができます。
リカバリ対象のDSIが限定できない場合は、rdbinfコマンドの“l”オプションおよび“a”オプションで閉塞されたDSI一覧を表示し、リカバリ対象のDSIを確認してください。
なお、業務データベースにSymfoware Server V8.0を利用している場合には、rdbinfコマンドの“l”オプションおよび“a”オプションは指定できません。“i”オプションおよび“a”オプションにより、リカバリ対象のDSIを確認してください。
目的業務(ユーザログ出力業務)を実行します。 > rdblog -S -a > rdbcycswh -i ユーザログDB.ユーザログDSI > rdbcycexp -me -i ユーザログDB.ユーザログDSI -o D:\USERS\RDB2\ULOG20060602_01.DAT > rdblog -R -a 目的業務(ユーザログ出力業務)は継続実行されています。 > rdblog -S -a > rdbcycswh -i ユーザログDB.ユーザログDSI > rdbcycexp -me -i ユーザログDB.ユーザログDSI -o D:\USERS\RDB2\ULOG20060602_02.DAT > rdblog -R -a 目的業務(ユーザログ出力業務)は継続実行されています。 rdb: ERROR: qdg03400u:ロールバックが不可能なため データベースをアクセス禁止状態にしました DB名='ユーザログDB' DSI名='ユーザログDSI' (システム名=rdbsys1) > rdbinf -l inh -a > rdbrcv -C -i ユーザログDB.ユーザログDSI -w C:\TEMP > rdbcycexp -me -i ユーザログDB.ユーザログDSI -o D:\USERS\RDB2\ULOG20060602_03.DAT 目的業務(ユーザログ出力業務)は継続実行されています。 |
備考.システムメッセージ“qdg03400u”または“qdg03401u”からリカバリ対象のDSIが限定できる場合は、rdbinfコマンドのiオプションおよびaオプションでもアクセス禁止の原因を確認することができます。
リカバリ対象のDSIが限定できない場合は、rdbinfコマンドのlオプションおよびaオプションで閉塞されたDSI一覧を表示し、アクセス禁止の原因を確認してください。
■アーカイブログ運用を行っていない場合
システムメッセージ“qdg03400u”または“qdg03401u”が出力されます。この場合は、rdbfmtコマンドによるDSIの初期化を行ってください。