AI智能总结
石梦飞 OB生态产品团队-数据迁移 Contents目录 01Binlog在MySQL生态中的应用 02BinlogService实现 03BinlogService应用实践 01应用场景 Binlog在MySQL中的应用场景 OceanBaseBinlog初衷 易拓展 易集成 高可靠 基于BinlogService更易构建开放、灵活的数据处理体系 集群化部署,保证数据同步的稳定可靠并支持横向扩展 现有的上下游系统如FlinkCDC、Canal、Otter等系统可以无缝的对接BinlogService OceanBaseBinlog能力 全兼容 高度兼容MySQL原生的binlog管理语法和参数,平滑对接Canal、Flink等多种基于Binlog订阅的工具 低风险 通过异步方式进行数据抓取和传输,提供动态流量控制策略;BinlogService不会对主库造成性能影响 BinlogService提供了集群化部署方式实现服务的高可用,为核心业务的数据流应用提供稳定的架构;支持横向拓展 用户在OceanBase租户管控台即可快速开通和管理Binlog,并对服务的运行和资源使用进行监控;提供完善的SQLAPI可以灵活、高效地管理和使用Binlog服务 BinlogService已在公有云国内及海外站点发布;社区版BinlogService 客户案例 110集群 200+实例 Binlog实例数目前在云服务上已经超过了200个 阿里云、AWS、华为云、腾讯云已经有超过110个集群开通Binlog服务,并切换到生产订阅 60+客户 10+下游工具 目前已经平滑对接和适配了包括Canal、Debezium、Maxwell、DTS、DMS、DRS、Cloudcanal、FinkCDC等近10几款工具和云服务 02架构介绍 BinlogService架构 多实例的GITD一致性保障 引入多实例后出现的问题 1.对于同一个gtid,比如4849646f-4dc7-11ed-85a9-7cd30abc99b4:100,在BS#1和BS#2的binlog文件中对应的实际是不同的事务 2.对于同一gtid范围,比如4849646f-4dc7-11ed-85a9-7cd30abc99b4:100:9999,在BS#1和BS#2的binlog文件中对应的实际是不同的事务序列。 总结来说即同一gtid(集合)在不同binlogserver实例中对应的事务序列不一致。当下游连接基于gtid重连时,如果连接从BS#1断连重连到BS#2,基于gtid(集合)的定位原理,下游会丢失数据。 xid列表示OB吐出的事务id commit version列表示OB吐出的每个事务对应的commit version,具有单调递增但相邻事务可能相同的特性 xid列和commit version列具有可重演的特性,从同一位点拉取事务日志时,吐出的事务序列其xid和commit version都一致 提供监控告警能力 支持prometheus的通用监控告警方案 03应用实践 BinlogService应用场景 SQL审计备份回滚 数据集成与分析 接入步骤和MySQL一致SETexecution.checkpointing.interval= 3s; createtableny_energy_data_source(idbigint,enterprise_idbigint,use_timetimestamp,date_typeint,attribute_idbigint,PRIMARYKEY(`id`)NOTENFORCED)WITH('connector'='mysql-cdc','hostname'=‘xxxx','port'=‘xxxx','username'='logproxy@mysql#ob4x.admin','password'=‘xxxx','database-name'='test_source','table-name'='t1_source'); insertintony_energy_data_targetselect*fromny_energy_data_source;--插入数据insertintotest_source.t1_sourcevalues(1,1000,now(),0,1);insertintotest_source.t1_sourcevalues(2,1000,now(),0,1); SQL审计备份恢复 goInception备份步骤如下: 1.配置备份数据库,并在执行SQL时开启备份功能 2.在执行SQL前记录binlog位置和线程号(逐条执行逐条记录) 3.执行SQL 4.在执行SQL后记录binlog位置和线程号 5.开始备份,解析远程服务器binlog 6.在备份服务器创建备份库 7.创建备份信息表,写入执行信息和binlog位置信息 8.创建备份表 9.逐步解析binlog,并生成回滚语句,写入备份表 谢谢