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 可經由定位來略過引發問題的異動,但需瞭解的是資料將不會套用至該目標。
-
略過會在起始載入期間將備份套用至目標之後造成重複記錄與遺失記錄錯誤的複製異動。這些選項會讓 Replicat 捨棄早於備份中最新擷取之一組變更的異動。您可以將相對應於完成備份的序列 ID 值對應至 CSN 值,然後啟動 Replicat,從指定的 CSN 開始套用異動。
注意:略過交易,或從 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
只有當 Replicat 讀取的歷程檔屬於線上變更同步化組態 (含檢查點) 的一部分時,SKIPTRANSACTION 才會有效。不適用於 task-type 初始載入 (其中 SPECIALRUN 與 ADD REPLICAT 搭配使用)。
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 所讀取的歷程檔是線上變更同步組態 (含檢查點) 的一部分時才有效。不適用於 task-type 初始載入 (其中
SPECIALRUN與ADD REPLICAT搭配使用)。 -
為了支援在某個 CSN 或其之後啟動,會將 CSN 儲存在每個異動的第一筆歷程檔記錄中。如果 Replicat 是以
AFTERCSN啟動並針對較早的歷程檔版本,Replicat 會中止並寫入錯誤,說明不支援歷程檔格式的報表。ATCSN讓 Replicat 在具有所指定 CSN 的異動開始處理。歷程檔中所有 CSN 值小於指定值的異動都會被略過。
AFTERCSN讓 Replicat 在發生時間比所指定 CSN 之異動晚的異動開始處理。歷程檔中所有 CSN 值小於或等於指定值的異動都會被略過。
csn指定 CSN 值。以對資料庫有效的格式輸入 CSN 值。如需 CSN 格式和說明,請參閱確認序號 (CSN) 。如果格式無效,Replicat 就會異常中止並將訊息寫入報表檔。若要判斷在起始載入完成後所要提供的 CSN,請使用載入公用程式完成載入的確認 ID。否則,請依照起始載入程序中的指示來判斷啟動 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 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)