この付録では、チェックポイントに関する情報について説明します。 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
エントリから始まる内部情報の詳細は、内部チェックポイント情報を参照してください。
Extractは、データ・ソースに読取りチェックポイントを作成します。
開始チェックポイントは、プロセスの起動時にデータ・ソースに作成される最初のチェックポイントです。この統計は、次のもので構成されます。
Thread #
: Oracle GoldenGateがOracle RAC環境で実行されている場合は、このチェックポイントを作成したExtractスレッドの番号。それ以外の環境で実行されている場合、この統計は表示されません。
Sequence #
: チェックポイントが作成されたトランザクション・ログの順序番号。
RBA
: チェックポイントが作成されたレコードの相対バイト・アドレス。
Timestamp
: チェックポイントの作成時のレコードのタイムスタンプ。
SCN
: チェックポイントが作成されたレコードのシステム変更番号。
Redo File
: チェックポイントが作成されたレコードを含むトランザクション・ログのパス名。
リカバリ・チェックポイントは、Extractによってまだ処理されていない最も古いトランザクションを含むレコードのデータ・ソース内の位置です。この統計のフィールドは、他のタイプの読取りチェックポイントに含まれるフィールドと同じです。
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/eh000000000 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
エントリから始まる内部情報の詳細は、内部チェックポイント情報を参照してください。
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グループの数にかかわらず、 |
|
チェックポイント表を参照する外部キー。この列はトランザクション表の主キーの一部です。 |
|
多くのオーバーフロー・トランザクションがあるため、それらすべてを格納するために複数の行が必要な場合に、一意の行を作成します。この列はトランザクション表の主キーの一部です。 |
|
すでに適用されている高基準値と低基準値の間のトランザクションのオーバーフローを格納します。 |