SEND EXTRACT

使用 SEND EXTRACT 可以与正在运行的提取进程通信。只要提取准备好接受来自用户的命令,就立即处理要求。

语法

SEND EXTRACT group_name, {
BR {BRINTERVAL interval |
   BRSTART |
   BRSTOP |
   BRCHECKPOINT {IMMEDIATE | IN n{M|H} | AT yyyy-mm-dd hh:mm[:ss]]}} |
BR BRFSOPTION { MS_SYNC | MS_ASYNC }
BR BRSTATS
BR BRSTATUS
CACHEMGR {CACHESTATS {ALL | MINIMAL | SUPERPOOL | CURRENTONLY | POOLS | POOL n | QUEUES} | CACHEQUEUES | CACHEVMUSAGE} |
FORCESTOP |
FORCETRANS transaction_ID [FORCE] |
GETLAG |
GETPARAMINFO [parameter_name] [FILE output_file] |
GETTCPSTATS |
LOGEND |
LOGSTATS |
REPORT |
RESUME |
ROLLOVER |
SHOWTRANS [transaction_ID] [COUNT n]
    [DURATION duration unit] [TABULAR]
    [FILE file_name [DETAIL]] [ALL]|
SKIPTRANS transaction_ID [FORCE] |
STATUS |
STOP |
TRACE[2] file_name |
TRACE[2] OFF |
TRACE OFF file_name |
TRACEINIT |
TRANLOGOPTIONS INTEGRATEDPARAMS(parameter_specification) |
TRANLOGOPTIONS {TRANLOGOPTIONS {PURGEORPHANEDTRANSACTIONS | NOPURGEORPHANEDTRANSACTIONS} |
TRANLOGOPTIONS TRANSCLEANUPFREQUENCY minutes |
VAMMESSAGE 'Teradata_command' |
VAMMESSAGE {'ARSTATS' | 'INCLUDELIST [filter]' | 'FILELIST [filter]'| 'EXCLUDELIST [filter]'} |
VAMMESSAGE 'OPENTRANS'
}

group_name

提取组的名称,也可使用通配符 ( ) 指定多个组。例如,T 向组名以 T 开头的所有提取进程发送命令。如果提取未运行,将返回错误。

BR {BRINTERVAL interval BRSTART BRSTOP  
BRCHECKPOINT {IMMEDIATE IN n {H M} AT yyyy-mm-dd[ hh:mm[:ss]]}}

发送影响提取的有界恢复模式的命令。

BRINTERVAL interval

设置有界恢复检查点之间的时间。有效值从 20 分钟到 96 小时指定为 M(分钟)或 H(小时),例如 20M 或 2H。默认间隔为 4 小时。

BRSTART

启动有界恢复。此命令只应在 Oracle 技术支持的指导下使用。

BRSTOP

对运行和恢复停止有界恢复。使用此选项之前,请咨询 Oracle 技术支持。大多数情况下,当有界恢复出现问题时,它会自行关闭。

BRCHECKPOINT {IMMEDIATE IN n{H M} AT yyyy-mm-dd[ hh:mm[:ss]]}}

设置供设置有界恢复检查点的点。IMMEDIATE 表示在发出 SEND EXTRACT 时立即发出检查点。IN 表示从发出 SEND EXTRACT 起指定的小时数或分钟数后发出检查点。AT 完全在指定的时间发出检查点。

BR BRFSOPTION {MS_SYNC | MS_ASYNC}

在有界恢复中同步/异步写入映射的数据。

MS_SYNC

在有界恢复中同步写入映射的数据,以完成 I/O 数据完整性。

MS_ASYNC

启动或排队在有界恢复中写入映射的数据以提供服务。

BR BRSTATS

提供有关每个对象池(由 BR 保存)的详细信息。其中包括以下详细信息:

BR BRSTATUS

返回提取的有界恢复模式的状态。

此命令显示以下内容:

CACHESTATS {ALL MINIMAL SUPERPOOL CURRENTONLY POOLS POOL n QUEUES}

CACHESTATS 返回虚拟内存使用量和文件高速缓存的统计信息。

