7 x 24 在线支持!
Oracle アーカイブログの保存先をASMにしているデータベースをshutdownする際の注意点
ORACLEデータベース によくあるエラ の解決策
プロのOracle Databaseの復旧サービスを提供
携帯番号: +86 13764045638 メール:[email protected]
[概要]
アーカイブログの保存先を 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> というプロセスの有無を確認します。

沪公网安备 31010802001377号