StreamSets:Oracle CDC Client

参考

https://www.jianshu.com/p/9c661d9dba86

Oracle CDC Client 预备知识

       在使用OCC Origin之前,请完成以下任务:
(1)启用LogMiner
(2)为数据库或表启用补充日志记录

(3)创建具有所需角色和权限的用户帐户
(4)若要在redo log中使用字典,请提取Log Miner字典
(5)安装Oracle JDBC driver

任务1:启用LogMiner

       LogMiner提供了用于汇总数据库活动的redo log。origin利用这些日志来生成记录。
       LogMiner需要在ARCHIVELOG模式下启用归档。要确定数据库的状态并启用LogMiner,请使用以下步骤:
(1)作为具有DBA特权的用户登录数据库
(2)检查数据库日志记录模式:

select log_mode from v$database;

如果返回ARCHIVELOG,跳到任务2.
如果返回NOARCHIVELOG,继续以下步骤:
(3)关闭数据库:

shutdown immediate;

(4)启动、挂载数据库

startup mount;

(5)配置启用存档、打开数据库

alter database archivelog;
alter database open;

任务2:为数据库或表启用补充日志记录

       要从重做日志检索数据,LogMiner需要数据库或表的补充日志记录。
       对于要使用的每个表,在表级别上至少启用主键或“标识键”日志记录。使用标识键日志记录,记录只包括主键和更改的字段。
       由于Oracle已知的问题,要为表启用补充日志记录,必须首先为数据库启用最小补充日志记录。
       要在origin生成的记录中包含所有字段,请在表或数据库级别启用完整的补充日志记录。完整的补充日志记录提供了来自所有列的数据,包括未更改数据以及主键和已更改列的数据。

(1)要验证是否为数据库启用了补充日志记录,请运行以下命令:

SELECT supplemental_log_data_min, supplemental_log_data_pk, supplemental_log_data_all FROM v$database;

如果都返回YES,则跳到任务3;

(2)启用标识键或完整补充日志记录。

启用标识键日志记录
       可以为数据库中的单个表或所有表启用标识键日志记录:

  • 单个表
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
ALTER TABLE <schema name>.<table name> ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
  • 所有表
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;

启用完整的补充日志记录
       可以为数据库中的单个表或所有表启用完整的补充日志记录.

  • 单个表
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
ALTER TABLE <schema name>.<table name> ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
  • 所有表
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;

(3)提交变更:

ALTER SYSTEM SWITCH LOGFILE;

任务3:创建用户账号

       创建一个与OCC Origin一起使用的用户帐户。可以根据所使用的Oracle版本以不同的方式创建帐户。

Oracle 12c multitenant databases
1.作为具有DBA特权的用户登录数据库。
2.创建常用用户帐号:

ALTER SESSION SET CONTAINER=cdb$root;
CREATE USER <user name> IDENTIFIED BY <password> CONTAINER=all;
GRANT create session, alter session, set container, select any dictionary, logmining, execute_catalog_role TO <username> CONTAINER=all;
ALTER SESSION SET CONTAINER=<pdb>;
GRANT select on <db>.<table> TO <user name>;

Oracle 12c standard databases
1.作为具有DBA特权的用户登录数据库。
2.创建常用用户帐号:

CREATE USER <user name> IDENTIFIED BY <password>;
GRANT create session, alter session, select any dictionary, logmining, execute_catalog_role TO <user name>;
GRANT select on <db>.<table> TO <user name>;

Oracle 11g databases
1.作为具有DBA特权的用户登录数据库。
2.创建常用用户帐号:

CREATE USER <user name> IDENTIFIED BY <password>;
GRANT create session, alter session, execute_catalog_role, select any dictionary, select any transaction, select any table to <user name>;
GRANT select on v$logmnr_parameters to <user name>;
GRANT select on v$logmnr_logs to <user name>;
GRANT select on v$archived_log to <user name>;
GRANT select on <db>.<table> TO <user name>;

任务4:抽取Log Miner Dictionary(Redo Logs)

       当使用redo logs作为字典源时,必须在启动pipeline之前将Log Miner字典提取到redo logs。定期重复此步骤,以确保包含字典的redo logs仍然可用。
       Oracle建议只在非高峰时间提取字典,因为提取会消耗数据库资源。
       要提取Oracle 11g或12c数据库的字典,请运行以下命令:

EXECUTE DBMS_LOGMNR_D.BUILD(OPTIONS=> DBMS_LOGMNR_D.STORE_IN_REDO_LOGS);

       要提取Oracle 12c多租户数据库的字典,请运行以下命令:

ALTER SESSION SET CONTAINER=cdb$root;
EXECUTE DBMS_LOGMNR_D.BUILD(OPTIONS=> DBMS_LOGMNR_D.STORE_IN_REDO_LOGS);

任务5:安装Driver

       OCC Origin通过JDBC连接到Oracle。除非安装了所需的驱动程序,否则无法访问数据库。



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值