ALL

返回所有 COM 统计信息,这是默认选项。

MINIMAL

返回精简(最小)版本的 COM 统计信息,而 CACHEALL 返回所有统计信息。

SUPERPOOL

超级池统计信息。返回有关所有对象池的统计信息。

CURRENTONLY

仅返回运行时的统计信息。

POOLS

返回所有对象池的统计信息。

POOL n

仅返回指定对象池的统计信息。

QUEUES

仅返回队列的统计信息。

CACHEVMUSAGE

返回虚拟内存使用量的统计信息。

FORCESTOP

强制提取停止,绕过任何通知。此命令将立即停止进程。

FORCETRANS transaction_ID ] [FORCE]

对 Db2 LUW、Db2 IBM、MySQL、Oracle 和 SQL Server 有效。

强制提取将通过事务处理 ID 号指定的事务处理作为提交的事务处理写入线索。FORCETRANS 不将事务处理提交到源数据库。此命令仅强制将现有数据写入线索,以便复制对其进行处理(使用隐式提交)。您可以对其他事务处理重复使用 FORCETRANS,执行顺序为其使用时间。请注意,如果事务处理被源用户应用程序回滚,则强制将事务处理提交到线索(进而提交到目标数据库)可能会导致出现数据差异。

使用 FORCETRANS 后,如果要发出 SEND EXTRACT 与 FORCESTOP,请至少等待五分钟。否则,事务处理将仍存在。

如果在提取启动后立即使用 FORCETRANS,您可能会收到错误消息,要求您等待,然后再重试命令。这意味着,提取尚未处理任何其他事务处理。处理了其他事务处理后,您就能够强制将事务处理写入线索。

transaction_ID

事务处理的 ID。使用 SHOWTRANS 或从提取运行时消息获取事务处理 ID 号。提取会忽略在发出此命令后添加到事务处理的任何数据。除非使用 FORCE,否则必须回答一个确认提示。要使用 FORCETRANS,指定的事务处理必须使用 SHOWTRANS 显示的事务列表中最古老的事务处理。

FORCE

对 Oracle 和 SQL Server 有效。对 MySQL 无效。

使用 FORCE 可以绕过确认提示。

GETLAG

确定提取和数据源之间的真实滞后时间。返回与 LAG EXTRACT 相同的结果。

GETPARAMINFO [parameter_name] [FILE output_file]

使用 GETPARAMINFO 可以查询正在运行的实例(包括提取、复制和管理器)的运行时参数值。您可以查询单个参数或所有参数,然后将输出发送到控制台或文本文件。

parameter_name

默认行为是显示使用的所有参数,即曾按应用程序、其他参数及其当前值查询的参数。如果指定特定参数,则输出将按相应名称进行筛选。

FILE output_file

输出重定向到的文本文件的名称。

GETTCPSTATS

显示有关提取与目标系统之间的网络活动的统计信息。这些统计信息包括:

RMTHOST 和 RMTHOSTOPTIONS 的 TCPBUFSIZE 选项控制用于未压缩数据的 TCP 缓冲区的大小。如果启用了压缩,实际进入网络的量将小于此大小。GETTCPSTATS 显示压缩后的吞吐量。

LOGEND

确认提取是否已处理数据源中的所有记录。

LOGSTATS

仅对 Oracle 有效。

指示提取发出有关与处理来自 Oracle 重做日志文件的数据相关的统计信息报告。提取使用异步日志读进程(预读提取正在处理的当前记录),这样,无需对日志文件执行额外的 I/O 即可获取数据。通过一系列读取/写入队列来完成处理。生成器线程对数据进行语法分析,与此同时,读进程线程从日志文件读取其他数据。因此,在统计信息中使用术语“预读”的原因。

这些统计信息如下:

REPORT

向提取报告文件生成临时统计报告。显示的统计信息取决于 STATOPTIONS 参数与 RESETREPORTSTATS | NORESETREPORTSTATS 选项结合使用时的配置。

RESUME

