1 .一种PostgreSQL数据库的DDL同步方法,其特征在于,包括:
在源端PostgreSQL数据库中创建辅助表;其中,所述辅助表用于记录数据库中产生的
DDL语句;
基于所述源端PostgreSQL数据库的事件触发器机制,捕获执行的DDL语句和DDL生效路
径,并将捕获的DDL语句和DDL生效路径插入所述辅助表中,且生成相应DML操作的日志信
息;
解析所述日志信息,并基于所述日志信息中的DML操作的操作对象是否为所述辅助表,
将所述DML操作转换为DDL语句或DML语句,且将转换的DDL语句或DML语句封装为相应语句
对应的同步对象;
将所述同步对象发送至目标端数据同步服务;其中,所述目标端数据同步服务用于反
解析所述同步对象,并在目标数据库执行反解析结果,完成所述PostgreSQL数据库的DML和
DDL同步。
2.根据权利要求1所述的方法,其特征在于,在所述基于所述源端PostgreSQL数据库的
事件触发器机制,捕获执行的DDL语句和DDL生效路径,并将捕获的DDL语句和DDL生效路径
插入所述辅助表中之前,所述方法还包括:
将预设so文件配置于所述源端PostgreSQL数据库的lib目录下;其中,所述预设so文件
中包含DDL语句捕获函数,所述DDL语句捕获函数用于实现所述捕获执行的DDL语句的功能;
创建事件触发器;其中,所述事件触发器的触发条件为所述源端PostgreSQL数据库执
行完毕DDL语句,且所述事件触发器用于实现所述捕获执行的DDL语句和DDL生效路径,并将
捕获的DDL语句和DDL生效路径插入所述辅助表中的功能。
3 .根据权利要求2所述的方法,其特征在于,所述事件触发器通过如下方式实现所述捕
获执行的DDL语句和DDL生效路径,并将捕获的DDL语句和DDL生效路径插入所述辅助表中的
功能:
调用所述DDL语句捕获函数,以实现所述捕获执行的DDL语句的功能;
调用路径获取函数,以实现捕获所述DDL生效路径的功能;
调用插入函数,以实现所述将捕获的DDL语句和DDL生效路径插入所述辅助表中的功
能。
4 .根据权利要求2所述的方法,其特征在于,在所述创建事件触发器之前,所述方法还
包括:
将所述源端PostgreSQL数据库的日志级别由默认的最低级别修改为中等级别或最高
级别;其中,所述最低级别对应于记录最少的日志信息,所述最高级别对应于记录最多的日
志信息。
5 .根据权利要求1所述的方法,其特征在于,所述基于所述日志信息中的DML操作的操
作对象是否为所述辅助表,将所述DML操作转换为DDL语句或DML语句,且将转换的DDL语句
或DML语句封装为相应语句对应的同步对象包括:
判断所述日志信息中的DML操作的操作对象是否为所述辅助表;
若是 ,则将所述DML 操作转换为DDL语 句 ,并 将转换的 DDL语 句封 装为 DDL对应的
Statement对象;
若否 ,则将所述DML操作转换 为 DML语 句 ,并 将转换的 DML语 句封装为DML对应的
权 利 要 求 书
1/2 页
2
评论