START REPLICAT
START REPLICAT
では、Replicatを起動します。Replicatが起動したことを確認するには、INFO REPLICAT
またはSTATUS REPLICAT
コマンドを使用します。
Oracleターゲット・データベースの統合Replicatグループを開始するときに、START REPLICAT
はReplicatをターゲット・データベースに自動的に登録します。
調整Replicatは全体としてのみ開始することができます。個別にスレッドを開始するオプションはありません。調整Replicatの前回の停止がクリーンではなかった場合、スレッドはトレイル・ファイル内の様々な位置で停止した可能性があります。これが発生した場合、START REPLICAT
は、パラメータ・ファイルが前回の実行から変更された場合は警告を書き込み、スレッドの番号が変更された場合はエラーを発生させます。
通常の開始位置
Replicatは通常の開始位置(最初または現在のチェックポイントから)、または別の、トレイル内のユーザーが指定した位置から開始できます。
オプションなしのSTART REPLICAT
では、Replicatは次のいずれかの位置で処理を開始し、データの整合性を維持します。
-
正常または異常終了後: トレイル内の前回の実行で処理されなかった最初のトランザクション(現在の読取りチェックポイントが示す位置)
-
グループ作成後の最初の起動時: アクティブなトレイル・ファイルの初め(順序番号
0
、rba 0
)。
別の開始位置
START REPLICAT
のSKIPTRANSACTION
、ATCSN
およびAFTERCSN
オプションにより、Replicat全体、または調整Replicatの特定のスレッドが、通常の開始位置ではないトレイル内のトランザクションで処理を開始します。これらのオプションを使用して次のことを行います。
-
Replicatのトレイル内の処理進行を妨げるエラー時の論理リカバリ位置を指定する。問題のあるトランザクションをスキップする位置にReplicatを配置できますが、このようなトランザクションのデータがターゲットに適用されないことを認識して使用してください。
-
初期ロード中に、バックアップがターゲットに適用された後で、重複レコードおよび行方不明レコード・エラーを引き起こす、レプリケートされたトランザクションをスキップします。これらのオプションにより、Replicatは、バックアップでキャプチャされた最新の変更のセットよりも前に発生したトランザクションを破棄します。バックアップの完了に対応するシリアルIDの値をCSN値にマップしてから、Replicatを起動し、指定したCSNから前へトランザクションの適用を開始します。
ノート:
トランザクションをスキップするか、特定のCSNまたはそれ以降から開始する場合は、適切なトランザクション・レコードに到達するまでに読み取る必要があるデータ量に応じて、Replicatの処理開始が通常より遅くなることがあります。処理開始の進捗状況を表示するには、SEND REPLICAT
コマンドとSTATUS
オプションを使用します。最終的にスキップされるトランザクションをReplicatが読み取る必要をなくすには、Extractの開始時にATCSN
またはAFTERCSN
オプションを使用して、そのようなトランザクションを証跡から除外されるようにします。START EXTRACT
を参照してください。
構文
START REPLICAT group_name
[SKIPTRANSACTION | {ATCSN csn
| AFTERCSN csn}]
[FILTERDUPTRANSACTIONS | NOFILTERDUPTRANSACTIONS
]
[THREADS (threadID
[, threadID
][, ...][, thread_range
[, thread_range
][, ...])
-
group_name
-
1つのReplicatグループ名、または複数のグループを指定するワイルドカード(*)。たとえば、
T*
と指定すると、名前がTから始まるすべてのReplicatグループが起動されます。 -
SKIPTRANSACTION
-
Replicatに、トレイル内の予測される起動位置より後に発生する1番目のトランザクションをスキップさせます。この1番目のトランザクション内の操作は、すべて除外されます。
この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は各トランザクションの最初の証跡レコードに格納されます。それ以前のバージョンのトレイルに対し、
AFTERCSN
を指定してReplicatを起動すると、Replicatは異常終了し、トレイル・フォーマットがサポートされていないことを通知するエラーをレポートに書き込みます。-
ATCSN
-
Replicatに、指定したCSNを含むトランザクションで処理を開始させます。指定したCSNより小さいCSN値を含むトレイル内のトランザクションはスキップされます。
-
AFTERCSN
-
Replicatに、指定したCSNを含むトランザクションの後に発生したトランザクションで処理を開始させます。指定したCSNより小さいまたは同じCSN値を含むトレイル内のトランザクションはスキップされます。
-
csn
-
CSN値を指定します。データベースに有効な形式でCSN値を入力します。CSNの形式と説明は、『Oracle GoldenGateの管理』を参照してください。形式が無効な場合、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
][, ...]
-
スレッドIDを指定するか、スレッドのカンマ区切りリストを
threadID, threadID, threadID
の形式で指定します。 -
thread_range[, thread_range][, ...]
-
スレッドの範囲を
threadIDlow-threadIDhigh
の形式で指定するか、範囲のカンマ区切りリストをthreadIDlow-threadIDhigh
,threadIDlow-threadIDhigh
の形式で指定します。
threadID, threadID
,threadIDlow-threadIDhigh
のように、これらの形式を組み合せて指定することもできます。 -
例
-
START REPLICAT repe
-
次の例では、Replicatを起動し、Oracle固有のCSNから処理を開始します。
START REPLICAT repe, ATCSN 6488359
-
次の例では、Replicatを起動し、指定したCSNを含むSQL Server固有のCSNの後のCSNで処理を開始します。
START REPLICAT repe, AFTERCSN 0X000004D2:0000162E:0009
-
次の例では、調整Replicatのスレッド4および5が、Replicatが起動されたときに、最新のチェックポイントの後の最初のトランザクションをスキップします。これが10スレッドの調整Replicatの場合、スレッド0-3および6-10はすべて最新のチェックポイントである通常の開始位置で開始します。
START REPLICAT repe SKIPTRANSACTION THREADS(4-5)
-
次の例では、調整Replicatのスレッド1-3はCSN 6488359で開始し、スレッド9-10はCSN 6488360の後に開始し、スレッド7および8は最新のチェックポイント後の最初のトランザクションをスキップします。
START REPLICAT repe ATCSN 6488359 THREADS(1-3), AFTERCSN 6488360 THREADS(9-10), SKIPTRANSACTION THREADS(7,8)