SEND REPLICAT
使用 SEND 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]
复制组的名称或者协调复制的特定线程的名称,例如 fin003。如果为特定线程发出此命令,则所使用的选项仅应用于该线程。或者,您可以发出带有 THREADS 选项的 SEND REPLICAT,而不在此命令中组合使用 threadID 和组名。如果复制未在运行,则会返回错误。
CACHEMGR {CACHESTATS | CACHEQUEUES | CACHEVMUSAGE}
返回有关 Oracle GoldenGate 内存高速缓存管理器的统计信息。CACHEMGR 只应在 Oracle 技术支持明确指导下使用。
CACHESTATS
返回文件高速缓存的统计信息。
CACHEQUEUES
仅返回空闲队列的统计信息。
CACHEVMUSAGE
返回虚拟内存使用量统计信息。
DEPENDENCYINFO [TXNCOUNT num]
从 PR 事务处理相关性图表中输出信息。它首先打印当前正在执行的事务处理组,然后打印依赖于其他某些事务处理的等待事务处理。TXNCOUNT 确定要打印的等待事务处理数。默认值为 10,最大值为 99。
FORCESTOP
强制复制停止并绕过通知。此命令将回滚任何处于活动状态的事务处理并立即停止该进程。此命令应用于整个复制,不能用于特定的复制线程。
GETLAG
显示复制与线索之间的实际滞后时间。滞后时间是复制进程处理最后一条记录的时间与线索中记录的时间戳之间的差值(以秒为单位)。结果与 LAG REPLICAT 相同。
GETPARAMINFO [parameter_name] [FILE output_file]
使用 GETPARAMINFO 可以查询正在运行的实例(包括提取、复制和管理器)的运行时参数值。您可以查询单个参数或所有参数,然后将输出发送到控制台或文本文件。
parameter_name
默认行为是显示使用的所有参数,即曾按应用程序、其他参数及其当前值查询的参数。如果指定特定参数,则输出将按相应名称进行筛选。
FILE output_file
输出重定向到的文本文件的名称。
HANDLECOLLISIONS |
NOHANDLECOLLISIONS [table_spec] |
控制 HANDLECOLLISIONS 行为。您可以不使用此选项而在复制参数文件中指定 HANDLECOLLISIONS 或 NOHANDLECOLLISIONS 参数。请参阅 HANDLECOLLISIONS \| NOHANDLECOLLISIONS 中的 Parameters and Functions Reference for Oracle GoldenGate 。此命令可以通过 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 参数但不将其从参数文件中删除。为了避免在下次启动复制时启用 HANDLECOLLISIONS,请将该参数从参数文件中删除。
table_spec
table_spec 将 HANDLECOLLISIONS 或 NOHANDLECOLLISIONS 限制为特定的目标表或一组用标准通配符 (*) 指定的目标表。
INTEGRATEDPARAMS(parameter_specification)
(Oracle) 支持集成复制。在集成模式下运行复制时,此选项将参数规范发送到数据库入站服务器。使用此命令一次只能发送一个参数规范。要发送多个参数更改,请发出多个 SEND REPLICAT 命令,如以下示例中所示。
SEND REPLICAT repe INTEGRATEDPARAMS (parallelism 4)
SEND REPLICAT repe INTEGRATEDPARAMS (max_sga_size 250)
为了保持处理的连续性,参数更改在事务处理边界处进行。
LOGEND
确认复制进程是否已处理数据源中的所有记录。
REPORT [HANDLECOLLISIONS [table_spec]]
向提取报告文件生成临时统计报告。显示的统计信息取决于 STATOPTIONS 参数与 RESETREPORTSTATS | NORESETREPORTSTATS 选项结合使用时的配置。请参见 STATOPTIONS 。
HANDLECOLLISIONS
显示已为其启用 HANDLECOLLISIONS 的表。
table spec
将输出限制为特定的目标表或一组用标准通配符 (*) 指定的目标表。
RESUME
恢复(激活)被 EVENTACTIONS SUSPEND 事件挂起的进程。进程从其之前的挂起点恢复正常处理。
STATUS
返回线索内的当前位置以及与当前事务处理有关的信息。字段输出为:
-
处理状态(对于协调复制,为每个线程的状态)
-
在线索文件中的位置(对于协调复制,为每个线程的位置)
-
线索序号(对于协调复制,为每个线程的序号)
-
线索中的 RBA
-
线索名称
可能的处理状态消息为:
-
Delaying- 正在等待更多数据 -
Suspended(已挂起)—正在等待恢复 -
Waiting on deferred apply(等待延迟应用)—基于DEFERAPPLYINTERVAL参数推迟处理。 -
Processing data- 处理数据 -
Skipping current transaction- 使用了带有SKIPTRANSACTION的START REPLICAT。 -
使用了
Searching for START ATCSNcsn- 带有ATCSN的START REPLICAT。 -
使用了
Searching for START AFTERCSNcsn- 带有AFTERCSN的START REPLICAT。 -
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:指示在成功启动障碍事务处理或复制之后,线程正等待所有线索启动。
可能的协调器线程状态消息为:
-
Waiting for all threads to register:指示正在对所有MAP语句进行语法分析,以确定其中指定的线程 ID。 -
Processing data:指示正在以正常的方式处理的数据。 -
Suspended, waiting to be resumed(已挂起,等待回复):指示已向复制发送带有SUSPEND请求的SEND REPLICAT命令。 -
At EOF(在文件末):指示线索中没有更多要处理的数据。 -
Waiting to register MAP statistics:指示复制进程正在收集要发送到报告文件的处理统计信息。
STOP
正常停止复制。此命令应用于整个复制,不能用于特定的复制线程。
THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])
仅为协调复制的指定线程发出命令。您可以使用此选项,也可以将 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 |
打开和关闭跟踪。跟踪功能会将信息捕获到指定文件以发现处理瓶颈。还可以通过复制参数 TRACE 和 TRACE2 来启用跟踪。
如果复制处于协调模式,TRACE 与 THREADS 列表或范围结合使用,则会为当前处于活动状态的每个线程创建一个跟踪文件。每个文件名后面都附加与之关联的线程 ID。当发出 groupname 和 threadID 的 SEND REPLICAT 时(如 SEND REPLICAT fin003 TRACE …),或者用 THREADS 仅指定一个线程时,这种按线程 ID 标识跟踪文件的方法不适用。
如果跟踪发现重大处理瓶颈,请与 Oracle 技术支持联系以获得帮助。
TRACE
捕获分步处理信息。
TRACE2
标识代码段,而不是特定步骤。
DDLINCLUDE | DDLONLY
(仅限复制)启用 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)
以下示例将获取协调复制的线程 3 的滞后时间。
SEND REPLICAT repe, GETLAG
以下示例将仅针对协调复制的线程 1 启用跟踪。在本例中,仅跟踪一个线程,因此跟踪文件没有 threadID 扩展名。文件名为 trace.trc。
SEND REPLICAT repe, TRACE THREADS(1) FILE ./dirrpt/trace.trc
以下示例将针对协调复制的线程 1、2 和 3 启用跟踪。假设所有线程都处于活动状态,则跟踪会生成文件 trace001、trace002 和 trace003。
SEND REPLICAT repe TRACE THREADS(1-3) FILE ./dirrpt/trace.trc
以下示例将仅针对协调复制的线程 1 启用跟踪。由于此命令是在不使用 THREAD 子句的情况下直接针对线程 1 发出的,因此跟踪文件名为 trace(没有线程 ID 后缀)。
SEND REPLICAT repe TRACE FILE ./dirrpt/trace.trc