• 検索結果がありません。

SQL Apply の進捗の監視 の進捗の監視 の進捗の監視 の進捗の監視

9.1 SQL Apply アーキテクチャの概要 アーキテクチャの概要 アーキテクチャの概要 アーキテクチャの概要

9.3.1 SQL Apply の進捗の監視 の進捗の監視 の進捗の監視 の進捗の監視

SQL Applyには、5つの進捗状況があります。SQL Applyの初期化、LogMinerマルチバー

ジョン・データ・ディクショナリのロード、適用(REDOデータ)、アーカイブ・ギャップの解 決の待機およびアイドルの5つです。図9-2に、これらの状態の流れを示します。

図 図 図

図 9-2 SQL Apply処理中の進捗状態処理中の進捗状態処理中の進捗状態処理中の進捗状態

次の各項では、それぞれの状態を詳細に説明します。

初期化中状態 初期化中状態 初期化中状態 初期化中状態

ALTER DATABASE START LOGICAL STANDBY APPLY文を発行してSQL Applyを開始する と、初期化中状態になります。

SQL Applyの現在の状態を判断するには、V$LOGSTDBY_STATEビューを問い合せます。次に

例を示します。

SQL> SELECT SESSION_ID, STATE FROM V$LOGSTDBY_STATE;

SESSION_ID STATE

--- ---1 INITIALIZING

SESSION_ID列は、SQL Applyにより作成された永続LogMinerセッションを示します。この セッションで、プライマリ・データベースで生成されたアーカイブREDOログ・ファイルがマ イニングされます。

ディクショナリ・ログ待機中 ディクショナリ・ログ待機中 ディクショナリ・ログ待機中 ディクショナリ・ログ待機中

SQL Applyは、初回の開始時に、REDOログ・ファイルで取得されたLogMinerマルチバー

ジョン・データ・ディクショナリをロードする必要があります。 SQL Applyは、LogMinerマル チバージョン・データ・ディクショナリのロードに必要なREDOデータをすべて受信するま で、WAITING FOR DICTIONARY LOGS状態にとどまります。

ロジカル・スタンバイ・データベースの監視

ディクショナリ・ロード中状態 ディクショナリ・ロード中状態 ディクショナリ・ロード中状態 ディクショナリ・ロード中状態

ディクショナリ・ロード中状態は、しばらく継続する場合があります。大型データベースで

LogMinerマルチバージョン・データ・ディクショナリをロードするには、長時間かかることが

あります。 V$LOGSTDBY_STATEビューを問い合せると、ディクショナリのロード中は次の出力 が戻されます。

SQL> SELECT SESSION_ID, STATE FROM V$LOGSTDBY_STATE;

SESSION_ID STATE

--- ---1 LOADING DICTIONARY

LogMinerディクショナリが完全にロードされるまでに起動されるのは、COORDINATORプロセ

スとマイニング・プロセスのみです。したがって、この時点でV$LOGSTDBY_PROCESSを問い 合せると、APPLIERプロセスは表示されません。次に例を示します。

SQL> SELECT SID, SERIAL#, SPID, TYPE FROM V$LOGSTDBY_PROCESS;

SID SERIAL# SPID TYPE

--- --- --- ---47 3 11438 COORDINATOR

50 7 11334 READER 45 1 11336 BUILDER 44 2 11338 PREPARER 43 2 11340 PREPARER

V$LOGMNR_DICTIONARY_LOADビューを問い合せると、ディクショナリ・ロードの進捗に関す る詳細情報を取得できます。ディクショナリ・ロードは、次の3つのフェーズで発生します。

1. LogMinerマルチバージョン・データ・ディクショナリのロードに関連するREDO変更を

収集するために、関連アーカイブREDOログ・ファイルがマイニングされます。

2. 変更が処理され、データベース内のステージング表にロードされます。

3. 一連のDDL文が発行されて、LogMinerマルチバージョン・データ・ディクショナリ表が ロードされます。

次に例を示します。

SQL> SELECT PERCENT_DONE, COMMAND FROM V$LOGMNR_DICTIONARY_LOAD

WHERE SESSION_ID = (SELECT SESSION_ID FROM V$LOGSTDBY_STATE);

PERCENT_DONE COMMAND

---

---40 alter table SYSTEM.LOGMNR_CCOL$ exchange partition P101 with table SYS.LOGMNRLT_101_CCOL$ excluding indexes without validation

PERCENT_DONEまたはCOMMAND列が長時間変化しない場合は、V$SESSION_LONGOPSビュー を問い合せ、問題のDDLトランザクションの進捗を監視してください。

ロジカル・スタンバイ・データベースの監視

ロジカル・スタンバイ・データベースの管理 9-13 適用中状態

適用中状態 適用中状態 適用中状態

この状態では、SQL ApplyはLogMinerマルチバージョン・データ・ディクショナリの初期ス ナップショットを正常にロードしており、現在はロジカル・スタンバイ・データベースに REDOデータを適用中です。

SQL Applyの進捗の詳細情報を確認するには、次のようにV$LOGSTDBY_PROGRESSビューを

問い合せます。

SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YYYY HH24:MI:SS';

SQL> SELECT APPLIED_TIME, APPLIED_SCN, MINING_TIME, MINING_SCN, FROM V$LOGSTDBY_PROGRESS;

APPLIED_TIME APPLIED_SCN MINING_TIME MINING_SCN --- --- ---10-JAN-2005 12:00:05 346791023 ---10-JAN-2005 12:10:05 3468810134

プライマリ・データベース上でAPPLIED_SCN(またはAPPLIED_TIME)以前に表示されるコ ミット済トランザクションは、すべてロジカル・スタンバイ・データベースに適用されていま す。マイニング・エンジンは、プライマリ・データベースでMINING_SCN(およびMINING_

TIME)以前に生成されたREDOレコードの処理をすべて完了しています。安定状態では、

MINING_SCN(およびMINING_TIME)は常にAPPLIED_SCN(およびAPPLIED_TIME)より も前の値を示します。

ギャップ待機中状態 ギャップ待機中状態 ギャップ待機中状態 ギャップ待機中状態

この状態が発生するのは、SQL Applyが使用可能な全REDOレコードのマイニングと適用を完 了し、RFSプロセスによる新規ログ・ファイル(または欠落しているログ・ファイル)のアー カイブを待機している場合です。

SQL> SELECT STATUS FROM V$LOGSTBDY_PROCESS WHERE TYPE = 'READER';

STATUS

---ORA:01291 ログ・ファイルを待機しています(スレッド# %s、順序番号# %s)

アイドル状態 アイドル状態 アイドル状態 アイドル状態

SQL Applyは、プライマリ・データベースで生成されたREDOをすべて適用し終わると、この

状態になります。

ロジカル・スタンバイ・データベースの監視

Outline

関連したドキュメント