OGG常用命令(四)–EXTRACT(下)

1、KILL EXTRACT

用于KILL EXTRACT终止以常规或PASSIVE模式运行的Extract进程。仅当无法使用该命令正常停止进程时,才使用此STOP EXTRACT命令。Manager进程将不会尝试重新启动已终止的Extract进程。

语法:
KILL EXTRACT group_name

group_name
提取组的名称或用于指定多个组的通配符()。例如, T杀死所有组名以T开头的Extract进程。

2、LAG EXTRACT

使用LAG EXTRACT来确定提取和数据源之间的真正的滞后时间。LAG EXTRACT计算延迟时间要比INFO EXTRACT与提取程序直接通信而不是读取路径中的检查点位置更精确。

对于数据提取,延迟是数据提取(基于系统时钟)处理记录的时间与数据源中该记录的时间戳之间的差(以秒为单位)。

如果启用了心跳功能,则可以查看相关的延迟。

语法:
LAG EXTRACT
[, group_name]
[, GLOBAL]

group_name
提取组或通配符()的名称,用于指定多个组。例如,T确定名称以T开头的所有Extract组的延迟时间。

GLOBAL
在GG_LAGS视图中显示滞后。

举例:

GGSCI (oracle11g as ogg@orcl) 32> LAG EXTRACT extkafka

Sending GETLAG request to EXTRACT EXTKAFKA ...
Last record lag 11 seconds.
At EOF, no more records to process

3、REGISTER EXTRACT

对于Oracle数据库,用于REGISTER EXTRACT向Oracle数据库注册主Extract组以:

启用集成拍摄模式

指定用于从多租户容器数据库中集成提取的选项

启用经典捕获模式下的提取以与Oracle Recovery Manager一起使用以保留恢复所需的存档日志

REGISTER EXTRACT 对数据泵提取无效。

要从数据库中注销提取组,请使用UNREGISTER EXTRACT 命令。

语法:
经典模式:REGISTER EXTRACT group_name LOGRETENTION
集成模式:
REGISTER EXTRACT group-name>
( LOGRETENTION | DATABASE
  ( [ CONTAINER container-list |
ADD   CONTAINER container-list |
DROP  CONTAINER container-list ] 
[ SCN   scn   ] 
[ SHARE ( AUTOMATIC | group-name | NONE ) ] 
[ [NO]OPTIMIZED ] 
)
)
Container-list是用逗号分隔的PDB名称列表,例如 (pdb1, pdb2);或通配符的PDB名称,例如(pdb or pdb?);或两者兼有(cdb1_pdb1, pdb)。支持的通配符为?和*。

该OPTIMIZED选项改善了提取快速启动。默认值为NOOPTIMIZED。该OPTIMIZED选项仅影响上游非多租户配置。

group_name
要注册的提取组的名称。不要使用通配符。

LOGRETENTION
仅适用于经典摘录。使经典模式下的提取组能够与Oracle Recovery Manager(RMAN)一起使用,以保留提取恢复所需的日志。LOGRETENTION如果将“提取”组配置为集成捕获,则将忽略。

REGISTER EXTRACT根据当前数据库SCN,从发布之日起保留日志。日志保留功能LOGRETENTION由TRANLOGOPTIONS参数选项 控制。

在使用REGISTER EXTRACT with 之前,请使用特权LOGRETENTION发出DBLOGIN命令。

DATABASE [
CONTAINER (container[, ...]) |
ADD CONTAINER (container[, ...]) |
DROP CONTAINER (container[, ...])
]
如果没有选项,则DATABASE可以从非CDB数据库为Extract组启用集成捕获。在这种模式下,Extract与数据库日志挖掘服务器集成,以逻辑更改记录(LCR)的形式接收更改数据。提取不读取重做日志。提取执行捕获处理,转换和其他要求。DML过滤由日志挖掘服务器执行。

在REGISTER EXTRACT与配合 DATABASE使用之前,请对所有抽取使用DBLOGIN命令,并具有使用该dbms_goldengate_auth.grant_admin_privilege过程授予的特权 。如果您具有下游配置,那么还必须发出MININGDBLOGIN命令。如果您正在注册的源数据库是CDB数据库,而Extract将获取数据,则 grant_admin_privilege必须使用 CONTAINER=>'ALL'参数调用。

使用完后REGISTER EXTRACT,ADD EXTRACT与INTEGRATED TRANLOG选项一起使用以创建相同名称的提取组。

CONTAINER (container[, ...])
将注册应用于多租户容器数据库(CDB)的一个或多个可插拔数据库(容器)的列表。将一个或多个可插拔数据库指定为括号内的逗号分隔列表,例如:CONTAINER (pdb1, pdb2, pdb3)。如果列出可插拔数据库,则它们必须存在于数据库中。您也可以使用通配符和来指定可插入数据库 ?。例如, CONTAINER (pdb)。

ADD CONTAINER (container[, ...])
将指定的可插入数据库添加到现有的Extract捕获配置中。将一个或多个可插入数据库指定为括号内的逗号分隔列表,或使用通配符 *和?。例如:ADD CONTAINER (pdb1, pdb2, pdb3)。发出REGISTER EXTRACT此选项之前,请停止“提取”组。

