FlinkCDC系列之杂谈: 2.0无法真正做到无侵入

最近有一个项目要求要做一个各家数据源的同步软件,因此开始对CDC这块内容做研究。在各大博客中偶然看到FlinkCDC2.0版本能做到“全程无锁”、“用户无感知”等言论,所以展开了测试。

测试代码采用了这个链接:

FlinkSQL CDC实现同步oracle数据到mysql

FlinkCDC版本号为2.1.2 > 2.0

报的第一个错误为:该用户无法看到v$database这张系统表格。

grant权限之后,报第二个错误,Use: ALTER DATABASE ADD SUPPLEMENTAL LOG DATA。

根据这篇文章的说法,Supplemental Logging enable conditions for CDC for Oracle

Oracle数据库的CDC有几个等级:

  1. 全数据库、全列的日志记录:
--结果应当为yes
--本地数据库为No
select  supplemental_log_data_all  from v$database;
  1. 最低限度的日志记录:
--结果为Yes或者Implicit
--本地数据库为No
select supplemental_log_data_min MIN from v$database;
  1. 表级别的日志记录:
--结果为all_column_logging
--本地数据库新建了这张表后符合条件
select * from dba_log_groups where table_name='STUDENT_INFO' ;

也就是说,oracle数据库要做到2.12版本CDC,真的需要做到该文章作者所做的:

-- 启用日志归档
alter system set db_recovery_file_dest_size = 10G;
alter system set db_recovery_file_dest = '/home/oracle/oracle-data-test' scope=spfile;
shutdown immediate;
startup mount;
alter database archivelog;
alter database open;

-- 检查日志归档是否开启
archive log list;

-- 为捕获的数据库启用补充日志记录,以便数据更改捕获更改的数据库行之前的状态,下面说明了如何在数据库级别进行配置。
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

-- 创建表空间
CREATE TABLESPACE logminer_tbs DATAFILE '/home/oracle/logminer_tbs.dbf' SIZE 25M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

-- 创建用户family绑定表空间LOGMINER_TBS
CREATE USER family IDENTIFIED BY zyhcdc DEFAULT TABLESPACE LOGMINER_TBS QUOTA UNLIMITED ON LOGMINER_TBS;

-- 授予family用户dba的权限
 grant connect,resource,dba to family;

-- 并授予权限
  GRANT CREATE SESSION TO family;
  GRANT SELECT ON V_$DATABASE to family;
  GRANT FLASHBACK ANY TABLE TO family;
  GRANT SELECT ANY TABLE TO family;
  GRANT SELECT_CATALOG_ROLE TO family;
  GRANT EXECUTE_CATALOG_ROLE TO family;
  GRANT SELECT ANY TRANSACTION TO family;
  GRANT EXECUTE ON SYS.DBMS_LOGMNR TO family;
  GRANT SELECT ON V_$LOGMNR_CONTENTS TO family;
  GRANT CREATE TABLE TO family;
  GRANT LOCK ANY TABLE TO family;
  GRANT ALTER ANY TABLE TO family;
  GRANT CREATE SEQUENCE TO family;

  GRANT EXECUTE ON DBMS_LOGMNR TO family;
  GRANT EXECUTE ON DBMS_LOGMNR_D TO family;

  GRANT SELECT ON V_$LOG TO family;
  GRANT SELECT ON V_$LOG_HISTORY TO family;
  GRANT SELECT ON V_$LOGMNR_LOGS TO family;
  GRANT SELECT ON V_$LOGMNR_CONTENTS TO family;
  GRANT SELECT ON V_$LOGMNR_PARAMETERS TO family;
  GRANT SELECT ON V_$LOGFILE TO family;
  GRANT SELECT ON V_$ARCHIVED_LOG TO family;
  GRANT SELECT ON V_$ARCHIVE_DEST_STATUS TO family;
————————————————
版权声明:本文为CSDN博主「雾岛与鲸」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36039236/article/details/124235751

如果以上条件或者权限不满足,则无法开启CDC功能。

猜你喜欢

转载自blog.csdn.net/xiaozoom/article/details/125672911
今日推荐