前一段时间,面向新一代数据架构的数据库增强引擎 SphereEx-DBPlusEngine 正式发布 1.5.0 版本,新增 CDC 和数据库防火墙两大重磅功能,本篇文章笔者就给大家详细介绍 CDC 功能的实现逻辑和技术细节。
CDC
CDC(Change Data Capture)增量数据捕捉。数据库日志(以 MySQL 为例) binlog 是 MySQL 记录变更数据的"二进制日志",它可以看做是一个消息队列,队列中按顺序保存了 MySQL 中详细的增量变更信息,通过消费队列中的变更条目,下游系统或工具实现了与 MySQL 的实时数据同步。
在实际应用中,CDC主要用于数据同步,数据备份和恢复等方面。通常情况下,CDC都应用于数据流转量较大的场景中,如大规模数据仓库、数据中心、云计算等领域。
01 概述
SphereEx-DBPlusEngine 数据库增强引擎既可以帮助数据库实现单体到分布式转换,又可以实现数据在数据库中的加密存储,进而帮助数据库提升安全性。SphereEx-DBPlusEngine 的 CDC 功能,可以实现对分布式和加密存储等场景下的数据变化的捕捉。加密场景可以通过设置加解密参数,指定明文或密文传输到指定目标,满足不同目标端对数据展现形式的需求。分布式场景支持分布式事务,可以保障源端和目标端分布式事务的一致性。
目前 SphereEx-DBPlusEngine 数据迁移插件所支持的数据库产品为 MySQL、MySQL分支版本、PostgreSQL 和 openGauss,具体版本、环境要求和权限要求如下。
数据库 | 版本支持 | 环境要求 | 权限要求 | |
---|---|---|---|---|
1 | MySQL | 5.1.15 ~ 8.x | my.cnf 配置 log-bin=mysql-bin binlog-format=row binlog-row-image=full --确认命令如下 show variables like '%log_bin%'; show variables like '%binlog%'; |
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO ${username}@${host} --确认命令如下 SHOW GRANTS FOR 'user'; |
2 | Aurora MySQL | 3.02.2 | my.cnf 配置 log-bin=mysql-bin binlog-format=row binlog-row-image=full --确认命令如下 show variables like '%log_bin%'; show variables like '%binlog%'; |
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO ${username}@${host} --确认命令如下 SHOW GRANTS FOR 'user'; |
3 | PostgreSQL | 9.4 或以上版本 | postgresql.conf 配置: wallevel = logical |