Email: service@parnassusdata.com 7 x 24 online support!
Oracle アーカイブログの保存先をASMにしているデータベースをshutdownする際の注意点
ORACLEデータベース によくあるエラ の解決策
プロのOracle Databaseの復旧サービスを提供
携帯番号: +86 13764045638 メール:service@parnassusdata.com
[概要] アーカイブログの保存先を ASMに設定している環境で、データベースインスタ ンスを shutdown を実行すると、アーカイバプロセスが ORA-443を受けて shutdown がハングする場合があります。 本文書では、どのような状況で発生するのかを説明します。 [対象リリース] Oracle Database 11g Release 1 (11.1.0) Oracle Database 10g Release 2 (10.2.0) Oracle Database 10g Release 1 (10.1.0) Oracle Database 11g Release 2 (11.2.0) では内部動作が異なるため発生 しません。 [対象プラットフォーム] 全てのプラットフォーム [詳細] アーカイブログの保存先を ASMインスタンスのディスクグループに設定してい る環境で、後述の条件を満たす場合、アーカイバプロセスが ORA-443を受けて shutdown がハングする場合があります。 このときデータベースインスタンスのアラートログとアーカイバプロセスの トレースは以下のようになります。 アラートログ ------------------------------------------------------------------ Tue Aug 11 03:11:56 2009 Starting ORACLE instance (normal) ... System parameters with non-default values: ... log_archive_dest_1 = LOCATION=+DG1/orcl/arch ... Thu Aug 13 01:39:46 2009 NOTE: ASMB process exiting due to lack of ASM file activity ... Thu Aug 13 03:25:07 2009 Shutting down instance (immediate) ... Thu Aug 13 03:30:21 2009 Thread 1 advanced to log sequence 1111 Current log# 1 seq# 1111 mem# 0: \\.\REDO01_1 Current log# 1 seq# 1111 mem# 1: \\.\REDO01_1M Thu Aug 13 03:30:21 2009 Starting background process ASMB Thu Aug 13 03:30:21 2009 Errors in file C:\oracle\product\bdump\orcl_arc1_19460.trc: ORA-00443: background process "ASMB" did not start ARCH: Archival stopped, error occurred. Will continue retrying Thu Aug 13 03:30:21 2009 Errors in file C:\oracle\product\bdump\orcl_arc1_11111.trc: ORA-16038: log 7 sequence# 1111 cannot be archived ORA-00254: error in archive control string '' ORA-00312: online log 7 thread 1: '\\.\REDO07_1' ORA-00312: online log 7 thread 1: '\\.\REDO07_1M' ORA-15001: diskgroup "DG1" does not exist or is not mounted ORA-00450: background process 'ASMB' did not start ORA-00443: background process "ASMB" did not start ------------------------------------------------------------------ orcl_arc1_11111.trc ------------------------------------------------------------------ ... *** SERVICE NAME:(SYS$BACKGROUND) 2009-08-13 03:30:21.121 *** SESSION ID:(1192.1) 2009-08-13 03:30:21.121 *** 2009-08-13 03:30:21.121 KSTDUMP: In-memory trace dump TIME(usecs):SEQ# ORAPID SID EVENT OP DATA ======================================================================== ... 144AAD09:0C06EFD1 21 1192 10254 74 KSBABS: (ARC1) : (requested action) : acnum=[47] comment=[Archiver wakeup] 144AAD09:0C06EFE0 21 1192 10254 34 KSBS1P: process ARC1 trying to start background ASMB 144AAD09:0C06EFE1 21 1192 10254 37 KSBS1P: process ARC1 obtained PR enqueue to start background ASMB 144AAD09:0C06EFE4 21 1192 10254 75 KSBS1P: creation error posted OER(1089) 144AAD09:0C06EFE7 21 1192 10254 51 KSBS1P: out of loop: process did not start KSTDUMP: End of in-memory trace dump *** 2009-08-13 03:30:21.152 ORA-00443: background process "ASMB" did not start Error with archive destination 'LOG_ARCHIVE_DEST_1' *** 2009-08-13 03:30:21.262 20256 kcrr.c ORA-16038: log 7 sequence# 1111 cannot be archived ORA-00254: error in archive control string '' ORA-00312: online log 7 thread 1: '\\.\REDO07_1' ORA-00312: online log 7 thread 1: '\\.\REDO07_1M' ORA-15001: diskgroup "DG1" does not exist or is not mounted ORA-00450: background process 'ASMB' did not start ORA-00443: background process "ASMB" did not start *** 2009-08-13 03:32:14.620 *** 2009-08-13 03:32:14.620 20256 kcrr.c ------------------------------------------------------------------ 本現象は次の条件をすべて満たす場合に発生します。 - データベースがアーカイブログモードで、アーカイブログの保存先を ASM のディスクグループに設定している - shutdown を実行する前、データベースインスタンスの ASMB プロセスが 停止している(補足事項を確認してください) - shutdown abort 以外の shutdown を実行している (shutdown normal, shutdown transactional, shutdown immediate の いずれか) - shutdown を実行後、ログスイッチが発生している 本現象は Oracle Database の動作上の制限です。 上記の条件を満たす場合、アーカイブログを ASMに書き出すためにアーカイバ プロセスは ASMBプロセスを起動させようとしますが、既に shutdown を実行中 であるため ASMB プロセスは起動中に ORA-1089 を受けて起動に失敗します。 これに伴いアーカイバプロセスで ORA-443 が発生します。そしてアーカイブ ログを作成する作業が未完了となります。 以下の方法で現象を回避します。 - 制御ファイルを ASMインスタンスのディスクグループ上で管理する 以下の方法で現象発生の可能性を低くします。 - shutdown を実行する直前にログスイッチを発生させる [補足事項] データベースインスタンスの ASMB プロセスは、ASM インスタンスで管理する ファイルへのアクティビティが無い状態が続くと終了します。このとき、以下 のメッセージがデータベースインスタンスのアラートログに記録されます。 ------------------------------------------------------------------ NOTE: ASMB process exiting due to lack of ASM file activity ------------------------------------------------------------------ アクティビティが生じた場合は、ASMB プロセスは起動します。このとき、以下 のメッセージが DB インスタンスのアラートログに記録されます。 ------------------------------------------------------------------ Starting background process ASMB ASMB started with pid=数字, OS id=数字 ------------------------------------------------------------------ これらの記録を参考にして、ASMB プロセスが起動中かどうかを判断すること ができます。 また、ps コマンドで ASMB プロセスの有無を調査する場合は、プロセス名が ora_asmb_<SID> というプロセスの有無を確認します。