START REPLICAT
START REPLICATでは、Replicatを起動します。Replicatが起動したことを確認するには、INFO REPLICATまたはSTATUS REPLICATコマンドを使用します。
Oracleターゲット・データベースの統合Replicatグループを起動すると、START REPLICATによってReplicatがターゲット・データベースに自動的に登録されます。
調整Replicatは全体としてのみ起動できます。個々のスレッドを起動するオプションはありません。調整Replicatが前に正しく停止していない場合、各スレッドがトレイル・ファイルの異なる位置で停止している可能性があります。これが発生すると、パラメータ・ファイルが前の実行以降に変更されている場合、START REPLICATによって警告が書き込まれ、スレッド数が変更されている場合はエラーが発生します。
通常開始ポイント
Replicatは、通常開始ポイントから(初期の、または現在のチェックポイントから)開始することも、トレイルのユーザー指定の代替位置から開始することもできます。
オプションなしSTART REPLICATによって、Replicatは、データ整合性を維持するために次のいずれかのポイントから処理を開始します:
-
正常終了または異常終了の後: 現在の読取りチェックポイントによって示される、前の実行におけるトレイル内の最初の未処理トランザクションから。
-
グループ作成後の初回起動時: アクティブ・トレイル・ファイルの先頭(
seqno 0、rba 0)。
代替開始ポイント
START REPLICATのSKIPTRANSACTION、ATCSNおよびAFTERCSNオプションによって、Replicat全体または調整Replicatの特定のスレッドが、通常開始ポイント以外のトレイル内のトランザクションで処理を開始します。これらのオプションを使用して次を行います:
-
エラーによってReplicatがトレイルで前に進めない場合の論理リカバリ位置を指定します。Replicatは、データをターゲットに適用できないことを考慮して、問題のある1つ以上のトランザクションをスキップするように配置できます。
-
初期ロード中にバックアップがターゲットに適用された後に重複レコード・エラーと欠落レコード・エラーを発生させるレプリケート済トランザクションをスキップします。これらのオプションにより、Replicatは、バックアップで取得された変更の最新セットより前に発生したトランザクションを破棄します。バックアップの完了に対応するシリアル識別子の値をCSNの値にマップして、指定したCSN以降からトランザクションの適用を開始するようにReplicatを起動できます。
ノート:トランザクションをスキップする(またはCSN以降から開始する)場合、Replicatは、適切なトランザクション・レコードに到着する前に読み取る必要があるトレイル内のデータ量に応じて、通常より起動が遅くなることがあります。起動の進捗状況を表示するには、`SEND'を使用します。
REPLICAT` command with the `STATUS` option. To omit the need for Replicat to read through transactions that ultimately will be skipped, you can use the `ATCSN` or `AFTERCSN` option when starting Extract, so that those transactions are omitted from the trail, see `START EXTRACT`. {: .infoboxnote}
構文
START REPLICAT group_name
[SKIPTRANSACTION | {ATCSN csn | AFTERCSN csn}]
[FILTERDUPTRANSACTIONS | NOFILTERDUPTRANSACTIONS]
[THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])
group_name
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は各トランザクションの最初のトレイル・レコードに格納されます。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を異常終了させる可能性のある重複トランザクションがトレイル内にあることがわかっている場合に使用します。このオプションでは、チェックポイント表を使用する必要があります。デフォルトはFILTERDUPTRANSACTIONSです。ただし、NOFILTERDUPTRANSACTIONSを使用すると、統合Replicatのデフォルト設定はオーバーライドされ、重複をフィルタしなくなります。そのため、クラシックReplicatと統合Replicatの両方に同じ効果があります。
THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])
Replicatが調整モードの場合、SKIPTRANSACTION、ATCSNおよびAFTERCSNに有効です。これらのオプションなしのSTART REPLICATには無効です。指定した場所から指定したReplicatスレッドを開始します。
threadID[, threadID][, ...]
threadID, threadID, threadIDというフォーマットでスレッドIDまたはスレッドのカンマ区切りリストを指定します。
thread_range[, thread_range][, ...]
スレッドの範囲をthreadIDlow-threadIDhighの形式で指定するか、範囲のカンマ区切りリストをthreadIDlow-threadIDhigh, threadIDlow-threadIDhighの形式で指定します。
threadID, threadID, threadIDlow-threadIDhighのように、これらの形式を組み合せて指定することもできます。
例
START REPLICAT reps
次では、Oracle固有のCSNからReplicatを起動します。
START REPLICAT reps, ATCSN 6488359
次では、指定したCSNの後のSQL Server固有のCSNからReplicatを起動します。
START REPLICAT reps, AFTERCSN 0X000004D2:0000162E:0009
次では、調整Replicatのスレッド4および5は、Replicatが起動したときの最終チェックポイント後の最初のトランザクションをスキップします。これが10スレッドの調整Replicatである場合、スレッド0-3および6-10は、すべてその最終チェックポイントの通常開始ポイントから開始します。
START REPLICAT reps SKIPTRANSACTION THREADS(4-5)
次の例では、調整Replicatのスレッド1から3がCSN 6488359で開始されます。
START REPLICAT reps ATCSN 6488359 THREADS(1-3)