Question & Answer
Question
SET WRITE SUSPEND 実行中にインスタンスが異常終了しました。 その後インスタンスを再始動しましたが、データベースへの接続が SQL1552N で失敗します。 データベースを復旧させる方法を教えてください。
Cause
SET WRITE SUSPEND により表スペースを WRITE SUSPEND 状態にすると、ディスクへの書き出しが必要な処理は、SET WRITE RESUME により WRITE SUSPEND が解除されるまで待ちの状態となります。
SET WRITE SUSPEND 実行中にインスタンスが異常終了した場合は、表スペースは WRITE SUSPEND 状態のままになっています。その後インスタンスを開始しデータベースを活動化するためには、不整合状態のデータベースの復旧のためにクラッシュ・リカバリーの実行が必要です。
クラッシュ・リカバリーは、トランザクション・ログをもとにデータベースへの更新処理を行いデータベースを正常な状態に戻す処理ですが、表スペースが WRITE SUSPEND 状態の場合は更新が行えず、以下のようにクラッシュ・リカバリーが SQL1552N で失敗します。
SET WRITE SUSPEND 実行中にインスタンスが異常終了した場合は、表スペースは WRITE SUSPEND 状態のままになっています。その後インスタンスを開始しデータベースを活動化するためには、不整合状態のデータベースの復旧のためにクラッシュ・リカバリーの実行が必要です。
クラッシュ・リカバリーは、トランザクション・ログをもとにデータベースへの更新処理を行いデータベースを正常な状態に戻す処理ですが、表スペースが WRITE SUSPEND 状態の場合は更新が行えず、以下のようにクラッシュ・リカバリーが SQL1552N で失敗します。
$ db2 connect to SAMPLE
SQL1552N データベースが現在 WRITE SUSPEND 状態であるため、コマンドが失敗しました。
このとき db2diag.log には以下のようなログが記録されます。
2011-11-01-11.32.19.166035+540 I3935643A435 LEVEL: Warning
PID : 7024846 TID : 2829 PROC : db2sysc 0
INSTANCE: db2inst1 NODE : 000 DB : SAMPLE
APPHDL : 0-8 APPID: *LOCAL.db2inst1.111101023219
AUTHID : DB2INST1
EDUID : 2829 EDUNAME: db2agent (SAMPLE) 0
FUNCTION: DB2 UDB, base sys utilities, sqledint, probe:30
MESSAGE : Crash Recovery is needed.
2011-11-01-11.32.19.284993+540 E3936079A590 LEVEL: Info
PID : 7024846 TID : 2829 PROC : db2sysc 0
INSTANCE: db2inst1 NODE : 000 DB : SAMPLE
APPHDL : 0-8 APPID: *LOCAL.db2inst1.111101023219
AUTHID : DB2INST1
EDUID : 2829 EDUNAME: db2agent (SAMPLE) 0
FUNCTION: DB2 UDB, buffer pool services, sqlbStartPools, probe:22
MESSAGE : ADM6023I The table space "SYSCATSPACE" (ID "0") is in state
0x"10000". The table space cannot be accessed. Refer to the
documentation for SQLCODE -290.
2011-11-01-11.32.19.285881+540 I3936670A496 LEVEL: Error
PID : 7024846 TID : 2829 PROC : db2sysc 0
INSTANCE: db2inst1 NODE : 000 DB : SAMPLE
APPHDL : 0-8 APPID: *LOCAL.db2inst1.111101023219
AUTHID : DB2INST1
EDUID : 2829 EDUNAME: db2agent (SAMPLE) 0
FUNCTION: DB2 UDB, buffer pool services, sqlbStartPools, probe:22
MESSAGE : ZRC=0x800200F3=-2147352333=SQLB_FAIL2_SUSPEND_WRITE_ON
"Restart failed"
2011-11-01-11.32.19.286090+540 E3937167A660 LEVEL: Severe
PID : 7024846 TID : 2829 PROC : db2sysc 0
INSTANCE: db2inst1 NODE : 000 DB : SAMPLE
APPHDL : 0-8 APPID: *LOCAL.db2inst1.111101023219
AUTHID : DB2INST1
EDUID : 2829 EDUNAME: db2agent (SAMPLE) 0
FUNCTION: DB2 UDB, buffer pool services, sqlbStartPools, probe:22
MESSAGE : ADM6024C The database cannot be restarted because table spaces
cannot be brought ONLINE as a result of an outstanding WRITE SUSPEND.
To restart the database specify WRITE RESUME on the RESTART DATABASE
command.
Answer
WRITE SUSPEND 状態のデータベースでクラッシュ・リカバリーを正常に完了するためには、WRITE RESUME オプションを指定して RESTART DATABASE コマンドを実行してください。
関連情報
$ db2 restart database SAMPLE write resume
DB20000I RESTART DATABASE コマンドが正常に完了しました。
$ db2 connect to SAMPLE
データベース接続情報
データベース・サーバー = DB2/AIX64 11.5.7
SQL 許可 ID = DB2INST1
ローカル・データベース別名 = SAMPLE
関連情報
[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PmfAAE","label":"Recovery-\u003ESplit Mirror"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]
Was this topic helpful?
Document Information
Modified date:
26 August 2023
UID
swg21572461