cdc管理发布的数据

管理异步变更源
发布者可以启用禁用异步变更集合,当变更集合禁用的时候,就不会继续处理新变更数据了。异步变更源在创建的时候是禁用状态的。
启用发布者:
BEGIN
DBMS_CDC_PUBLISH.ALTER_CHANGE_SET(
change_set_name => ‘PRODUCTS_SET’,
enable_capture => ‘y’); –禁用的话将y变成n即可
END;
/
对异步的hotlog 和autolog变更集合,oracle stream在变更集合被启用的时候开始捕获并应用。
即使禁用了变更集合,如果归档的日志仍然存在,那么就不会丢失数据。
发布者可以指定变更集合在遇到ddl的时候是否自动停止,一些ddl会影响捕捉的进程。
BEGIN
DBMS_CDC_PUBLISH.ALTER_CHANGE_SET(
change_set_name => ‘PRODUCTS_SET’,
stop_on_ddl => ‘y’);
END;
/

在遇到ddl停止捕获的时候,需要移除ddl才能在重启捕获变更集合。
在遇到错误的时候,首先查看alert日志文件,可能会提示下面的错误:
Change Data Capture has encountered error number: 1688 for change set:
CHICAGO_DAILY
Change Data Capture did not process LCR with scn 219337

然后用下面的sql去查看具体的出错原因
SELECT ERROR_MESSAGE FROM DBA_APPLY_ERROR
WHERE APPLY_NAME =
(SELECT APPLY_NAME FROM ALL_CHANGE_SETS WHERE SET_NAME =’CHICAGO_DAILY’);

在修复问题后,可以使用下面的命令尝试修复变更集合
BEGIN
DBMS_CDC_PUBLISH.ALTER_CHANGE_SET(
change_set_name => ‘CHICAGO_DAILY’,
recover_after_error => ‘y’);
END;
/
如果不成功,可以根据提示去继续处理,再次尝试恢复。
在遇到ddl导致变更集合停止的情况下,使用下面的命令移走ddl
BEGIN
DBMS_CDC_PUBLISH.ALTER_CHANGE_SET(
change_set_name => ‘PRODUCTS_SET’,
recover_after_error => ‘y’,
remove_ddl => ‘y’);
END;
/

正在移走ddl后,在启用变更集合。

查看所有的变更表:
SELECT * FROM ALL_SOURCE_TABLES;
select * from CDC_CHANGE_TABLES ;selectfromCDCCHANGESETS ;
查看变更表涉及的字段
select * FROM ALL_PUBLISHED_COLUMNS WHERE SOURCE_SCHEMA_NAME =’WDW’ AND SOURCE_TABLE_NAME = ‘T1’;在cdc_publisher用户下)
SELECT * FROM CDC_CHANGE_COLUMNS$;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值