Email: service@parnassusdata.com 7 x 24 online support!

    You are here

    • You are here:
    • Home > Blogs > PDSERVICE's blog > Oracle アーカイブログの保存先をASMにしているデータベースをshutdownする際の注意点

Oracle アーカイブログの保存先をASMにしているデータベースをshutdownする際の注意点

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> というプロセスの有無を確認します。