RESTART REPLICAT
RESTART REPLICATを使用すると、Replicatグループを停止し、その後起動できます。Replicatが起動したことを確認するには、INFO REPLICATまたはSTATUS REPLICATコマンドを使用します。
通常開始ポイント
Replicatは、通常開始ポイントから(初期の、または現在のチェックポイントから)開始することも、トレイルのユーザー指定の代替位置から開始することもできます。
オプションなしRESTART REPLICATによって、Replicatは、データ整合性を維持するために次のいずれかのポイントから処理を開始します:
-
正常終了または異常終了の後: 現在の読取りチェックポイントによって示される、前の実行におけるトレイル内の最初の未処理トランザクションから。
-
グループ作成後の初回起動時: アクティブ・トレイル・ファイルの先頭(
seqno 0、rba 0)。
代替開始ポイント
START REPLICATのSKIPTRANSACTION、ATCSNおよびAFTERCSNオプションによって、Replicat全体または調整Replicatの特定のスレッドが、通常開始ポイント以外のトレイル内のトランザクションで処理を開始します。これらのオプションを使用して次を行います:
-
エラーによってReplicatがトレイルで前に進めない場合の論理リカバリ位置を指定します。Replicatは、データをターゲットに適用できないことを考慮して、問題のある1つ以上のトランザクションをスキップするように配置できます。
-
初期ロード中にバックアップがターゲットに適用された後に重複レコード・エラーと欠落レコード・エラーを発生させるレプリケート済トランザクションをスキップします。これらのオプションにより、Replicatは、バックアップで取得された変更の最新セットより前に発生したトランザクションを破棄します。バックアップの完了に対応するシリアル識別子の値をCSNの値にマップして、指定したCSN以降からトランザクションの適用を開始するようにReplicatを起動できます。
構文
RESTART REPLICAT group_name_wildcard
[SKIPTRANSACTION | {ATCSN csn | AFTERCSN csn}]
[FILTERDUPTRANSACTIONS | NOFILTERDUPTRANSACTIONS]
[THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...]])]
group_name_wildcard
Replicatグループの名前またはワイルドカード(*) (複数のグループを指定する場合)。たとえば、T*と指定すると、名前がTから始まるすべてのReplicatグループが起動されます。
SKIPTRANSACTION
Replicatは、トレイル内の予測される起動位置より後の最初のトランザクションをスキップします。その最初のトランザクションによるすべての操作は除外されます。
このReplicatにMAXTRANSOPSパラメータも使用されている場合、プロセスは、トランザクションの途中のどこかからトレイル・ファイルの読取りを開始する可能性があります。その場合、部分トランザクションの残りはスキップされ、Replicatはファイル内の次のトランザクション開始レコードから通常の処理を再開します。スキップされたレコードは、DISCARDFILEパラメータが使用されている場合、廃棄ファイルに書き込まれる。それ以外の場合、次のようなメッセージがレポート・ファイルに書き込まれる:
User requested START SKIPTRANSACTION. The current transaction will be skipped. Transaction ID txid, position Seqno seqno, RBA rba
SKIPTRANSACTIONは、Replicatで読み取るトレイルが(チェックポイントがある)オンライン変更同期構成の一部である場合にのみ有効になります。タスクタイプの初期ロード(ADD REPLICATでSPECIALRUNを使用する場合)では有効ではありません。
ATCSN csn |
AFTERCSN csn |
特定のCSNにユーザー定義の開始ポイントを設定します。ATCSNまたはAFTERCSNが使用されている場合、次のいずれかのようなメッセージがレポート・ファイルに書き込まれます。
User requested start at commit sequence number (CSN) csn-string
User requested start after commit sequence number (CSN) csn-string
これらのオプションの一般情報:
-
Replicatが読み取るトレイルが(チェックポイントのある)オンライン変更同期構成の一部である場合にのみ有効です。タスクタイプの初期ロード(
ADD REPLICATでSPECIALRUNを使用する場合)では有効ではありません。 -
CSNは各トランザクションの最初のトレイル・レコードに格納されるため、任意のCSN以降からの開始をサポートするには、トレイルがOracle GoldenGateバージョン10.0.0以上のものである必要があります。Replicatが前のトレイル・バージョンに対して
AFTERCSNを使用して起動されると、Replicatは異常終了し、トレイル・フォーマットがサポートされていないというエラーがレポートに書き込まれる。ATCSNReplicatは、指定したCSNを持つトランザクションから処理を開始します。指定した値未満のCSN値を持つトレイル内のトランザクションは、すべてスキップされます。
AFTERCSNReplicatは、指定したCSNを持つトランザクションの後に発生したトランザクションから処理を開始します。指定した値以下のCSN値を持つトレイル内のトランザクションは、すべてスキップされます。
csnCSN値を指定します。データベースに有効なフォーマットでCSN値を入力します。CSNのフォーマットおよび説明は、「コミット順序番号(CSN)」を参照してください。フォーマットが無効な場合、Replicatは異常終了し、レポート・ファイルにメッセージが書き込まれます。
初期ロードの完了後に指定するCSNを決定するには、ロード・ユーティリティがロードを完了した時点のコミット識別子を使用します。それ以外の場合、Replicatの開始時点を決定するための初期ロード手順の指示に従います。
FILTERDUPTRANSACTIONS | NOFILTERDUPTRANSACTIONS
Replicatは、すでに処理されているトランザクションを無視します。Extractが新しい開始ポイント(START EXTRACTのATCSNまたはAFTERCSNオプションを参照)に再配置され、Replicatが異常終了する可能性のある重複トランザクションがトレイル内にあることがわかっている場合に使用します。このオプションでは、チェックポイント表を使用する必要があります。データベースがOracleの場合、このオプションは非統合モードのReplicatでのみ有効です。統合モードで自動ターゲット・トレイル・ファイルが再生成される場合、統合モードでは重複トランザクションが透過的に処理されます。デフォルトはFILTERDUPTRANSACTIONSです。
THREADS thread_list
Replicatが調整モードの場合、SKIPTRANSACTION、ATCSNおよびAFTERCSNに有効です。これらのオプションなしのRESTART REPLICATには無効です。指定した場所から指定したReplicatスレッドを開始します。
thread_list
範囲のカンマ区切りリストです(threadIDlow-threadIDhigh, threadIDlow-threadIDhigh形式)。
!
(感嘆符) Replicatを即座に再起動します。トランザクションは停止されます。
例
RESTART REPLICAT finance
次では、特定のCSNからReplicatを起動します。
RESTART REPLICAT finance, ATCSN 6488359
次では、調整Replicatのスレッド4および5は、Replicatが起動したときの最終チェックポイント後の最初のトランザクションをスキップします。これが10スレッドの調整Replicatである場合、スレッド0-3および6-10は、すべてその最終チェックポイントの通常開始ポイントから開始します。
RESTART REPLICAT fin SKIPTRANSACTION THREADS (4-5)
次の例では、調整Replicatのスレッド1-3はCSN 6488359から開始し、スレッド9-10はCSN 6488360の後から開始し、スレッド7および8は最終チェックポイント後の最初のトランザクションをスキップします。
RESTART REPLICAT fin ATCSN 6488359 THREADS (1-3), AFTERCSN 6488360 THREADS (9-10), SKIPTRANSACTION THREADS (7,8)