24.12 一般的なLogMinerセッションのステップ
LogMinerを使用してデータを抽出およびマイニングできる一般的な方法について学習します。
- LogMinerセッションの実行方法の理解
オンプレミスでのLogMinerセッションの実行方法とOracle Autonomous Cloud Platform Servicesは似ていますが、異なるユーザーが必要です。 - 一般的なLogMinerセッション・タスク1: サプリメンタル・ロギングの有効化
REDOログ・ファイルとともにLogMinerを使用できるようにするには、サプリメンタル・ロギングを有効にする必要があります。 - 一般的なLogMinerセッション・タスク2: LogMinerディクショナリの抽出
LogMinerを使用するには、LogMinerにデータベース・ディクショナリを提供するオプションを選択する必要があります。 - 一般的なLogMinerセッション・タスク3: 分析用のREDOログ・ファイルの指定
LogMinerを起動する前にDBMS_LOGMNR_ADD_LOGFILE
を使用して、分析するREDOログ・ファイルを指定する必要があります。 - LogMinerの起動
LogMinerの起動方法、およびREDOログ・ファイル、フィルタ基準、その他のセッション特性の分析に使用できるオプションを確認してください。 - V$LOGMNR_CONTENTSの問合せ
LogMinerを起動した後、Oracle DatabaseのV$LOGMNR_CONTENTS
ビューを問い合せることができます。 - 一般的なLogMinerセッション・タスク6: LogMinerセッションの終了
LogMinerセッションの終了。
親トピック: REDOログ・ファイル分析のためのLogMinerの使用
24.12.1 LogMinerセッションの実行方法の理解
オンプレミスとOracle Autonomous Cloud Platform Services LogMinerセッションは似ていますが、異なるユーザーが必要です。
従来のLogMinerセッションでは、CDB$ROOT
でLogMinerを実行する場合、SYS
が所有するPL/SQLパッケージを使用してLogMinerを実行します。LogMinerを使用するには、LogMinerで使用するユーザー・アカウントに関する要件があります。
オンプレミスOracle DatabaseでLogMinerを実行する場合、CDB$ROOT
取得抽出を作成して複数のPDBからデータを同時に取得するか、Oracle GoldenGateを使用して複数の個別のPDBログをマイニングし、それぞれが単一のPDBからデータを取得できます。ただし、CDB$ROOT
にアクセスできないOracle Autonomous Database Cloud Platform Servicesの場合は、PDBごとの取得方法を使用する必要があります。このモードでは、事前定義済の権限セットを持つローカル・ユーザーを、ログを確認するソースPDBにプロビジョニングします。すべてのLogMiner処理は、このPDBのみに制限されます。
オンプレミスPDBでは、リソースで許可されている数のセッションを開始できます。ただし、クラウド構成では、CDB$ROOT
で多くの同時セッションを開始できますが、LogMiner PL/SQLパッケージを使用して各PDBに対して開始できるセッションは1つのみです。
CDB$ROOT
でLogMinerを実行するには、PL/SQLパッケージDBMS_LOGMNR.ADD_LOGFILE
を使用し、ログ・ファイルを明示的に追加します。また、オンライン・カタログを使用せずにLogMinerディクショナリを抽出することを選択する場合は、DBMS_LOGMNR_D
パッケージも使用できます。
個々のPDBでLogMinerを実行する場合、プロシージャは若干異なります。DBMS_LOGMNR.ADD_LOGFILE
を使用するかわりに、PDBのログ・ファイルを確認する期間を指定します。問い合せるログのSCN値をstartScn
で指定し、endScn
またはstartTime
を選択した場合はendTime
で指定します。次に、DBMS_LOGMNR.START_LOGMNR
を使用してLogMinerを起動します。DBMS_LOGMNR.START_LOGMNR
は、分析するREDOログを自動的に追加します。
DBMS_LOGMNR
パッケージには、LogMinerの初期化および実行に使用するプロシージャ(REDOログ・ファイルの名前、フィルタ基準、セッション特性を指定するためのインタフェースなど)が含まれます。DBMS_LOGMNR_D
パッケージは、現在のデータベースのデータベース・ディクショナリ表を問い合せてLogMinerディクショナリ・ファイルを作成します。
個々のPDBに対してLogMinerを実行するための要件
LogMinerを実行して個々のPDBを問い合せるには、プロシージャ・コールDBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE
を使用して、必要な権限をローカル・ユーザーにプロビジョニングする必要があります。また、GGADMIN
権限を持つユーザーは、PDBごとの取得抽出を実行できます。
また、個々のPDBでは、マイニングするアーカイブ・ログを指定しません。かわりに、マイニングするPDBに接続し、dbms_logmnr_d.STORE_IN_REDO_LOGS
を実行します。たとえば:
SQL> execute dbms_logmnr_d.build(option=>dbms_logmnr_d.STORE_IN_REDO_LOGS);
その後、PDBに接続してSCNを識別し、dbms_logmnr.start_logmnr
を実行して、表示するPDBログ履歴の開始点システム変更番号(SCN)およびエンド・ポイントSCN (選択した場合)をログ・ファイルに問い合せられます。マイニングは、V$LOGMNR_CONTENTSビューに対する従来のLogMiner問合せと同様に、その時点で続行されます。ただし、使用できるのは、接続しているPDBに対して生成されたREDOのみです
ノート:
ExtractおよびLogMinerプロセスの実行中にPDBを停止すると、これらのプロセスは他のアクティブ・セッションと同様に終了します。PDBを再オープンしたら、Extractマイニングの再起動を通常どおり続行する必要があります。PDBを切断する場合、特別なアクションは必要ありません。ただし、PDBを切断した後に接続すると、PDBに以前存在していたすべてのLogMinerおよびCaptureセッションが削除されます。
SYSとして接続していない場合に従来のLogMinerセッションを実行するための要件
オンプレミス・ログ・マイニングでは、LogMiner PL/SQLパッケージはSYS
スキーマによって所有されます。したがって、ユーザーSYS
として接続していない場合は、次の条件が必要になります。
-
コールに
SYS
を含める必要があります。たとえば:EXECUTE SYS.DBMS_LOGMNR.END_LOGMNR;
-
EXECUTE_CATALOG_ROLE
ロールを付与されている必要があります。
24.12.2 一般的なLogMinerセッション・タスク1: 追加ロギングの有効化
REDOログ・ファイルとともにLogMinerを使用できるようにするには、サプリメンタル・ロギングを有効にする必要があります。
REDOベースのアプリケーションでは、追加の列をREDOログ・ファイルに記録する必要がある場合があります。これらの追加の列を記録するプロセスは、サプリメンタル・ロギングと呼ばれますデフォルトでは、Oracle Databaseはサプリメンタル・ロギングが有効になっていません。少なくともLogMinerを使用するには、最小限のサプリメンタル・ロギングを有効にする必要があります。
例24-2 最小サプリメンタル・ロギングの有効化
サプリメンタル・ロギングを有効にするには、次の文を入力します。
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
関連トピック
親トピック: 一般的なLogMinerセッションのステップ
24.12.3 一般的なLogMinerセッション・タスク2: LogMinerディクショナリの抽出
LogMinerを使用するには、LogMinerにデータベース・ディクショナリを提供するオプションを選択する必要があります。
次のいずれかのオプションを選択します。
-
LogMiner起動時に
DICT_FROM_ONLINE_CATALOG
オプションでオンライン・カタログの使用を指定。 -
REDOログ・ファイルにデータベース・ディクショナリ情報を抽出。
-
フラット・ファイルにデータベース・ディクショナリ情報を抽出。
24.12.4 一般的なLogMinerセッション・タスク3: 分析用のREDOログ・ファイルの指定
LogMinerを起動する前にDBMS_LOGMNR_ADD_LOGFILE
を使用して、分析するREDOログ・ファイルを指定する必要があります。
オンプレミスのCDB$ROOT
のログを問い合せるには、LogMinerを起動する前に、分析するREDOログ・ファイルを指定する必要があります。ログ・ファイルを指定するには、次のステップで示すとおり、DBMS_LOGMNR.ADD_LOGFILE
プロシージャを実行します。REDOログ・ファイルは、任意の順序で追加および削除できます。
ノート:
個々のPDBのログを問い合せるには、若干異なる手順を使用します。PDBに接続した後、DBA_LOGMNR_DICTIONARY_BUILDLOG
を問い合せてSTART_SCN
値を特定し、DBMS_LOGMNR.START_LOGMNR
でLogMinerを起動して、確認するログのSCN値を指定します。DBMS_LOGMNR.START_LOGMNR
は、分析するREDOログを自動的に追加します。例は、「LogMinerを使用した個々のPDBの問合せ」を参照してください。
関連トピック
親トピック: 一般的なLogMinerセッションのステップ
24.12.5 LogMinerの起動
LogMinerの起動方法、およびREDOログ・ファイル、フィルタ基準、その他のセッション特性の分析に使用できるオプションを確認してください。
24.12.6 V$LOGMNR_CONTENTSの問合せ
LogMinerを起動した後、Oracle DatabaseのV$LOGMNR_CONTENTS
ビューを問い合せることができます。
たとえば:
SELECT (XIDUSN || '.' || XIDSLT || '.' || XIDSQN) AS XID,
USERNAME, SQL_REDO FROM V$LOGMNR_CONTENTS WHERE USERNAME != 'SYS'
AND SEG_OWNER IS NULL OR SEG_OWNER NOT IN ('SYS', 'SYSTEM');
XID USERNAME SQL_REDO
1.15.3045 RON set transaction read write;
1.15.3045 RON insert into "HR"."JOBS"("JOB_ID","JOB_TITLE",
"MIN_SALARY","MAX_SALARY") values ('9782',
'HR_ENTRY',NULL,NULL);
1.18.3046 JANE set transaction read write;
1.18.3046 JANE insert into "OE"."CUSTOMERS"("CUSTOMER_ID",
"CUST_FIRST_NAME","CUST_LAST_NAME",
"CUST_ADDRESS","PHONE_NUMBERS","NLS_LANGUAGE",
"NLS_TERRITORY","CREDIT_LIMIT","CUST_EMAIL",
"ACCOUNT_MGR_ID") values ('9839','Edgar',
'Cummings',NULL,NULL,NULL,NULL,
NULL,NULL,NULL);
1.9.3041 RAJIV set transaction read write;
1.9.3041 RAJIV insert into "OE"."CUSTOMERS"("CUSTOMER_ID",
"CUST_FIRST_NAME","CUST_LAST_NAME","CUST_ADDRESS",
"PHONE_NUMBERS","NLS_LANGUAGE","NLS_TERRITORY",
"CREDIT_LIMIT","CUST_EMAIL","ACCOUNT_MGR_ID")
values ('9499','Rodney','Emerson',NULL,NULL,NULL,NULL,
NULL,NULL,NULL);
1.15.3045 RON commit;
1.8.3054 RON set transaction read write;
1.8.3054 RON insert into "HR"."JOBS"("JOB_ID","JOB_TITLE",
"MIN_SALARY","MAX_SALARY") values ('9566',
'FI_ENTRY',NULL,NULL);
1.18.3046 JANE commit;
1.11.3047 JANE set transaction read write;
1.11.3047 JANE insert into "OE"."CUSTOMERS"("CUSTOMER_ID",
"CUST_FIRST_NAME","CUST_LAST_NAME",
"CUST_ADDRESS","PHONE_NUMBERS","NLS_LANGUAGE",
"NLS_TERRITORY","CREDIT_LIMIT","CUST_EMAIL",
"ACCOUNT_MGR_ID") values ('8933','Ronald',
'Frost',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
1.11.3047 JANE commit;
1.8.3054 RON commit;
別の例を確認するには、「V$LOGMNR_CONTENTS
に返されるデータのフィルタ処理および書式設定」を参照してください。
24.12.7 一般的なLogMinerセッション・タスク6: LogMinerセッションの終了
LogMinerセッションの終了。
LogMinerセッションを正常に終了するには、次に示すとおり、PL/SQLプロシージャDBMS_LOGMNR.END_LOGMNR
を使用します。
EXECUTE DBMS_LOGMNR.END_LOGMNR;
このプロシージャを実行すると、すべてのREDOログ・ファイルがクローズされ、LogMinerによって割り当てられたすべてのデータベースとシステム・リソースを解放できます。
このプロシージャを実行しない場合、LogMinerは、コールを実行したOracleセッションが終了するまで、割り当てられたすべてのリソースを保持します。DDL_DICT_TRACKING
オプションまたはDICT_FROM_REDO_LOGS
オプションのいずれかを使用した場合は、LogMinerセッションの終了に、このプロシージャを使用する必要があります。
親トピック: 一般的なLogMinerセッションのステップ