Loading
0

InfoSphere Change Data Capture

InfoSphere CDC 复制原理

InfoSphere CDC 能够对包括数据仓库,主数据管理,BI,SOA 等在内的应用整合及升级项目提供高速、可靠、低延迟的数据复制方案,而且对生产系统低影响。由于只复制变化的数据,减少了处理的开销和占用的带宽。复制可以是持续的也可以是周期性的。

图 1 CDC 架构图:

sphere cdc

CDC 的关键组件主要的组成部分包括:

Access Server(AS):用户配置和监控 CDC 引擎的安全管理工具,支持图形化界面(V6.5 之后集成在 MC 中)及命令行。当用户登录 Management Console,就会连接到 AS。在客户端关闭 AS,不会影响源服务器到目标服务器到数据复制。

Management Console(MC):CDC 的图形化界面工具,允许用户配置、监控和管理在多个不同服务器上到数据复制,可以在客户端上指定复制的参数,初始化刷新和镜像。MC 也允许用户监控复制操作、延迟、事件消息和其他源和目标 datastore 支持的统计数据。

源端引擎:读取源端数据库的日志文件捕获变更数据,经过行列过滤,字符编码转换后由 TCP/IP 发送给目标端。

目标端引擎:接收源端发送的变更数据,经过数值转换,字符编码转换,冲突检测后将变更数据应用到目标数据库。

Metadata:存储 CDC 实例的配置信息,包括数据库连接信息,预定信息以及表的映射信息等,同时记录当前的复制进行状态

源和目标 Datastore(数据存储):存储的是数据文件和数据复制需要的 InfoSphere CDC 实例信息。每个 datastore 代表了一个用户要连接的数据库,存储要复制的表。

多数的 CDC 引擎既可作为源端引擎捕获变化数据又可作为目标端引擎接收变化数据并将其应用于指定的数据库;通常,CDC 引擎称为 CDC 实例,如果从 AS/MC 的角度,一个 CDC 引擎也被称作一个 CDC 数据存储。

图 2 CDC 处理数据的流向图

spere cdc

1、当 CDC 处于复制状态的时候,CDC 源端引擎中的 log reader 组件将会不停的从源端数据库日志中捕获所有要复制表的新变化的日志。

2、而 CDC 源端引擎中的 log parser 组件则将这些变化日志中跟 CDC 需要复制的表相关的日志找出来并根据其所属的 transaction ID 放在不同的 transaction queue 中。Transaction queue 是 log parser 在内存在分配的一片区域,专门存放没有提交的跟 CDC 复制表相关的事务信息。每个 Transaction queue 会写在以“txnq”做前缀的文件里,此文件在“/tmp”下可以找到。如果 txnq 开头的文件大小大于 0 字节,说明在处理非常大的还没有提交的事务。当订阅停止后,transaction queue 里的内容会存放在 pointbase 容器里。

3、当 CDC 读到 commit 触发一个事务结束时,该 transaction queue 将其内容提交给 Staging Store 后会释放相应的内存空间。Staging Store 是 CDC 分配的存放已提交的事务信息的内存区域,目标端引擎会自动从 Staging Store 中抽取出其当前要复制的事务信息,一旦数据复制到里目标端,该记录就会从 Staging Store 中删除。

其中 1, 2, 3 是数据在源端引擎的流向。

4、复制表的事务信息通过 TCP/IP 传送至目标端。可以利用类似 sniffer 的工具来查看持续的在网络上的数据流。也可以通过 MC 的“activity monitor”来监控复制的数据情况。

5、目标段将抽取过来的事务信息经过必要的转换重新组装成 SQL 语句。

6、将组装好的 SQL 语句应用于目标数据库,并更新 bookmark 信息(这个 bookmark 信息是为了保证数据的一致性,当由于某种原因复制中断后,在下次 CDC 重启后,目标端的 bookmark 信息首先被传到源端,从而源端从最后一个成功应用到目标数据库的日志开始复制),整个数据复制过程完成。

其中 5, 6 是数据在目标引擎的流向。


InfoSphere Change Data Capture 提供:

低影响数据捕获

  • 基于日志的技术可近乎实时地复制关键业务型数据事件而不影响系统性能。
  • 仅捕获变更的数据并将其从发布者传输到订户系统。
  • 基于内容,动态地将数据路由到由一个或多个应用程序使用的各种消息队列。
  • 无需数据登台或网关技术。
  • 在高度安全的环境中交付敏感数据,并使其仅由授权接收方访问。

灵活简单的数据交付

  • 提供一个 GUI,帮助支持更快速地数据集成流程部署。
  • 提供监控功能,加速故障诊断与排除。
  • 支持单向、双向、多到一和一到多的数据交付。
  • 使用实时审计功能来提供源表的变更历史记录。

与 IBM 和其他系统集成

  • 与 IBM InfoSphere DataStage® 集成,提供数据订阅源,进而抽取、变换和装入 (ETL) 流程并保持事务完整性。基于定义的数据规则更快地进行变更数据有效性检查。
  • 将元数据集成到 IBM InfoSphere Metadata Workbench,使诸如影响力分析和数据沿袭的功能扩展到其余信息管理基础架构。
  • 将数据事务打包到 XML 文档并交付给 IBM WebSphere® MQ 之类的消息传递中间件,进而支持面向服务架构 (SOA)。
  • 现在作为 IBM InfoSphere Data Replication for DB2 for z/OS® 的组成部分,它与 IBM InfoSphere Change Data Capture for z/OS 和 IBM InfoSphere Replication Server 集成,针对分布式和 IBM System z® 环境提供广泛的数据库和操作系统支持。
  • 支持 IBM DB2®、IBM i、IBM Informix®、Oracle、Sybase、Microsoft SQL Server、IBM IMS™ 和 Teradata 数据库。