转载

ODI-双库间单表CDC增量同步(含代理配置)

环境:

源数据库source,用户source_u,表source_t

源数据库target,用户target_u,表target_t

 

1. 将源端数据初始化到目标端

见上篇文章《odi-双库间单表全量同步》。

 

源端数据:

SQL> select * from sou_u.sou_t;

 

        ID NAME

---------- --------------------------------------------------

         1 Tom

         2 Jimmy

         3 Li Ming

 

目标端数据:

SQL> select * from tar_u.tar_t;

 

        ID NAME

---------- --------------------------------------------------

         1 Tom

         2 Jimmy

         3 Li Ming

 

2. 添加CDC Simple模式

2.1在反向的模型中启用日志记录,选择对应的知识模块-----JKM Oracle Simple

ODI-双库间单表CDC增量同步(含代理配置) 

 

2.2添加CDC

找到模型中的SOURCE_T,右击---->"已更改数据捕获"----->添加CDC

ODI-双库间单表CDC增量同步(含代理配置) 

注:被添加cdc的表一定是含有主键的表,否则会报错

 

2.3订阅订户

找到模型中的SOURCE_T,右击---->"已更改数据捕获"----->订户----->订阅;

ODI-双库间单表CDC增量同步(含代理配置) 

ODI-双库间单表CDC增量同步(含代理配置) 

  ODI-双库间单表CDC增量同步(含代理配置)

之后打开模型中的表查看如下: 

ODI-双库间单表CDC增量同步(含代理配置) 

ODI-双库间单表CDC增量同步(含代理配置) 

 

2.4启动日志

找到模型中的SOURCE_T,右击---->"已更改数据捕获"----->启动日志

ODI-双库间单表CDC增量同步(含代理配置) 

 

3. 配置接口增量同步

打开初始化所建的接口,需要在仅已进行日记记录的数据上打勾

选中“仅已进行日记记录的数据”则会出现一个小漏斗。点击小漏斗(即过滤器),在属性监察器中修改筛选条件为:JRN_SUBSCRIBER=’subscriber_0527’此处的subscriber_0527就是我们前面添加的订阅者。

ODI-双库间单表CDC增量同步(含代理配置) 

 

 

保存接口。

 

4. 数据验证

源端执行:

SQL> insert into sou_u.sou_t values (4,'CDC test');

 

1 row created.

 

SQL> commit;

 

Commit complete.

 

SQL> insert into sou_u.sou_t values (0,'CDC test');

 

1 row created.

 

ODI-双库间单表CDC增量同步(含代理配置) 

 

执行接口。

ODI-双库间单表CDC增量同步(含代理配置) 

 

执行后目标端数据库:

SQL> select * from target_t;

 

        ID NAME

---------- --------------------------------------------------

         1 Tom

         2 Jimmy

         3 Li Ming

         4 CDC test

         0 CDC test

数据同步成功。

 

 

5. 配置agent,并定时执行

配置物理代理

ODI-双库间单表CDC增量同步(含代理配置) 

 

配置逻辑代理

ODI-双库间单表CDC增量同步(含代理配置) 

 

接口添加需要调用的代理

ODI-双库间单表CDC增量同步(含代理配置) 

 

右键插入调试

ODI-双库间单表CDC增量同步(含代理配置) 

ODI-双库间单表CDC增量同步(含代理配置) 

ODI-双库间单表CDC增量同步(含代理配置) 

 

环境变量

ODI-双库间单表CDC增量同步(含代理配置) 

 

计算密码串

[oracle@odi ~]$ cd $ODI_HOME/bin

[oracle@odi bin]$ ./encode.sh oracle

hZyaUOa70Ujh5Ln2a7y4iy

 

修改配置文件

[oracle@odi bin]$ vi odiparams.sh

# Repository Connection Information

if [ -z "${ODI_INSTANCE_HOME}" ]; then

ODI_MASTER_DRIVER=oracle.jdbc.OracleDriver

ODI_MASTER_URL=jdbc:oracle:thin:@172.25.4.4:1521:orcl

ODI_MASTER_USER=ODI_MASTER

ODI_MASTER_ENCODED_PASS=hZyaUOa70Ujh5Ln2a7y4iy

ODI_SUPERVISOR=SUPERVISOR

ODI_SUPERVISOR_ENCODED_PASS=hZyaUOa70Ujh5Ln2a7y4iy

 

# DO NOT EDIT BELOW THIS LINE !

# ----------------------------------------------------------------------------

 

[oracle@odi bin]$ vi agentcreate.properties

# Use / as path seperator to  specify path in  Unix as well as Windows.

ORACLE_ODI_HOME=Oracle_Home Directory

INSTANCE_HOME=INSTANCE_HOME Directory

COMPONENT_TYPE=odiagent

COMPONENT_NAME=agent_0527

PORTNO=20910

JAVA_HOME=JAVA_HOME

ORACLE_OPMN_HOME=OPMN_HOME Directory

JMXPORTNO=20811

PROXY_PORT=98767

MASTER_REPO_EXTERNAL_ID=12345

 

ODI_MASTER_DRIVER=oracle.jdbc.OracleDriver

ODI_MASTER_URL="jdbc:oracle:thin:@172.25.4.4:1521:orcl"

ODI_MASTER_USER=ODI_MASTER

ODI_MASTER_ENCODED_PASS=hZyaUOa70Ujh5Ln2a7y4iy

 

ODI_SUPERVISOR=SUPERVISOR

ODI_SUPERVISOR_ENCODED_PASS=hZyaUOa70Ujh5Ln2a7y4iy

 

--启动脚本

./agent.sh -NAME=agent_0527

ODI-双库间单表CDC增量同步(含代理配置) 

--停上上脚本

agentstop.sh -NAME=agent_0527

 

 

正文到此结束
Loading...