恢复(激活)被 EVENTACTIONS SUSPEND 事件挂起的进程。进程从其之前的挂起点恢复正常处理。

ROLLOVER

使提取在重新启动时以递增方式转到线索中的下一个文件。例如,如果当前文件为 ET000002,则执行该命令后,当前文件将为 ET000003。线索可以从 000001 一直递增至 999999,然后序号从 000000 重新开始。

SHOWTRANS [transaction_ID] [COUNT n] [DURATION duration unit] [TABULAR] | [FILE file_name [DETAIL]] [ALL]

对 Db2 IBM、Db2 LUW、Db2 z/OS、MySQL、Oracle 和 SQL Server 有效。

显示有关未完成事务处理的信息。SHOWTRANS 显示以下任意内容,具体取决于数据库类型:

不带选项,SHOWTRANS 显示将融入可用缓冲区的所有未结事务处理。但是,对于未完成的活动事务处理,此命令有时不显示输出用户名,因为在事务处理日志的开头记录中不提供用户名。

请参见 SHOWTRANS 的样例输出示例。要进一步控制输出,请参见以下选项。

transaction_ID

使命令输出限于特定事务处理。

COUNT n

使输出限于指定数量的未完成事务处理(从最旧的事务处理开始)。有效值为 1 到 1000。

DURATION duration unit

使输出限于未处理时间超过指定时间的事务处理,其中:

duration 是以整数表示的时间长度。

unit 是以下表示 seconds、minutes、hours 或 days 的项之一:

S|SEC|SECS|SECOND|SECONDS
M|MIN|MINS|MINUTE|MINUTES
H|HOUR|HOURS
D|DAY|DAYS

TABULAR

仅对 Oracle 有效。

以表格格式生成输出,类似于 SQL*Plus 的默认表打印输出。默认值为每行一个字段。

FILE file_name [DETAIL]

仅对 Oracle 和 SQL Server 有效。对 MySQL 无效。

强制提取将事务处理信息写入指定文件。控制台上没有输出。

对于 Oracle,可以通过使用带有 DETAIL 的 FILE 写入数据的十六分之一和纯字符转储。这将整个事务处理从内存转储到文件。查看这些数据可帮助您确定是跳过事务处理还是强制将其写入线索。

注:基本详细信息会以 `WARNLONGTRANS 指定的间隔自动写入报告文件

                                        CHECKINTERVAL` parameter.
                                        {: .infoboxnote}

[ALL]

此选项允许显示 COM 中的所有事务处理。在检测 COM 中剩余的已提交事务处理相关的潜在问题时,此选项很有用。

SKIPTRANS transaction_ID [FORCE]

对 Db2 LUW、Db2 IBM、MySQL、Oracle 和 SQL Server 有效。

强制提取跳过指定的事务处理,进而从内存中删除任何当前数据,并忽略任何后续数据。除非使用 FORCE,否则必须回答一个确认提示。使用 SKIPTRANS 后,如果要发出 SEND EXTRACT 与 FORCESTOP,请至少等待五分钟。否则,事务处理将仍存在。请注意,如果跳过事务处理,可能会导致目标数据库中丢失数据。

注:要使用 SKIPTRANS,指定的事务处理必须是使用 SHOWTRANS 显示的事务处理列表中最古老的事务处理。您可以对其他事务处理重复执行该命令,执行顺序为其存在时间。

transaction_ID

事务处理 ID 号。使用 SHOWTRANS 或从提取运行时消息获取 ID 号。

FORCE

对 Oracle 和 SQL Server 有效。对 MySQL 无效。

使用 FORCE 可以绕过确认是否要跳过事务处理的提示。

STATUS

返回处理状态的详细状态,包括当前位置和活动。Current status 行上的可能处理状态消息如下:

除了上述状态外,在异常终止事件后的提取恢复期间,会显示以下状态记号。当提取在恢复过程中持续更改其日志读取位置时,您可以跟踪进度。

STOP

停止提取。如果存在任何长时间运行的事务处理(基于 WARNLONGTRANS 参数),将显示以下消息:

