• [笔记]CDC(Change Data Capture) 数据变化捕获,实现原理 方案


    整理了下对CDC的理解,以及基于Oracle的实现方式。备案如下

    CDC(Change Data Capture) 数据变化捕获
    实现方式原理缺点优点典型方案
    时间戳/版本号/修改状态列根据更新时间戳列,识别数据变化。
    一般是非实时。
    1) 实时性
    2) 不能识别多次更新
    3) 不能记录删除操作
    4) 要改程序
       
    快照通过比较源表和快照表来获得数据变化。1) 实时性
    2) 不能识别多次更新
    3) 需要大量存储空间保存快照
    4) 做数据比较的消耗
       
    触发器创建数据增/删/改的触发器,将变更数据写入临时表。1) 影响数据库性能
    2) 引入一些不可控的影响
     SymmetricDS
    java开源项目
    1)会根据用户的配置自动安装触发器
    2)会定期地再次安装新的触发器和更新原有的触发器(默认情况下,是在每天午夜)
    3)数据库触发器记录的数据变化都在DATA表
    4)变化的数据被插入到DATA表之后,会被分批交给节点处理
    数据库日志绝大多数数据库都会有种日志,记录操作产生的数据变更,用来做多副本同步或者数据恢复。注:得到的是行级更改,如:一条update语句可能修改多行记录。1) 开发难度
      a)没统一标准
      b)格式不公开
    1) 实时性
    2) 通过数据库自身机制实现

    Oracle
      GoldenGate
      LogMiner
      Xstreams

    MySql

      Maxwell
    Debezium

    GoldenGate是直接解析的日志
    Debezium及很多三方方案都是基于LogMiner/Xstreams
    抓取命令通过网络抓包得到发给Oracle数据库的TNS命令包(仅Oracle响应是执行成功的),从中解析得到数据变更操作的语句和参数。1) 存在漏命令包的可能
      a)抓包程序故障
    2) 开发难度

    其他不确定:加密、命令包顺序
    1) 实时性
    2) 不依赖数据库功能
      

    基于 Oracle redo log 实现数据变化捕获
    方式介绍说明
    Oracle提供解析原生日志  
    GoldenGate  
    LogMiner是由一组SQL包和一些动态视图组成,能帮助我们从 redo logs (Online/Offline) 中提取数据。特别是可以分析出所有对于数据库操作的DML和DDL语句。Oracle 8i 开始提供的工具
    后续可能被阉割或砍掉?Vs. Xstreams & OGG
    XStreamsOracle数据库组件和API,能够直接解析出数据库操作的DML和DDL发送给应用程序。需要购买OGG授权
    最初可能是要给OGG用的,但最终OGG是直接解析的 redo log
    三方库/工具OpenLogReplicator
    (c++开源项目)
    是一个转换器,读取 Oracle redo log 并输出成JSON。1) 不支持 Oracle 11.2 之前的版本;
    2) 不保证能捕获100%完整的数据库事务操作
      a) 如果遇到无法解码的 redo log 会立即停止,但用户可以强制跳过无效的日志记录并继续工作;
      b) 有许多安全检查来验证 redo log 的完整性;
    Debezium
    (java开源项目)
    支持多种数据库的数据捕获,但对Oracle 数据库实际是调用  LogMiner or Xstreams 实现的。 
      

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/debug_fan/article/details/121035162

  • 相关阅读:
    Mysql InnoDB引擎下 事务的隔离级别
    Spring 两大核心 IOC 和 AOP
    java 冒泡排序
    MyBatis 传入List集合作为条件查询数据
    fastfusion运行
    数据集
    工具学习
    三维重建
    Scrivener破解
    博客园设置
  • 原文地址:https://www.cnblogs.com/fj365/p/16242376.html
Copyright © 2020-2023  润新知