对于Oracle,不支持在现有的Extract上的特定SCN上添加容器。

DROP CONTAINER (container[, ...])
从现有的Extract捕获配置中删除指定的可插入数据库。将一个或多个可插入数据库指定为括号内的逗号分隔列表,或使用通配符 *和?。例如,DROP CONTAINER (pdb1, pdb2, pdb3)。

直到启动Extract并完全从删除的可插拔数据库中读取提交的事务(大于Extract Checkpoint SCN)后,寄存器丢弃容器才会完全发生。然后解压缩将容器完全掉下,然后关闭并显示一条消息。

发出REGISTER EXTRACT此选项之前,请停止“提取”组。

SCN system_change_number
注册提取以从过去的特定系统更改号(SCN)开始捕获。如果没有此选项,则捕获将从REGISTER EXTRACT发出的时间开始 。指定的SCN必须与日志文件中词典构建操作的开始SCN相对应。

单独使用时,SCN值是日志文件中字典构建操作的开始SCN。

与SHARE AUTOMATIC或 结合使用时SHARE extract_name,指定的SCN是 start_scn捕获会话的,并具有以下限制:

应该小于或等于当前的SCN。

应该大于现有捕获的最小值(第一个SCN)。

{SHARE [
AUTOMATIC |
extract |
NONE]}
注册Extract,以使用创建克隆的指定SCN返回到现有LogMiner数据字典构建。这样可以利用现有的字典构建更快地创建摘录。

SHARE 不能在CDB上使用。

AUTOMATIC
从现有的最近捕获中克隆。如果找不到合适的克隆候选者,则创建一个新的版本。

extract
从与指定摘录关联的捕获会话中克隆。如果这不可能,则发生错误,寄存器未完成。

NONE
不克隆或创建新的版本;这是默认值。

在下游配置中,SHARE子句 必须以与结合使用SCN子句提取注册时。

4、START EXTRACT

使用START EXTRACT启动提取过程。要确认Extract已启动,请使用INFO EXTRACT或STATUS EXTRACT命令。提取可以从其正常起点(从初始或当前检查点)开始,也可以从数据源中用户指定的备用位置开始。

正常起点
如果没有选项,则START EXTRACT指示主提取和数据泵提取在数据源中以下位置之一开始处理以维护数据完整性:
正常终止或异常终止之后:在上一次运行中数据源中的第一个未处理事务处,以当前读取检查点表示。
创建组后的首次启动:在ADD EXTRACT命令指定的起点。

备用起点
使用ATCSN或来启动Extract之前AFTERCSN,必须使用以下命令之一建立物理起始位置:
ADD EXTRACT与BEGIN选项集到的时间戳比与指定的CSN值较早ATCSN或AFTERCSN。开始提取之前,包含时间戳的事务日志及其后的每个日志必须在系统上可用。
ALTER EXTRACT到包含用ATCSN或指定的CSN的日志的序号AFTERCSN。

语法:
START EXTRACT group_name [ATCSN csn | AFTERCSN csn]

group_name
提取组或通配符()的名称,用于指定多个组。例如,T启动所有名称以T开头的Extract组。

ATCSN csn | AFTERCSN csn
指定备用起点。

ATCSN
指示Extract将其起点定位在具有指定CSN的第一个事务上。数据源中CSN值小于指定值的所有事务都将被跳过。

AFTERCSN
指示Extract将其起点定位在具有指定CSN的交易之后的第一个交易的开始处。数据源中CSN值小于或等于指定值的任何事务都将被跳过。

csn
指定CSN值。以对数据库有效的格式输入CSN值。如果格式无效,则提取异常结束并向报告文件中写入一条消息。要确定初始加载完成后要提供的CSN,请使用加载实用程序完成时使用的序列标识符。否则,请遵循初始加载过程中的说明来确定何时启动提取。

以下是使用ATCSN和时要遵守的其他准则AFTERCSN:

CSN存储在文件头中,以便下游进程可以使用。

找到用CSN指定的记录后,提取将发出检查点。该检查点确保后续的Extract启动从请求的位置开始,而不是从请求的CSN之前的位置开始。

你必须建立在事务日志或线索的提取物的物理起点用ADD EXTRACT或ALTER EXTRACT使用前ATCSN或AFTERCSN。在将Extract定位到数据源中的物理位置之后,这些选项将用作附加过滤器。

举例:

GGSCI (oracle11g as ogg@orcl) 28> start extkafka

Sending START request to MANAGER ...
EXTRACT EXTKAFKA starting

5、STATS EXTRACT

使用STATS EXTRACT到一个或多个提取组显示统计信息。输出包括Oracle GoldenGate配置中包含的DML和DDL操作。

要获得每秒最准确的处理数量,请执行以下操作。
发出STATS EXTRACT带有RESET选项的命令 。
发出STATS EXTRACT REPORTRATE命令。该 LATEST STATISTICS字段显示每秒的操作。

