Oracle運用の基本「ログ」を理解しよう:Oracleトラブル対策の基礎知識(1)(1/3 ページ)
本連載では、Oracle Database運用の鍵となるトラブル対処法について紹介していきます。第1回、第2回では情報収集の要となるログについて見ていきます。ログの出力情報は10gと11gとでは大きく異なる点がありますので、それぞれについても確認しておきましょう。
ご存じの方も多いかと思いますが、Oracle Databaseの代表的なログには、以下の3つが挙げられます。
- アラート・ログ……データベース個別のイベントとダンプファイル情報など
- トレースファイル……エラー発生時の情報およびメモリダンプ
- リスナー・ログ……クライアントからの接続要求状況
今回は、Oracle Database 10g R2までのアラート・ログとトレースファイルに焦点を当て、出力される情報とその内容について解説していきます。
第2回では、現行の最新バージョンであるOracle Database 11gで大幅に変更となったログの管理構造である「Automatic Diagnostic Repository(ADR)」について解説していきます。
アラート・ログには稼働中のすべての状態が記録されている
アラート・ログ とはデータベースのログです。データベースが稼働する間、その動作状態が逐次記録されていきます。
一般的にデータベースの運用に重大な障害が発生した場合、ほとんどの診断作業はアラート・ログの確認から始まります。ここでエラーなどが確認できる場合には、付随するトレースファイルについても併せて確認する必要があります。
ここで、アラート・ログについて、改めて確認しておきましょう。
アラート・ログ は、インスタンスごとに、
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
というファイル名で作成され、初期化パラメータbackground_dump_destで指定されたディレクトリに出力される追記型のファイルです。
以下が、アラート・ログに出力される主な内容です。
-Oracleのバージョン
-OS とそのバージョン情報(注)
-インスタンスの起動・停止、そのモード
-起動時にデフォルト以外の値が設定された場合のパラメータ
-バックグラウンドプロセスのPID
-表領域の追加など(物理構成の変更)
-ログスイッチの発生
-エラー番号とそのエラー名、およびその詳細が記録されているトレースファイルの出力情報
注)プラットフォームおよびバージョンによりOS側の情報については出力されない場合があります。
実際のアラート・ログを見てみましょう。リスト1はアラート・ログのサンプルです。
Thu Jun 12 14:47:07 2008 Starting ORACLE instance (normal) LICENSE_MAX_SESSION = 0 LICENSE_SESSIONS_WARNING = 0 Picked latch-free SCN scheme 2 Using LOG_ARCHIVE_DEST_10 parameter default value as USE_DB_RECOVERY_FILE_DEST Autotune of undo retention is turned on. IMODE=BR ILAT =18 LICENSE_MAX_USERS = 0 SYS auditing is disabled ksdpec: called for event 13740 prior to event group initialization Starting up ORACLE RDBMS Version: 10.2.0.3.0. System parameters with non-default values: _trace_files_public = TRUE processes = 150 __shared_pool_size = 146800640 __large_pool_size = 4194304 __java_pool_size = 4194304 __streams_pool_size = 0 nls_language = JAPANESE nls_territory = JAPAN sga_target = 285212672 control_files = /home/ora10203/app/oracle/oradata/ora10203/control01.ctl, /home/ora10203/app/oracle/oradata/ora10203/control02.ctl, /home/ora10203/app/oracle/oradata/ora10203/control03.ctl db_block_size = 8192 __db_cache_size = 121634816 compatible = 10.2.0.3.0 db_file_multiblock_read_count= 16 db_recovery_file_dest = /home/ora10203/app/oracle/flash_recovery_area db_recovery_file_dest_size= 2147483648 undo_management = AUTO undo_tablespace = UNDOTBS1 remote_login_passwordfile= EXCLUSIVE db_domain = job_queue_processes = 10 background_dump_dest = /home/ora10203/app/oracle/admin/ora10203/bdump user_dump_dest = /home/ora10203/app/oracle/admin/ora10203/udump core_dump_dest = /home/ora10203/app/oracle/admin/ora10203/cdump audit_file_dest = /home/ora10203/app/oracle/admin/ora10203/adump db_name = ora10203 open_cursors = 300 pga_aggregate_target = 94371840 _optimizer_connect_by_cost_based= FALSE PMON started with pid=2, OS id=24138 PSP0 started with pid=3, OS id=24140 MMAN started with pid=4, OS id=24142 DBW0 started with pid=5, OS id=24144 LGWR started with pid=6, OS id=24146 CKPT started with pid=7, OS id=24148 SMON started with pid=8, OS id=24150 RECO started with pid=9, OS id=24152 CJQ0 started with pid=10, OS id=24154 MMON started with pid=11, OS id=24156 MMNL started with pid=12, OS id=24158 Thu Jun 12 14:47:08 2008 ALTER DATABASE MOUNT Thu Jun 12 14:47:12 2008 Setting recovery target incarnation to 1 Thu Jun 12 14:47:12 2008 Successful mount of redo thread 1, with mount id 1439778604 Thu Jun 12 14:47:12 2008 Database mounted in Exclusive Mode Completed: ALTER DATABASE MOUNT Thu Jun 12 14:47:12 2008 ALTER DATABASE OPEN Thu Jun 12 14:47:12 2008 LGWR: STARTING ARCH PROCESSES ARC0 started with pid=14, OS id=24162 Thu Jun 12 14:47:12 2008 ARC0: Archival started ARC1: Archival started LGWR: STARTING ARCH PROCESSES COMPLETE ARC1 started with pid=15, OS id=24164 Thu Jun 12 14:47:12 2008 Thread 1 opened at log sequence 201 Current log# 3 seq# 201 mem# 0: /home/ora10203/app/oracle/oradata/ora10203/redo03.log Successful open of redo thread 1 Thu Jun 12 14:47:12 2008 MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set Thu Jun 12 14:47:12 2008 ARC0: Becoming the 'no FAL' ARCH ARC0: Becoming the 'no SRL' ARCH Thu Jun 12 14:47:12 2008 SMON: enabling cache recovery Thu Jun 12 14:47:12 2008 ARC1: Becoming the heartbeat ARCH Thu Jun 12 14:47:12 2008 Successfully onlined Undo Tablespace 1. Thu Jun 12 14:47:12 2008 SMON: enabling tx recovery Thu Jun 12 14:47:12 2008 Database Characterset is JA16EUCTILDE replication_dependency_tracking turned off (no async multimaster replication found) Starting background process QMNC QMNC started with pid=16, OS id=24166 Thu Jun 12 14:47:13 2008 Completed: ALTER DATABASE OPEN
・初期化パラメータが消えてもアラート・ログがあれば復旧できる
リスト1を見ると分かるように、アラート・ログについては、起動時の初期化パラメータの情報が出力されるので、もし何らかのトラブルにより初期化パラメータを消失した場合でも、アラート・ログを参照して復旧することが可能です。
・すべてのエラーが出力されるわけではない
アラート・ログには、クライアント側に返されるすべてのエラーが出力されるわけではない点に注意してください。
アラート・ログに出力されるエラーは、データベースの運用に影響するエラー(例えば共有プールの不足に起因して発生する「ORA-4031」や領域不足のため発生する「ORA-1653」など)ですが、ユーザーのオペレーションミスや構文ミスで発生する一意制約違反の「ORA-1」、表が存在しない「ORA-942」などのエラーについては出力されません。
このため、クライアントからのSQL文のオペレーションミスにより発生し得るエラーについては、アラート・ログを確認したとしても、詳細な状況を把握することはできません。
これらのエラーが発生した場合には、アプリケーション側のログから実行されたSQL文を確認するなどして原因を調査する必要があります。
・ASM・RAC環境では出力内容が一部異なる
シングルインスタンスのアラート・ログの情報については、上記に記述した内容が出力されますが、ASM・RAC環境では出力される情報が一部異なります。次ページでは、ASM・RAC環境でのアラート・ログについて見ていきます。
Copyright © ITmedia, Inc. All Rights Reserved.