Sending STOP request to EXTRACT EXTE...
There are open, long-running transactions. Before you stop Extract, make the archives containing data for those transactions available for when Extract restarts. To force Extract to stop, use the SEND EXTRACT group, FORCESTOP command.
Oldest redo log file necessary to restart Extract is:
Redo Thread 1, Redo Log Sequence Number 150, SCN 31248005, RBA
2912272.
TRACE[2] {file_name OFF}

打开和关闭跟踪。跟踪功能会将信息捕获到指定文件以发现处理瓶颈。如果跟踪发现重大处理瓶颈,请与 Oracle 技术支持联系以获得帮助。

TRACE

捕获分步处理信息。

TRACE2

标识代码段,而不是特定步骤。

file_name

指定向其写入跟踪信息的文件的名称。如果发出带有 TRACE 的 SEND EXTRACT 时,已在运行跟踪,则将关闭现有跟踪文件,然后恢复跟踪并向使用 file_name 指定的新文件恢复跟踪信息。

OFF

关闭跟踪。

TRACE OFF file_name

仅对指定的跟踪文件关闭跟踪。

TRACEINIT

将跟踪统计信息重置回 0,然后重新开始累积统计信息。使用此选项可以跟踪处理操作的当前行为,而不是历史行为。

TRANLOGOPTIONS INTEGRATEDPARAMS(parameter_specification)

(Oracle) 支持集成提取。在集成模式下运行提取时,将参数规范发送到数据库入站服务器。使用此命令一次只能发送一个参数规范。您可以发送多个参数更改,即发送多个 SEND EXTRACT 命令。

为了保持处理的连续性,参数更改在事务处理边界处进行。

TRANLOGOPTIONS {PURGEORPHANEDTRANSACTIONS | NOPURGEORPHANEDTRANSACTIONS}

对 Oracle RAC 有效。允许或禁止清除在节点失败并且提取无法捕获回滚时生成的孤立事务处理。

TRANLOGOPTIONS TRANSCLEANUPFREQUENCY minutes

对 Oracle RAC 有效。指定间隔(分钟),Oracle GoldenGate 按此时间间隔通过扫描来查找孤立事务处理,然后重新扫描以确认并将其删除。有效值介于 1 到 43200 分钟之间。默认值为 10 分钟。

VAMMESSAGE ‘Teradata_command’ VAMMESSAGE { 'ARSTATS' | 'INCLUDELIST [filter]' | 'EXCLUDELIST [filter]' }

向提取使用的捕获 API 发送命令。

Teradata 命令可以为以下任何命令:

‘control:terminate’

停止复制组。在 Teradata 中删除或变更复制组之前需要。

‘control:suspend’

挂起复制组。可以在升级 Oracle GoldenGate 时使用。

‘control:resume’

恢复已挂起的复制组。

‘control:copy database.table’

将表从源数据库复制到目标数据库。

'ARSTATS'

显示 TMF 审计读取统计信息。

'FILELIST [filter]'

显示提取在审计线索中遇到的数据记录的表列表,这些记录匹配 TABLE 参数中的选择标准。filter 选项允许使用通配符模式来筛选返回的表列表。也可以按相同方式使用 GETFILELIST。

'EXCLUDELIST [filter]'

显示提取在审计线索中遇到的数据记录的表列表,这些记录不匹配 TABLE 参数中的选择标准。filter 选项允许使用通配符模式来筛选返回的表列表。隐式排除的某些系统表始终存在于排除表列表中。

SQL Server 命令可以为以下命令:

VAMMESSAGE 'OPENTRANS'

输出未完成事务处理的列表,其中包含它们的事务处理 ID、开始时间、第一个 LSN 以及它们包含的操作数。

示例


SEND EXTRACT exte, ROLLOVER

SEND EXTRACT exte, STOP

SEND EXTRACT exte, VAMMESSAGE 'control:suspend'

SEND EXTRACT exte, TRANLOGOPTIONS TRANSCLEANUPFREQUENCY 20

以下示例说明了 SKIPTRANS。首先是以下 SHOWCH 输出,输出中显示线程 2 位于 Read Checkpoint #3 处。

