oblogproxy 日志是否有序 & 如何应用日志到另一个集群

有两个问题咨询一下:

第一个问题:从oblogproxy获取的redolog是否已经是有序的?

如果是无序,需要如何处理才能有序应用?

第二个问题:从Canal 到Kafaka里,必须使用JDBC才能将增量redo log应用到另一个OceanBase集群?

或者说不需要Canal,直接使用OBlogClient从OBlogProxy获取到了redo log,然后转成JDBC应用到另一个OceanBase集群?能否更高效率的直接将redo log应用到另一个OceanBase集群?

oblogproxy拿到的是有序的,客户端拉取的时候会指定起始的timestamp,从起点开始顺序获取

1 个赞

oblogclient获取的message是处理过后的一个数据结构,使用canal可以将它转成CanalEntry来对接其他的canal工具,比如canal的client adapter。直接在自己的应用里使用oblogclient获取message,进行解析后同步到其他地方也是可以的。

应用也可以拿到数据,使用JDBC再发送到其它的数据库,当然也可以是OceanBase。也可以做其它业务处理。

1 个赞

第一个问题补充一下,输出的事务是按分布式事务的提交顺序输出,事务内行数据变更可以通过参数控制的到稳定的输出顺序

第二个问题:拿到OB内事务变更数据可以通过canal/oblogclient,也可以通过liboblog的API(c++)接口拿数据;至于如何写入到另一个OB集群,canal/oblogclient/liboblog已经提供了变更数据了,使用方法你们自己定。数据应用到另一个OB集群更高效的方法是物理备份恢复(实时归档,周期性备份,按需恢复)