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 可經由定位來略過引發問題的異動,但需瞭解的是資料將不會套用至該目標。
-
略過會在起始載入期間將備份套用至目標之後造成重複記錄與遺失記錄錯誤的複製異動。這些選項會讓 Replicat 捨棄早於備份中最新擷取之一組變更的異動。您可以將相對應於完成備份的序列 ID 值對應至 CSN 值,然後啟動 Replicat,從指定的 CSN 開始套用異動。
語法
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
只有當 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 之後啟動,歷程檔的版本必須為 Oracle GoldenGate 10.0.0 或更新的版本,因為 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 停止。此選項需要使用檢查點表格。對於 Oracle Database,此選項只適用於非整合式模式的 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)