この付録では、チェックポイントに関する情報について説明します。Oracle GoldenGateで作業する場合、状況に応じて、プロセスで作成されるチェックポイントを参照する必要があります。チェックポイントは、リカバリの目的でプロセスの状態を保存します。ExtractおよびReplicatではチェックポイントを使用します。
この付録の内容は次のとおりです。
正確なチェックポイントの位置は、データ・ソースの読取りチェックポイントと証跡の書込みチェックポイントで構成されます。次に、SHOWCHオプションを指定したINFO EXTRACTコマンドで表示されるチェックポイント情報の例を示します。ここでは、データ・ソースはOracle RACデータベース・クラスタなので、出力にはスレッド情報も含まれています。過去のチェックポイントを表示するには、表示するチェックポイント番号をSHOWCH引数に続いて指定します。
例E-1 INFO EXTRACTとSHOWCH
EXTRACT JC108XT Last Started 2011-01-01 14:15 Status ABENDED
Checkpoint Lag 00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint File /orarac/oradata/racq/redo01.log
2011-01-01 14:16:45 Thread 1, Seqno 47, RBA 68748800
Log Read Checkpoint File /orarac/oradata/racq/redo04.log
2011-01-01 14:16:19 Thread 2, Seqno 24, RBA 65657408
Current Checkpoint Detail:
Read Checkpoint #1
Oracle RAC Redo Log
Startup Checkpoint (starting position in data source):
Thread #: 1
Sequence #: 47
RBA: 68548112
Timestamp: 2011-01-01 13:37:51.000000
SCN: 0.8439720
Redo File: /orarac/oradata/racq/redo01.log
Recovery Checkpoint (position of oldest unprocessed transaction in data source):
Thread #: 1
Sequence #: 47
RBA: 68748304
Timestamp: 2011-01-01 14:16:45.000000
SCN: 0.8440969
Redo File: /orarac/oradata/racq/redo01.log
Current Checkpoint (position of last record read in the data source):
Thread #: 1
Sequence #: 47
RBA: 68748800
Timestamp: 2011-01-01 14:16:45.000000
SCN: 0.8440969
Redo File: /orarac/oradata/racq/redo01.log
Read Checkpoint #2
Oracle RAC Redo Log
Startup Checkpoint(starting position in data source):
Sequence #: 24
RBA: 60607504
Timestamp: 2011-01-01 13:37:50.000000
SCN: 0.8439719
Redo File: /orarac/oradata/racq/redo04.log
Recovery Checkpoint (position of oldest unprocessed transaction in data source):
Thread #: 2
Sequence #: 24
RBA: 65657408
Timestamp: 2011-01-01 14:16:19.000000
SCN: 0.8440613
Redo File: /orarac/oradata/racq/redo04.log
Current Checkpoint (position of last record read in the data source):
Thread #: 2
Sequence #: 24
RBA: 65657408
Timestamp: 2011-01-01 14:16:19.000000
SCN: 0.8440613
Redo File: /orarac/oradata/racq/redo04.log
Write Checkpoint #1
GGS Log Trail
Current Checkpoint (current write position):
Sequence #: 2
RBA: 2142224
Timestamp: 2011-01-01 14:16:50.567638
Extract Trail: ./dirdat/eh
Header:
Version = 2
Record Source = A
Type = 6
# Input Checkpoints = 2
# Output Checkpoints = 1
File Information:
Block Size = 2048
Max Blocks = 100
Record Length = 2048
Current Offset = 0
Configuration:
Data Source = 3
Transaction Integrity = 1
Task Type = 0
Status:
Start Time = 2011-01-01 14:15:14
Last Update Time = 2011-01-01 14:16:50
Stop Status = A
Last Result = 400
SHOWCH出力のHeaderエントリから始まる内部情報の詳細は、E.3項を参照してください。
Extractは、データ・ソースに読取りチェックポイントを作成します。
開始チェックポイントは、プロセスの起動時にデータ・ソースに作成される最初のチェックポイントです。この統計は、次のもので構成されます。
Thread #: Oracle GoldenGateがOracle RAC環境で実行されている場合は、このチェックポイントを作成したExtractスレッドの番号。それ以外の環境で実行されている場合、この統計は表示されません。
Sequence #: チェックポイントが作成されたトランザクション・ログの順序番号。
RBA: チェックポイントが作成されたレコードの相対バイト・アドレス。
Timestamp: チェックポイントの作成時のレコードのタイムスタンプ。
SCN: チェックポイントが作成されたレコードのシステム変更番号。
Redo File: チェックポイントが作成されたレコードを含むトランザクション・ログのパス名。
Extractは、証跡に、現在のチェックポイントと呼ばれる書込みチェックポイントを作成します。現在のチェックポイントは、Extractが現在書き込んでいる証跡内の位置です。この統計は、次のもので構成されます。
Sequence #: チェックポイントが書き込まれた証跡ファイルの順序番号。
RBA: チェックポイントが作成された証跡ファイル内レコードの相対バイト・アドレス。
Timestamp: チェックポイントの作成時のレコードのタイムスタンプ。
Extract trail: 証跡の相対パス名。
Trail Type: 証跡タイプを識別します。EXTTRAILでは、証跡をローカル証跡として識別します。これは、ホスト・ファイルシステム全体でOracle GoldenGateプロセスによって直接アクセス可能であることを意味します。RMTTRAILでは、証跡をリモート証跡として識別します。これは、ホスト・ファイルシステム全体でOracle GoldenGateプロセスによって直接アクセス不可であることを意味します。共有ネットワーク・デバイスに格納され、NFSのようなサービスを介してアクセス可能な証跡は、ホスト・ファイルシステム全体で透過的にアクセス可能であるため、ローカルとみなされます。
Replicatは、最新の読取り位置をマーク付けするために、証跡ファイルにチェックポイントを作成します。プロセス・チェックポイントを表示するには、INFO REPLICATコマンドをSHOWCHオプションとともに使用します。基本コマンドでは、現在のチェックポイントを表示します。特定の番号の過去のチェックポイントを表示するには、番号の値をSHOWCH引数に続いて入力します。
例E-2 INFO REPLICAT、SHOWCH
REPLICAT JC108RP Last Started 2011-01-12 13:10 Status RUNNING
Checkpoint Lag 00:00:00 (updated 111:46:54 ago)
Log Read Checkpoint File ./dirdat/eh000000
First Record RBA 3702915
Current Checkpoint Detail:
Read Checkpoint #1
GGS Log Trail
Startup Checkpoint(starting position in data source):
Sequence #: 0
RBA: 3702915
Timestamp: Not Available
Extract Trail: ./dirdat/eh
Current Checkpoint (position of last record read in the data source):
Sequence #: 0
RBA: 3702915
Timestamp: Not Available
Extract Trail: ./dirdat/eh
Header:
Version = 2
Record Source = A
Type = 1
# Input Checkpoints = 1
# Output Checkpoints = 0
File Information:
Block Size = 2048
Max Blocks = 100
Record Length = 2048
Current Offset = 0
Configuration:
Data Source = 0
Transaction Integrity = -1
Task Type = 0
Status:
Start Time = 2011-01-12 13:10:13
Last Update Time = 2011-01-12 21:23:31
Stop Status = A
Last Result = 400
SHOWCH出力のHeaderエントリから始まる内部情報の詳細は、E.3項を参照してください。
SHOWCHオプションを使用したINFOコマンドでは、現在のチェックポイント・エントリだけでなく、レコード自体に関するメタデータ情報も表示されます。この情報は記載されておらず、サポート・ケースの解決時にOracle GoldenGateプロセスおよびサポート担当者が使用するためのものです。メタデータは、SHOWCH出力内の次のエントリに含まれています。
Header:
Version = 2
Record Source = A
Type = 1
# Input Checkpoints = 1
# Output Checkpoints = 0
File Information:
Block Size = 2048
Max Blocks = 100
Record Length = 2048
Current Offset = 0
Configuration:
Data Source = 0
Transaction Integrity = -1
Task Type = 0
Status:
Start Time = 2011-01-12 13:10:13
Last Update Time = 2011-01-12 21:23:31
Stop Status = A
Last Result = 400
データベース・チェックポイントを使用する場合、ADD CHECKPOINTTABLEコマンドを実行すると、Oracle GoldenGateによりユーザー定義名を使用してデータベースにチェックポイント表が作成されます。または、ユーザーがchkpt_db_create.sqlスクリプトを使用して表を作成することもできます。ここでdbはデータベースのタイプです。
2つの表があります: メイン・チェックポイント表と、自動的に作成される補助チェックポイント表です。補助表はトランザクション表と呼ばれ、_loxが付加されたプライマリ・チェックポイント表の名前が含まれています。各Replicatまたは調整されたReplicatの各スレッドでは、進捗情報を格納するためにチェックポイント表の1行を使用します。
チェックポイント時には、通常、適用された(合計nトランザクション間の)いくつかのトランザクションがあり、残りは進行中です。たとえば、Replicatが、CSN1からCSN3までの範囲のnトランザクションのグループを処理している場合を考えてみます。CSN1は高基準値で、CSN3は低基準値です。高基準値より高いCSNを持つトランザクションは処理されず、低基準値より低いCSNを持つトランザクションはすでに処理されています。完了したトランザクションは、チェックポイント表のLOG_CMPLT_XID列に格納されます。これらのトランザクションのオーバーフローは、トランザクション表(補助チェックポイント表)のLOG_CMPLT_XID列に格納されます。
現在、Replicat (または調整Replicatの各Replicatスレッド)では、トランザクションを(並列ではなく)順次適用します。そのため、高基準値(表のLOG_CSN値)は、低基準値(表のLOG_CMPLT_CSN値)と常に同じで、通常、LOG_CMPLT_XID列のトランザクションIDが1つのみ存在します。同じCSNを共有している複数のトランザクションが存在する場合のみ、例外です。
これらの表の列の名前または属性は、変更しないでください。表記憶域属性は必要に応じて変更できます。
表E-1 チェックポイント表の定義
| 列 | 説明 |
|---|---|
|
|
チェックポイントにこの表を使用するReplicatグループの名前。複数のReplicatグループで同じ表を使用できます。この列は主キーの一部です。 |
|
|
同じ表に書き込むReplicatグループの数にかかわらず、 |
|
|
Replicatがチェックポイント時に読み取っていた入力証跡の順序番号。 |
|
|
|
|
|
ソース・トランザクションのコミットのタイムスタンプ。 |
|
|
チェックポイント表の作成日時。 |
|
|
チェックポイント表の最終更新日時。 |
|
|
現在のOracle GoldenGateのホーム・ディレクトリまたはフォルダ。 |
|
|
CSNの高基準値(上限)を格納します。この値より高いCSNを持つトランザクションは処理されません。 |
|
|
使用されません。下位互換性のために保持されます。 |
|
|
CSNの低基準値(下限)を格納します。この値より低いCSNを持つトランザクションはすでに処理されています。 |
|
|
すでに適用されている高基準値と低基準値の間のトランザクションを格納します。 |
|
|
チェックポイント表形式のバージョン。表のバージョン番号として識別するための将来の拡張を有効にします。 |
表E-2 トランザクション表の定義
| 列 | 説明 |
|---|---|
|
|
チェックポイントにこの表を使用するReplicatグループの名前。複数のReplicatグループで同じ表を使用できます。この列はトランザクション表の主キーの一部です。 |
|
|
同じ表に書き込むReplicatグループの数にかかわらず、 |
|
|
チェックポイント表を参照する外部キー。この列はトランザクション表の主キーの一部です。 |
|
|
多くのオーバーフロー・トランザクションがあるため、それらすべてを格納するために複数の行が必要な場合に、一意の行を作成します。この列はトランザクション表の主キーの一部です。 |
|
|
すでに適用されている高基準値と低基準値の間のトランザクションのオーバーフローを格納します。 |