SEND REPLICAT
使用 SEND REPLICAT 與啟動或執行 Replicat 處理作業通訊。Replicat 能夠接受使用者發出的命令後,便會處理要求。
語法
SEND REPLICAT group_name[threadID],
{
CACHEMGR {CACHESTATS | CACHEQUEUES | CACHEVMUSAGE} |
DEPENDENCYINFO [TXNCOUNT num] |
FORCESTOP |
GETLAG |
GETPARAMINFO [parameter_name] [FILE output_file] |
HANDLECOLLISIONS | NOHANDLECOLLISIONS [table_spec] |
INTEGRATEDPARAMS(parameter_specification) |
LOGEND |
REPORT [HANDLECOLLISIONS [table_spec]] |
RESUME |
STATUS |
STOP |
TRACE[2] [DDLINCLUDE | DDL[ONLY]] file_name |
TRACE[2] OFF |
TRACE OFF file_name |
TRACEINIT |
THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])
}
group_name[threadID]
Replicat 群組的名稱或協調 Replicat 之特定繫線的名稱,例如 fin003。命令若是針對特定繫線發出,所使用的選項只會套用至該繫線。另外,您也可以使用 THREADS 選項來發出 SEND REPLICAT,而不用包含含有群組名稱的 threadID。Replicat 如果不在執行中,系統會傳回錯誤。
CACHEMGR {CACHESTATS | CACHEQUEUES | CACHEVMUSAGE}
傳回 Oracle GoldenGate 記憶體快取管理程式的相關統計資料。CACHEMGR 只能作為 Oracle Support 明確的指示使用。
CACHESTATS
傳回檔案快取的統計資料。
CACHEQUEUES
僅傳回可用佇列的統計資料。
CACHEVMUSAGE
傳回虛擬記憶體使用量的統計資料。
DEPENDENCYINFO [TXNCOUNT num]
從請購單異動相依性圖表列印資訊。它會先列印目前正在執行的交易群組,然後列印相依於其他交易的等待中交易。TXNCOUNT 決定要列印的等待交易數。預設值是 10,最大值是 99。
FORCESTOP
略過所有通知,強制將 Replicat 停止。此命令會倒回任何作用中異動並立即停止處理作業。此命令套用至整個 Replicat,不能用於特定的 Replicat 繫線。
GETLAG
顯示 Replica 與歷程檔之間的真實延遲時間。延遲時間是 Replicat 處理最後一筆記錄的時間與歷程檔中該記錄之時戳之間的差異 (秒)。其結果與 LAG REPLICAT 相同。
GETPARAMINFO [parameter_name] [FILE output_file]
使用 GETPARAMINFO 來查詢執行中執行處理的執行時期參數值,包括 Extract、Replicat 和 Manager。您可以查詢單一參數或所有參數,然後將輸出傳送至主控台或文字檔
parameter_name
預設行為是顯示所有使用中的參數 (也就是曾被應用程式查詢的參數)、參數及其目前值。如果您指定特定參數,則會依該名稱篩選輸出。
FILE output_file
輸出的重新導向目的地文字檔名稱。
HANDLECOLLISIONS |
NOHANDLECOLLISIONS [table_spec] |
控制 HANDLECOLLISIONS 行為。您可以在 Replicat 參數檔中指定 HANDLECOLLISIONS 或 NOHANDLECOLLISIONS 參數,而不需要使用此選項。請參閱 Oracle GoldenGate 的參數和函數參照中的 HANDLECOLLISIONS \| NOHANDLECOLLISIONS 。此命令可以透過 SEND REPLICAT group_name[threadID] 直接傳送至個別繫線,或者您可以使用 THREADS 選項透過協調器繫線傳送命令以影響多個繫線。
HANDLECOLLISIONS
當來源資料庫處於作用中時,使用 HANDLECOLLISIONS 在執行初始資料載入時啟用自動錯誤處理。確定要停用 HANDLECOLLISIONS,方法為使用 NOHANDLECOLLISIONS 選項發出 SEND REPLICAT ,或在起始載入完成且線上資料變更套用至目標表格之後,將參數從參數檔中移除。注意: `SEND 傳回的訊息
REPLICAT` with `HANDLECOLLISIONS`, when issued for a specific Replicat thread, shows that the command set `HANDLECOLLISIONS` for all `MAP` statements, not only the one handled by the specified thread. This is a known issue. The command actually affects only the `MAP` statement that includes the specified thread.
{: .infoboxnote}
NOHANDLECOLLISIONS
關閉 HANDLECOLLISIONS 參數,但不會將它從參數檔移除。要避免在下次啟動 Replicat 時啟動 HANDLECOLLISIONS,請將它從參數檔中移除。
table_spec
table_spec 將 HANDLECOLLISIONS 或 NOHANDLECOLLISIONS 限制為以標準萬用字元 (*) 指定的特定目標表格或目標表格群組。
INTEGRATEDPARAMS(parameter_specification)
(Oracle) 支援整合式 Replicat。Replicat 以整合模式執行時,會將參數設定傳送到資料庫內送伺服器。使用此命令時,一次只能傳送一個參數設定。若要傳送多個參數變更,請依照下列範例發出多個 SEND REPLICAT 命令。
SEND REPLICAT repe INTEGRATEDPARAMS (parallelism 4)
SEND REPLICAT repe INTEGRATEDPARAMS (max_sga_size 250)
為了維持處理連續性,會在異動界限進行參數變更。
LOGEND
確認 Replicat 是否已處理資料來源中的所有記錄。
REPORT [HANDLECOLLISIONS [table_spec]]
將暫時統計報表產生至 Extract 報表檔。與 RESETREPORTSTATS | NORESETREPORTSTATS 選項搭配使用時,所顯示的統計資料取決於 STATOPTIONS 參數組態。請參閱 STATOPTIONS 。
HANDLECOLLISIONS
顯示已啟用 HANDLECOLLISIONS 的表格。
table spec
將輸出限於特定目標表格,或以標準萬用字元 (*) 將其限於一組指定的目標表格。
RESUME
恢復 (設為作用中) 由 EVENTACTIONS SUSPEND 事件暫停的處理作業。處理作業會從被暫停的點繼續正常處理。
STATUS
傳回歷程檔內目前的位置,以及有關目前異動的資訊。欄位輸出包括:
-
處理狀態 (Replicat 若為協調式,則為每一繫線)
-
歷程檔中的位置 (Replicat 若為協調式,則為每一繫線)
-
歷程檔序號 (Replicat 若為協調式,則為每一繫線)
-
歷程檔中的 RBA
-
歷程檔名稱
可能的處理狀態訊息為:
-
Delaying– 等待更多資料 -
Suspended– 等待繼續 -
Waiting on deferred apply– 依據DEFERAPPLYINTERVAL參數延遲處理。 -
Processing data– 正在處理資料 -
Skipping current transaction– 已使用START REPLICAT與SKIPTRANSACTION。 -
Searching for START ATCSNcsn– 已使用START REPLICAT與ATCSN。 -
Searching for START AFTERCSNcsn– 已使用START REPLICAT與AFTERCSN。 -
Performing transaction timeout recovery– 取消目前未完成的交易並重新定位以啟動新的交易 (請參閱TRANSACTIONTIMEOUT參數)。 -
Waiting for data at logical EOF after transaction timeout recovery– 在TRANSACTIONTIMEOUT終止後,等候接收其他不完整的來源交易。 -
At EOF (end of file)– 不再需要處理的記錄
使用 THREADS 或針對特定執行緒發出命令時,可能的執行緒狀態訊息為:
-
Waiting for consensus stop point:這表示繫線正嘗試同步化障礙異動。 -
Waiting for Watermark:指示所有繫線都嘗試在歷程檔中的相同交易界限停止 (稱為全域浮水印)。 -
Waiting on all threads to start up:表示執行緒正在等待所有執行緒在成功的障礙異動或 Replicat 啟動後啟動。
可能的協調器繫線狀態訊息為:
-
Waiting for all threads to register:表示正在剖析MAP陳述式,以決定在其中指定的執行緒 ID。 -
Processing data:表示正在正常處理資料。 -
Suspended, waiting to be resumed:指示已將含有SUSPEND要求的SEND REPLICAT命令傳送至 Replicat。 -
At EOF:表示歷程檔中已無資料處理。 -
Waiting to register MAP statistics:表示 Replicat 正在收集要傳送到報表檔案的處理統計資料。
STOP
正常停止 Replicat。此命令套用至整個 Replicat,不能用於特定的 Replicat 繫線。
THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])
只對指定的繫線或協調式 Replicat 的多個繫線發出命令。您可以使用此選項,或將 groupname 與 threadID 搭配使用。若未使用其中任一個選項,命令會套用至所有作用中繫線。
threadID[, threadID][, ...]
指定繫線 ID 或以逗號分隔的繫線清單,格式為 threadID, threadID, threadID。
thread_range[, thread_range][, ...]
以 threadIDlow-threadIDhigh 格式或以逗號分隔的範圍清單 (格式為 threadIDlow-threadIDhigh,threadIDlow-threadIDhigh) 來指定繫線範圍。
允許使用這些格式的組合,例如 threadID、threadID、threadIDlow-threadIDhigh。
TRACE[2] [DDLINCLUDE |
DDL[ONLY]] file_name |
開啟和關閉追蹤。追蹤會將資訊擷取至指定的檔案來揭示處理瓶頸。此外,也可以透過 Replicat 參數 TRACE 和 TRACE2 啟用追蹤。
如果 Replicat 為協調模式,且 TRACE 與 THREADS 清單或範圍一起使用,則會為每個目前作用中的繫線建立追蹤檔。每個檔案名稱都會附加其關聯的繫線 ID。當 groupname 以 threadID (如 SEND REPLICAT fin003 TRACE …) 發出 SEND REPLICAT 或僅以 THREADS 指定一個繫線時,此方法不適用以繫線 ID 來識別追蹤檔案。
如果追蹤揭示重大的處理瓶頸,請洽詢 Oracle 客戶服務部以取得協助。
TRACE
擷取逐步的處理資訊。
TRACE2
識別程式碼區段而不是特定步驟。
DDLINCLUDE | DDLONLY
(僅限 Replicat) 啟用 DDL 追蹤功能並指定如何在追蹤報表中包含 DDL 追蹤功能。
-
除了定期追蹤交易資料處理之外,
DDLINCLUDE還包含 DDL 追蹤功能。 -
DDL[ONLY]不包括追蹤交易資料處理,而且只追蹤 DDL。此選項的縮寫為DDL。
file_name
file_name 指定 Oracle GoldenGate 記錄追蹤資訊之檔案的相對或完整名稱。如果追蹤已在進行中,則現有追蹤檔案會關閉,且追蹤會繼續至以 file_name 指定的檔案。舉例而言:
SEND REPLICAT group_name TRACE file_name DDLINCLUDE
如果沒有其他選項會跟隨檔案名稱,可以省略 FILE 關鍵字,例如:
SEND REPLICAT group_name TRACE DDLINCLUDE file_name
TRACE[2] OFF
關閉追蹤。
TRACE OFF file_name
僅關閉所指定追蹤檔的追蹤。此選項支援 EVENTACTIONS 功能,因為多個 EVENTACTIONS 陳述式,所以可以有多個追蹤檔。
TRACEINIT
將追蹤統計資料重設回 0,然後重新開始累積統計資料。使用此選項以追蹤相對於歷史處理行為的目前處理行為。
範例
SEND REPLICAT repe, HANDLECOLLISIONS
SEND REPLICAT repe, REPORT HANDLECOLLISIONS rep_*
SEND REPLICAT repe, GETLAG
SEND REPLICAT repe, INTEGRATEDPARAMS(parallelism 10)
下列範例會將協調式 Replicat 的繫線 3 延遲。
SEND REPLICAT repe, GETLAG
下列範例只對協調式 Replicat 的繫線 1 啟用追蹤功能。在此情況下,由於只追蹤一個執行緒,因此追蹤檔的副檔名不會是 threadID。檔案名稱為 trace.trc。
SEND REPLICAT repe, TRACE THREADS(1) FILE ./dirrpt/trace.trc
下列範例對協調式 Replicat 的 1、2 和 3 繫線啟用追蹤功能。假設所有執行緒皆為作用中,追蹤會產生 trace001、trace002 及 trace003 檔案。
SEND REPLICAT repe TRACE THREADS(1-3) FILE ./dirrpt/trace.trc
下列範例只對協調式 Replicat 的繫線 1 啟用追蹤功能。因為直接針對執行緒 1 發出命令而不使用 THREAD 子句,所以追蹤檔會命名為 trace (沒有執行緒 ID 字尾)。
SEND REPLICAT repe TRACE FILE ./dirrpt/trace.trc