INFO exte SHOWCH
Read Checkpoint #3
Oracle RAC Redo Log
Startup Checkpoint (starting position in the data source):
Thread #: 2
Sequence #: 17560
RBA: 65070096
Timestamp: 2011-07-30 20:04:47.000000
SCN: 1461.3499051750 (6278446271206)
Redo File: RAC4REDO/sss11g/onlinelog/group_4.292.716481937

因此,SKIPTRANS 应为:SKIPTRANS xid THREAD 3。


SEND EXTRACT exte, SHOWTRANS COUNT 2

下面显示了 SHOWTRANS. 的缺省输出

Oldest redo log file necessary to restart Extract is:
Redo Thread 1, Redo Log Sequence Number 148, SCN 30816254, RBA 17319664
------------------------------------------------------------
XID                 : 5.15.52582
Items               : 30000
Extract             : JC108XT
Redo Thread         : 1
Start Time          : 2011-01-18:12:51:27
SCN                 : 20634955
Redo Seq            : 103
Redo RBA            : 18616848
Status              : Running
------------------------------------------------------------
XID                 : 7.14.48657
Items               : 30000
Extract             : JC108XT
Redo Thread         : 1
Start Time          : 2011-01-18:12:52:14
SCN                 : 20635145
Redo Seq            : 103
Redo RBA            : 26499088
Status              : Running

以下示例显示应用的 TABULAR 时的 SHOWTRANS 输出(视图右侧被截断)。

XID         Items  Extract   Redo Thread  Start Time
5.15.52582  30000  JC108XT       1            2011-01-18:12:52:14

Dumping transaction memory at 2011-01-21 13:36:54.
Record #1:
Header (140 bytes):
       0: 0000 0A4A 0000 FFFF 0000 0000 0057 6C10        ...J.........Wl.
      16: 02FF 3F50 FF38 7C40 0303 4141 414E 5A77        ..?P.8|@..AAANZw
      32: 4141 4641 4141 4B6F 4941 4144 0041 4141        AAFAAAKoIAAD.AAA
      48: 4E5A 7741 4146 4141 414B 6F49 4141 4400        NZwAAFAAAKoIAAD.
      64: 4141 414E 5A77 414A 2F41 4142 7A31 7741        AAANZwAJ/AABz1wA
      80: 4141 0041 4141 4141 4141 4141 4141 4141        AA.AAAAAAAAAAAAA
      96: 4141 4141 4100 0000 0140 FF08 0003 0000        AAAAA....@......
     112: 0000 0000 0000 70FF 0108 FFFF 0001 4A53        ......p.......JS
     128: 554E 2E54 4355 5354 4D45 5200                  UN.TCUSTMER.

