首批通过分布式安全可靠测评,为关键业务系统打造
obcdc 常见问题
更新时间:2026-04-14 14:16:46
本文介绍 obcdc 的常见的问题和注意事项。
如何判断启动时间戳是否过小
obcdc 支持配置日志回拉时间点,obcdc 会拉取提交时间大于该时间点的日志,这个时间点,称之为“启动时间戳”。
注意事项
- obcdc 支持集群级(多租户)同步,同步整个集群时,需要尽量保证所有机器的时钟同步。否则有可能导致各租户的 GTS 时间相差大,进一步导致 obcdc 因安全位点回退,退出进程。 obcdc 4.x 当前版本推荐一个 obcdc 仅同步一个租户。
- obcdc 目前不支持同步有备租户的集群。
- 只有
fetching_log_mode=direct且meta_data_refresh_mode=data_dict时才能完全离线地消费日志,其他模式组合均需要向 OBServer 节点发送请求,即需要配置 OBServer 节点的入口,包括cluster_url或rootserver_list。
启动时间戳限制
obcdc 在回拉单租户数据时,回拉位点过小时,obcdc 可能无法启动,具体限制参考如下说明:
同步单租户
当
fetching_log_mode=integrated时未开启归档
用户指定的 obcdc 的启动时间戳至少需要大于租户的所有日志流最大的
BEGIN_SCN,该位点可通过在该租户下执行如下 SQL 查询得到。SELECT CEIL(MAX(BEGIN_SCN)/1000) AS START_TS_US FROM oceanbase.GV$OB_LOG_STAT;开启归档
用户指定的 obcdc 的回拉位点至少需要大于下面两者的最小值。
租户的所有日志流最大的
BEGIN_SCN。租户归档开启的时间,即
START_SCN,租户归档开启的时间可以通过在该租户下执行如下SQL查询得到。SELECT CEIL(MAX(START_SCN)/1000) as START_TS_US FROM oceanbase.DBA_OB_ARCHIVELOG;
当
fetching_log_mode=direct时,只支持同步单租户,需要保证 obcdc 的启动时间戳大于归档日志的开启时间点。若使用数据字典模式,需要保证启动时间大于租户数据字典中最小的
snapshot_scn,租户数据字典中最小的snapshot_scn可以通过在该租户下执行如下 SQL 查询得到。SELECT CEIL(MIN(snapshot_scn)/1000) FROM oceanbase.DBA_OB_DATA_DICTIONARY_IN_LOG;说明
您也可在系统租户下指定
tenant_id查询 oceanbase.CDB_OB_DATA_DICTIONARY_IN_LOG 视图。
同步多租户
回拉集群(多个租户)数据时,用户指定的 obcdc 启动时间戳需要保证在该时间戳上每个租户都需要满足上述单租户的条件。