LogMinerパッケージの1つであるDBMS_LOGMNR_D
パッケージには、次の2つのサブプログラムが含まれています。
BUILD
プロシージャは、REDOログ・ファイルまたはフラット・ファイルのいずれかにLogMinerデータ・ディクショナリを抽出します。この情報は、将来的にLogMinerツールを使用してREDOログ・ファイルを分析する場合に備えて保存されます。
SET_TABLESPACE
プロシージャは、すべてのLogMiner表を代替の表領域に再作成します。
LogMinerデータ・ディクショナリは、メモリー・データ構造およびデータベース表から構成され、これらは、オブジェクトおよびそれらのバージョンに関する情報を格納して取り出すために使用されます。これは、LogMinerのドキュメント全体でLogMinerディクショナリと呼ばれています。
関連項目: LogMinerの詳細は、『Oracle Databaseユーティリティ』を参照してください。 |
この章では、次の項目について説明します。
概要
セキュリティ・モデル
この項では、DBMS_LOGMNR_D
パッケージの使用に関連する項目について説明します。
LogMinerには、REDOデータを戻す際にオブジェクトIDをオブジェクト名に変換するためのディクショナリが必要です。LogMinerには、ディクショナリの取得に関して次の3つのオプションがあります。
オンライン・カタログの使用
REDOログ・ファイルへのLogMinerディクショナリの抽出
フラット・ファイルへのLogMinerディクショナリの抽出
REDOログ・ファイルまたはフラット・ファイルのいずれかにLogMinerディクショナリを抽出するには、BUILD
プロシージャを使用します。オンライン・カタログをディクショナリのソースとして指定する場合は、LogMinerの起動時にDBMS_LOGMNR.START_LOGMNR
パッケージを使用してそのように指定します。
デフォルトのSYSAUX
表領域以外の表領域をLogMiner表で使用する場合は、SET_TABLESPACE
プロシージャを使用します。
マルチテナント・コンテナ・データベース(CDB)では、一部のサブプログラムはルートからコールする必要があります。それ以外にも、違いがある可能性があります。詳細は、個々のサブプログラムの説明を参照してください。
表91-1 DBMS_LOGMNR_Dパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
|
LogMinerディクショナリをフラット・ファイルまたは1つ以上のREDOログ・ファイルに抽出します。 |
|
すべてのLogMiner表を代替の表領域に再作成します。 |
このプロシージャは、REDOログ・ファイルまたはフラット・ファイルのいずれかにLogMinerデータ・ディクショナリを抽出します。
CDBでは、BUILD
プロシージャはルート・データベースからコールする必要があります。CDB全体のLogMinerデータ・ディクショナリは、REDOログ・ファイルまたはフラット・ファイルのいずれかに抽出されます。
このプロシージャの実行中は、CDBにプラガブル・データベース(PDB)を追加したり、CDBからプラガブル・データベース(PDB)を削除することはできません。
構文
DBMS_LOGMNR_D.BUILD ( dictionary_filename IN VARCHAR2, dictionary_location IN VARCHAR2, options IN NUMBER);
例外
表91-3 BUILDプロシージャの例外
例外 | 説明 |
---|---|
|
ディクショナリ作成オプションが欠落しているか、または正しくありません。 このエラーは次の状況で戻されます。
|
|
初期化パラメータ |
|
指定されたディクショナリ・ファイルがオープンできません。 このエラーは次の状況で戻されます。
|
使用上の注意
フラット・ファイルにLogMinerディクショナリを抽出するには、ファイル名および場所を指定する必要があります。
REDOログ・ファイルにLogMinerディクショナリを抽出するには、STORE_IN_REDO_LOGS
オプションのみを指定します。LogMinerディクショナリのサイズによっては、ディクショナリが複数のREDOログ・ファイルに格納される場合があります。
使用するパラメータの組合せにより次のような動作が発生します。
いずれのパラメータも指定しない場合、エラーが戻されます。
オプションを指定せずにファイル名および場所を指定した場合、LogMinerディクショナリはその名前でフラット・ファイルに抽出されます。
ファイル名および場所を指定し、STORE_IN_FLAT_FILE
オプションも指定した場合、LogMinerディクショナリは指定した名前でフラット・ファイルに抽出されます。
ファイル名および場所を指定せず、STORE_IN_REDO_LOGS
オプションを指定した場合、LogMinerディクショナリはREDOログ・ファイルに抽出されます。
ファイル名および場所を指定してSTORE_IN_REDO_LOGS
オプションを指定した場合は、エラーが戻されます。
ファイル名および場所を指定せず、STORE_IN_FLAT_FILE
オプションを指定した場合は、エラーが戻されます。
原則的には、LogMinerディクショナリ・ファイルは、すべてのデータベース・ディクショナリに対する変更を行った後、分析するREDOログ・ファイルを作成する前に作成されます。Oracle9i リリース1(9.0.1)では、LogMinerを使用してLogMinerディクショナリをREDOログ・ファイルまたはフラット・ファイルにダンプし、DDL操作を実行し、DDLの変更をLogMinerディクショナリに動的に適用できます。
進行中のDDL操作がある場合は、DBMS_LOGMNR_D.BUILD
プロシージャを実行しないでください。
DBMS_LOGMNR_D.BUILD
プロシージャを実行する場合は、データベースがオープンされている必要があります。
フラット・ファイルにLogMinerディクショナリを抽出する場合、プロシージャが現行のデータベースのディクショナリ表に問い合せ、表のコンテンツを含むテキストベースのファイルを作成します。LogMinerディクショナリをフラット・ファイルに抽出するには、次の条件を満たしている必要があります。
PL/SQLプロシージャで使用するためのディレクトリを指定する必要があります。この処理を行うには、初期化パラメータ・ファイルに初期化パラメータUTL_FILE_DIR
を設定します。次に例を示します。
UTL_FILE_DIR = /oracle/dictionary
パラメータを設定した後、このパラメータを有効にするには、データベースをシャットダウンして再起動する必要があります。このパラメータを設定しない場合、プロシージャは失敗します。
作成されたディクショナリを実行している間、DDL操作が発生しないようにする必要があります。こうしないと、LogMinerディクショナリ・ファイルにデータベース・ディクショナリの一貫したスナップショットを格納することができません。
DBMS_LOGMNR.START_LOGMNR
プロシージャに対するDDL_DICT_TRACKING
オプションは、Oracle9i以前に作成されたフラット・ファイル・ディクショナリではサポートされないので注意してください。Oracle9i
以前のフラット・ファイルに抽出されたLogMinerデータベースでDDL_DICT_TRACKINGオプションの使用を試みると、ORA-01330エラー(必須のビルド表のロードで問題が発生しました。)が戻されます。
LogMinerディクショナリ・ファイルをREDOログ・ファイルに抽出するには、次の条件を満たしている必要があります。
Oracle9i
以降を実行しているシステム上でDBMS_LOGMNR_D.BUILDプロシージャが実行されている。
使用可能なREDOログ・ファイルを生成するために、アーカイブログ・モードが有効化されている。
初期化パラメータ・ファイルのCOMPATIBLE
パラメータに9.2.0以上が設定されている。
LogMinerが接続しているデータベースがOracle9i 以上である。
さらに、LogMinerが提供するすべての機能を利用できるようにするには、サプリメンタル・ロギング(最低レベル以上)を有効にする必要があります。LogMinerでのサプリメンタル・ロギングの使用方法については、『Oracle Databaseユーティリティ』を参照してください。
例
例1: フラット・ファイルへのLogMinerディクショナリの抽出
次の例では、指定したパス(/oracle/database
)にあるdictionary.ora
という名前のフラット・ファイルにLogMinerディクショナリ・ファイルを抽出します。
SQL> EXECUTE dbms_logmnr_d.build('dictionary.ora', - '/oracle/database/', - options => dbms_logmnr_d.store_in_flat_file);
例2: REDOログ・ファイルへのLogMinerディクショナリの抽出
次の例では、REDOログ・ファイルにLogMiner ディクショナリを抽出します。
SQL> EXECUTE dbms_logmnr_d.build( - options => dbms_logmnr_d.store_in_redo_logs);
デフォルトでは、すべてのLogMiner表は、SYSAUX
表領域を使用するように作成されます。ただし、LogMiner表で代替の表領域を使用できるようにすることをお薦めします。このプロシージャを使用して、LogMiner表を代替の表領域に移動します。
CDBでは、ローカル・コンテナ内のLogMinerメタデータのみが、要求された表領域に移動します。