Data (93 bytes):
       0: 2C00 0400 0400 0000 0100 0200 0300 0000        ,...............
      16: 0000 0000 0800 0000 1800 0000 2000 0400        ............ ...
      32: 1000 0600 0200 0000 284A 414E 456C 6C6F        ........(JANEllo
      48: 6352 4F43 4B59 2046 4C59 4552 2049 4E43        cROCKY FLYER INC
      64: 2E44 454E 5645 5220 6E43 4F20 7365 7400        .DENVER nCO set.
      80: 0000 0000 0000 0C00 0000 0000 00              ..............

分析 SHOWTRANS 的概要输出时,应了解它会显示数据库上当前正在运行的所有事务处理(全都将融入预定义的缓冲区)。提取必须跟踪每个未完成事务处理,而不仅仅是包含为 Oracle GoldenGate 配置的表上操作的事务处理。

SHOWTRANS 输出的 Items 字段显示到目前为止 Oracle GoldenGate 捕获的事务处理中的操作数,而不是事务处理中的操作总数。如果配置的表上没有任何操作,或者仅其中一些表上有运行,则 Items 可能为 0 或小于操作总数的任何值。

Start Time 字段显示 Oracle GoldenGate 从交易提取的第一个操作时间戳(不是事务处理本身的实际开始时间)。注:由于一直在增强 Oracle GoldenGate 的增强,命令输出可能略有不同。


以下示例显示如何向提取 exte 发送 BR 请求

SEND exte BR BRSTATUS

输出显示以下信息:

Bounded Recovery Parameter:
Options    = _BRDEBUG _NOBRCLEANUP _BRFORCE_ASSERT
BRINTERVAL = 40SECONDS
BRDIR      = /home/mpopeang/ogg_test/
Bounded Recovery Status: IN PROGRESS
Checkpoint interval = 40SECONDS
Next checkpoint  = 2020-01-15 21:10:47
Last checkpoint# = 49
Last checkpoint  = 2020-01-15 21:10:07
Total objects    = 65
Total size       = 426 MB
Outstanding objects = 58
Outstanding size    = 384 MB
Object pool 1: p12733_extr:RECOVERY: COMPLETE: start:SeqNo: 1580,
RBA: 793460, SCN: 0.664178312(664178312), Timestamp: 2020-01-15 20:35:45.000000,
Thread: 1, end=SeqNo:1580,
RBA: 793460, SCN: 0.664178312 (664178312), Timestamp: 2020-01-15 20:35:45.000000,
Thread: 1, complete=SeqNo: 1580, RBA: 793460,
SCN:0.664178312 (664178312), Timestamp: 2020-01-15 20:35:45.000000, Thread: 1 at 2020-01-15 20:38:52.435830
CHECKPOINT: start=SeqNo: 1637, RBA: 10182312, SCN: 0.669567539 (669567539),
Timestamp: 2020-01-15 21:09:59.000000, Thread: 1, end=SeqNo: 1637,
RBA:10182312, SCN: 0.669567539 (669567539), Timestamp: 2020-01-15 21:09:59.000000,
Thread: 1

以下示例提供有关 BR 保存的每个对象池的详细信息:

SEND exte BR BRSTATS

输出:

Object pool #0, instance: 1, id: p12733_extr

在提取组的整个生存期内的对象大小:

Sizes in bytes            :         POs
  512K      to        1M-1         :         13
    1M      to        2M-1         :         37
    4M      to        8M-1         :        398
    8M      to       16M-1         :          2
   16M      to       32M-1         :         10

在提取组的整个生存期内的对象存在时间:

duration: BCP intervals in the life of the PO
  duration                        0:        230
  duration         30 to         39:        230

截至最近 BCP 的现存对象大小:

Sizes in bytes                   :        POs
          512K      to        1M-1        :          8
            1M      to        2M-1        :         17
            4M      to        8M-1        :        200
           16M      to       32M-1        :          5

截至最近 BCP 的现存对象存在时间:

duration: BCP intervals in the life of the PO
  duration         30 to            39:        230

使用 CACHEMGR 选项的示例

返回所有高速缓存管理器统计信息。

SEND EXTRACT EXT1, CACHEMGR CACHESTATS ALL

返回最少的高速缓存管理器统计信息。

SEND EXTRACT EXT1, CACHEMGR CACHESTATS MINIMAL

返回超级池高速缓存管理器统计信息。

SEND EXTRACT EXT1, CACHEMGR CACHESTATS SUPERPOOL

仅返回当前运行时的高速缓存管理器统计信息。

SEND EXTRACT EXT1, CACHEMGR CACHESTATS CURRENTONLY

返回所有对象池的统计信息。

SEND EXTRACT EXT1, CACHEMGR CACHESTATS POOLS

仅返回指定对象池的统计信息。将 n 替换为对象池编号。

SEND EXTRACT EXT1, CACHEMGR CACHESTATS POOL n

示例:仅返回对象池 1 的统计信息。

SEND EXTRACT EXT1, CACHEMGR CACHESTATS POOL 1

返回队列的统计信息。

SEND EXTRACT EXT1, CACHEMGR CACHESTATS QUEUES

返回高速缓存管理器空闲队列统计信息。

SEND EXTRACT EXT1, CACHEMGR CACHEQUEUES

返回高速缓存虚拟内存使用情况统计信息。

SEND EXTRACT EXT1, CACHEMGR CACHEVMUSAGE