语法:
STATS EXTRACT group_name
[, statistic [DAILY. | .HOURLY | LATEST | RESET]
[, TABLE [container. | catalog.]schema.table]
[, TOTALSONLY [container. | catalog.]schema.table]
[, REPORTCDR]
[, REPORTCHARCONV]
[, REPORTFETCH | NOREPORTFETCH]
[, REPORTRATE time_units]

group_name
提取组或通配符()的名称,用于指定多个组。例如,T返回名称以T开头的所有Extract组的统计信息。

statistic
要显示的统计信息。可以通过用逗号分隔每个统计信息来指定多个统计信息,例如STATS EXTRACT finance, TOTAL, DAILY.

TOTAL
显示自流程启动以来的总计。

DAILY
显示自当天开始以来的总计。

HOURLY
显示自当前小时开始以来的总计。

LATEST
显示自上一条RESET命令以来的总数 。

RESET
重置LATEST统计字段中的计数器 。

TABLE [container. | catalog.]schema.table_name
仅显示指定表或使用通配符()指定的一组表的统计信息。表名或通配符规范必须完全由两部分或三部分名称限定,例如hr.emp或..

TOTALSONLY [container. | catalog.]schema.table_name
汇总指定表或用通配符()指定的一组表的统计信息。表名或通配符规范必须完全由两部分或三部分名称限定,例如hr.emp或..

REPORTCDR
显示冲突检测和解决的统计信息。统计数据包括:

总CDR冲突

CDR解析成功

CDR解析失败

CDRINSERTROWEXISTS冲突

CDRUPDATEROWEXISTS冲突

CDRDELROWEXISTS冲突

CDRDELROWMISSING冲突

REPORTCHARCONV
仅当TABLE参数具有 TARGET子句并执行字符集转换时使用。以下统计信息将添加到 STATS输出中:

Total column character set conversion failure:当前“提取”运行中验证或转换失败的次数。

Total column data truncation:由于字符集转换的结果,列数据在当前的Extract中被截断的次数

REPORTFETCH | NOREPORTFETCH
控制输出中是否包括有关获取操作的统计信息。默认值为NOREPORTFETCH。的输出REPORTFETCH如下:

row fetch attempts:提取无法从事务日志获取值时,提取尝试从数据库中获取列值的次数。

fetch failed:row fetch attempts失败的数量 。

按键获取行:对Oracle有效。使用主键进行的行读取尝试次数。默认值是按行ID提取。

REPORTRATE time_units
根据处理速率而不是绝对值显示统计信息。

6、STATUS EXTRACT

使用STATUS EXTRACT来确定提取物是否正在运行。状态为RUNNING表示以下情况之一:
活动:运行和处理(或能够处理)数据。这是进程启动后的正常状态。
已暂停:进程正在运行,但由于某个EVENTACTIONS SUSPEND操作而已暂停 。在挂起状态下,该过程未处于活动状态,无法处理任何数据,但是当前运行的状态得以保留,并且可以通过发出RESUME命令来继续 执行。INFO 命令中的RBA反映了挂起操作之前的最后一个检查点位置。要确定状态是活动还是暂停,请发出SEND EXTRACT带有STATUS 选项的 命令。

语法:
STATUS EXTRACT group_name [, TASKS | ALLPROCESSES] [UPGRADE | DOWNGRADE]

group_name
提取组或通配符()的名称,用于指定多个组。例如,T返回名称以T开头的所有Extract组的状态。

TASKS
仅显示提取任务的状态。默认情况下,除非您指定单个“提取”组(不带通配符),否则不会显示任务。

ALLPROCESSES
显示所有提取组的状态,包括任务。

UPGRADE | DOWNGRADE
仅对Oracle数据库有效。如果摘录无法升级或降级,则会显示原因。此选项不允许使用通配的摘录名称。使用此命令之前,请发出DBLOGIN命令。

UPGRADE
显示摘录是否可以从经典捕获模式升级到集成捕获模式。

DOWNGRADE
显示摘录是否可以从集成捕获模式降级为经典捕获模式。

举例:

GGSCI (oracle11g as ogg@orcl) 37> status EXTRACT extkafka
EXTRACT EXTKAFKA: RUNNING

7、STOP EXTRACT

用于STOP EXTRACT优雅地停止提取。该命令保留下次启动Extract时的同步状态,并确保Manager不会自动启动Extract。

如果在发出时有打开的,长期运行的事务STOP EXTRACT,则可能会提示您重新启动Extract时该事务所需的最旧的事务日志文件。您可以使用 SEND EXTRACT选项SHOWTRANS来查看这些事务的详细信息和数据,然后根据需要使用 SKIPTRANS或FORCETRANS选项跳过该事务或强制将其作为已提交的事务写入到跟踪中,请参阅 SEND EXTRACT。

语法:
STOP EXTRACT group_name [!]

group_name
提取组或通配符()的名称,用于指定多个组。例如,T停止名称以T开头的组的所有提取过程。

!
(感叹号)立即停止提取。事务中止,过程终止。

举例:

GGSCI (oracle11g as ogg@orcl) 38> stop EXTRACT extkafka

Sending STOP request to EXTRACT EXTKAFKA ...
Request processed.

Related Posts