ORACLE 捕捉变化数据实例 CDC (oracle change data capture)

1.修改java_pool_size
  ALTER SYSTEM SET JAVA_POOL_SIZE = 5000000;
2. 创建表空间
  CREATE TABLESPACE TS_CDCPUB DATAFILE 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/CDCPUBDATA.DBF' SIZE 100M;
3. 创建查询用户
   CREATE USER cdcpub IDENTIFIED BY cdcpub DEFAULT TABLESPACE ts_cdcpub
   QUOTA UNLIMITED ON SYSTEM
   QUOTA UNLIMITED ON SYSAUX;
   GRANT CREATE SESSION TO cdcpub;
   GRANT CREATE TABLE TO cdcpub;
   GRANT CREATE TABLESPACE TO cdcpub;
   GRANT UNLIMITED TABLESPACE TO cdcpub;
   GRANT SELECT_CATALOG_ROLE TO cdcpub;
   GRANT EXECUTE_CATALOG_ROLE TO cdcpub;
  
   GRANT ALL ON SCOTT.EMP TO cdcpub;

   GRANT EXECUTE ON DBMS_CDC_PUBLISH TO cdcpub;

4. 创建变更集
    begin
      dbms_cdc_publish.create_change_set(
         change_set_name=>'DEMO_DAILY',
         description=> 'Change Set for emp_demo table',
         change_source_name=>'SYNC_SOURCE');
   end;
   /

5. 创建变更表
   begin
      dbms_cdc_publish.create_change_table(
           owner            =>'cdcpub',
           change_table_name=>'emp_demo_changes',
           change_set_name  => 'DEMO_DAILY',
           source_schema    =>'SCOTT',
           source_table     =>'EMP',
           column_type_list =>'EMPNO NUMBER,  ENAME VARCHAR2(10),
                               SAL NUMBER(7,2)',
           capture_values=> 'BOTH',
           RS_ID=> 'Y',
           ROW_ID=>'Y',
           USER_ID=>'Y',
           TIMESTAMP=>'N',
           OBJECT_ID=>'N',
           SOURCE_COLMAP=>'Y',
           TARGET_COLMAP=>'Y',
           OPTIONS_STRING => ' TABLESPACE TS_CDCPUB pctfree 5 pctused 95' );
   end;
   /
   grant select on cdcpub.emp_demo_changes to cdcpub;
6. 实验

    登陆:conn scott/tiger@orcl
   变更表:insert + update
   insert into emp(empno,ename,sal) values ('9037','yyq',5000);
   update emp set sal = sal * 1.2 where empno = '7369';
   登陆: conn cdcpub/cdcpub@orcl
   查询变化的数据:从变更表中
   select * from emp_demo_changes;
   结果:

OPERATION$CSCN$COMMIT_TIMESTAMP$RSID$ROW_ID$USERNAME$SOURCE_COLMAP$TARGET_COLMAP$EMPNOENAMESAL
2814749767106554000-1-116AAAMfPAAEAAAAAdAAASYSFE0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FE0F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009037yyq5000.00
UU2814749767106554000-1-115AAAMfPAAEAAAAAgAAASCOTT400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FE01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007369SMITH800.00
UN2814749767106554000-1-115AAAMfPAAEAAAAAgAAASCOTT400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FE09000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007369SMITH960.00

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值