/ 数据复制服务 drs/ / / drs增量同步怎样填启动位点
更新时间:2024-11-26 gmt 08:00

drs增量同步怎样填启动位点-九游平台

mysql为源

mysql的单增量同步任务,在“设置同步”页面需要填写启动位点,任务源库日志从位点后开始获取(不含当前启动位点)。

图1 启动位点

当数据库的gtid_mode参数是on的情况下,位点信息由三部分构成:文件名(file)、位置(position)和已执行的global transaction identifiers set(executed_gtid_set),这些值可通过show master status命令获取(如果源库为mysql 5.5版本,则不支持)。填写executed_gtid_set的时候,需要删换其中的换行符再进行填入。

例如,社区版mysql获取信息如下:

根据获取信息,任务的启动位点设置为如下,其中需要填入的executed_gtid_set应为c8cd8ff7-da6f-11ec-a945-00d861ef1161:1-3,f4f9537f-0c8b-11ec-a284-00d861ef116a:1-10820402。

图2 设置启动位点

sqlserver为源

sqlserver的单增量同步任务,在“设置同步”页面需要填写启动位点,任务源库日志从位点后开始获取(不含当前启动位点)。

图3 启动位点

sqlserver增量数据依靠cdc官方能力,启动位点为sqlserver数据库的lsn,可通过select sys.fn_cdc_get_max_lsn(); 查询数据库的当前位点

例如,查询数据库当前lsn位点

图4 查询lsn

根据获取信息,任务的启动位点设置为如下:

图5 设置启动位点

dds为源

dds到mongodb和dds到kafka的同步出云任务,支持设置启动位点,在“设置同步”页面用户可以选填启动位点,同步任务从启动位点开始获取源库增量日志(含当前启动位点)。如果用户没有手动设置启动位点,drs将会自动获取源库最新位点。

图6 设置启动位点

增量同步的启动位点,格式为timestamp:incre(timestamp代表unix时间戳,单位为秒;incre代表当前命令在同一秒内执行的次序)。同步任务从启动位点开始获取源库增量日志(含当前启动位点)。

  • 副本集通过db.getsiblingdb("local").oplog.rs.find({"ts":{$gte:new timestamp(<秒级时间戳>,1)}},{"ts":1}).sort({$natural:1}).limit(1)命令查看源库oplog,查到的结果格式为{ "ts" : timestamp(, ) },转换成timestamp:incre格式即可。
  • 集群无法从mongos上查询oplog,timestamp可以根据需要启动的时间,转换成unix timestamp格式,incre为1。

例如,源库为dds副本集,期望增量开始的秒级时间戳为1721382900(2024-07-19t17:55:00 08:00),通过上述命令去源库查询到对应的结果如下图所示。根据获取信息,任务的启动位点可以设置为:1721382921:554。

图7 oplog查询结果示例

oracle为源

oracle为的单增量同步任务,在“设置同步”页面需要填写启动位点,任务源库日志从位点后开始获取。

图8 抓取启动位点

增量同步的启动位点为源库scn。

可以通过select current_scn from v$database; 获取数据库当前scn

相关文档

网站地图