1 .一种元数据变更捕获方法,其特征在于,具有一下步骤:
S1、在分布式数据库执行CDC语句并带有元数据捕获功能;
S2、用户执行DDL操作,数据库服务语法解析SQL生成语法树,再通过语法树生成执行计
划;
S3、数据库将执行计划下发给各个执行节点执行,计划执行完成后,将元数据的变更记
录更新至系统表中,监控器将这些元数据变更记录推送到changefeed中;
S4、判断changefeed发送模式是否为DDL发送模式,如果是,则直接发送DDL;如不是,等
待发送模式切换为DDL发送模式后方可发出。
2.根据权利要求1所述的一种元数据变更捕获方法,其特征在于,在步骤S1中,创建CDC
的具体操作包括:
S101、创建CDC语句;
S102、CDC开启对元数据变更捕获后,会在数据库内部打开对记录表结构变更的系统表
的监控。
3 .根据权利要求2所述的一种元数据变更捕获方法,其特征在于,在步骤S2中,生成执
行计划后,首先查询操作对象的CDC注册信息,判断是否创建了CDC。
4 .根据权利要求3所述的一种元数据变更捕获方法,其特征在于,在步骤S2中,判断是
否创建CDC的步骤为:
a)、如果没有创建CDC,则生成正常的执行计划;
b)、如果发现已经创建了CDC,则根据CDC注册信息生成CDC处理器,并将执行计划和CDC
处理器封装为执行计划的派生对象。
5 .根据权利要求4所述的一种元数据变更捕获方法,其特征在于,在步骤S3中,进一步
包括:
S301、如果存在CDC处理器,且打开了对元数据的变更捕获,则将元数据的变更记录推
送至changefeed中:
S302、如果不存在CDC处理器,或没打开对元数据的变更捕获,事务直接提交。
6 .根据权利要求5所述的一种元数据变更捕获方法,其特征在于,在步骤S4中,进一步
包括:
S401、如果当前changefeed的发送模式为DDL发送模式,则发送DDL到指定位置,并读取
临时文件中的DML,随后更新changfeed状态为DML发送模式。
S402、如果当前changefeed的发送模式为其他模式,则需要阻塞DDL发送进程,等待发
送模式被其他进程更新为DDL发送模式。
7 .根据权利要求6所述的一种元数据变更捕获方法,其特征在于,changefeed发送DML
需要满足以下条件:
(1)当前发送模式为DML发送模式;
(2)lastDDLSendTime小于ModificationTime;
如果不满足上诉条件,则DML不会直接发送而是记录到临时文件中,等待DDL发送完毕
后读取临时文件中的DML内容。
8.根据权利要求7所述的一种元数据变更捕获方法,其特征在于,changefeed的模式切
换需满足以下条件:
权 利 要 求 书
1/2 页
2
相关文档
评论