
# DRS增量同步怎样填启动位点
#### MySQL为源
MySQL的单增量同步任务，在"设置同步"页面需要填写启动位点，任务源库日志从位点后开始获取（不含当前启动位点）。
图1启动位点   
![](https://support.huaweicloud.com/drs_faq/figure/zh-cn_image_0000002063756108.png "点击放大")
当数据库的gtid_mode参数是on的情况下，位点信息由三部分构成：文件名（File）、位置（Position）和已执行的Global Transaction Identifiers Set（Executed_Gtid_Set），这些值可通过show master status命令获取（如果源库为MySQL 5.5版本，则不支持）。填写Executed_Gtid_Set的时候，需要**删换其中的换行符**再进行填入。
例如，社区版MySQL获取信息如下：
![](https://support.huaweicloud.com/drs_faq/figure/zh-cn_image_0000002063597804.png "点击放大")
根据获取信息，任务的启动位点设置为如下，其中需要填入的Executed_Gtid_Set应为c8cd8ff7-da6f-11ec-a945-00d861ef1161:1-3,f4f9537f-0c8b-11ec-a284-00d861ef116a:1-10820402。
图2设置启动位点   
![](https://support.huaweicloud.com/drs_faq/figure/zh-cn_image_0000002099756281.png "点击放大")
#### SQLServer为源
SQLServer的单增量同步任务，在"设置同步"页面需要填写启动位点，任务源库日志从位点后开始获取（不含当前启动位点）。
图3启动位点   
![](https://support.huaweicloud.com/drs_faq/figure/zh-cn_image_0000002100048085.png "点击放大")
SQLServer增量数据依靠CDC官方能力，启动位点为SQLServer数据库的LSN，可通过select sys.fn_cdc_get_max_lsn(); 查询数据库的当前位点
例如，查询数据库当前LSN位点
图4查询lsn   
![](https://support.huaweicloud.com/drs_faq/figure/zh-cn_image_0000002063891182.png "点击放大")
根据获取信息，任务的启动位点设置。
图5设置启动位点   
![](https://support.huaweicloud.com/drs_faq/figure/zh-cn_image_0000002100210557.png "点击放大")
#### DDS为源
DDS到MongoDB和DDS到Kafka的同步出云任务，支持设置启动位点，在"设置同步"页面用户可以选填启动位点，同步任务从启动位点开始获取源库增量日志（含当前启动位点）。如果用户没有手动设置启动位点，DRS将会自动获取源库最新位点。
图6设置启动位点   
![](https://support.huaweicloud.com/drs_faq/figure/zh-cn_image_0000002063990016.png "点击放大")
增量同步的启动位点，格式为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\>, \<inre\>) }，转换成timestamp:incre格式即可。
- 集群无法从mongos上查询oplog，timestamp可以根据需要启动的时间，转换成unix timestamp格式，incre为1。
 
例如，源库为DDS副本集，期望增量开始的秒级时间戳为1721382900（2024-07-19T17:55:00+08:00），通过上述命令去源库查询到对应的结果如下图所示。根据获取信息，任务的启动位点可以设置为：1721382921:554。
图7oplog查询结果示例   
![](https://support.huaweicloud.com/drs_faq/figure/zh-cn_image_0000002100040625.png "点击放大")
#### Oracle为源
Oracle为源的单增量同步任务，在"设置同步"页面需要填写启动位点，任务源库日志从位点后开始获取。
图8抓取启动位点   
![](https://support.huaweicloud.com/drs_faq/figure/zh-cn_image_0000002108769021.png "点击放大")
增量同步的启动位点为源库SCN。
可以通过select current_scn from v$database; 获取数据库当前SCN
![](https://support.huaweicloud.com/drs_faq/figure/zh-cn_image_0000002108763645.png "点击放大")
#### GaussDB为源
GaussDB主备版为源的单增量同步任务，如果在"设置同步"页面填写启动位点，任务会从源库该位点处开始获取日志。
图9指定源库复制槽位点   
![](https://support.huaweicloud.com/drs_faq/figure/zh-cn_image_0000002513197310.png "点击放大")
位点查询方式：GaussDB M兼容模式和其他兼容模式有所不同。
- GaussDB M兼容模式查询位点SQL语句：
  ```
  SELECT *, CONCAT(hex((create_lsn >> 32) & 4294967295), '/', hex(((create_lsn<< 32) >> 32) & 4294967295)) as restart_lsn from pg_catalog.gs_txn_lsn_time ORDER BY create_time DESC LIMIT 20;
  ```
  
- GaussDB其他兼容类型查询位点SQL语句：
  ```
  SELECT *, CONCAT(to_hex((create_lsn::bigint >> 32) & x'ffffffff'::bigint), '/', to_hex((create_lsn::bigint << 32 >> 32) & x'ffffffff'::bigint)) as restart_lsn from pg_catalog.gs_txn_lsn_time ORDER BY create_time DESC LIMIT 20;
  ```
  按照业务实际需要，查询到对应时间点的16进制restart_lsn进行填写指定位点。
  ![](https://support.huaweicloud.com/drs_faq/public_sys-resources/note_3.0-zh-cn.png)
  - 指定复制槽启动位点的数据库版本必须不小于94472，查询版本SQL语句：
    ```
    select working_version_num();
    ```
    
  
  - 填写的lsn位点对应的csn要大于系统表pg_catalog.gs_logical_dictionary中的dictionary_csn_min的值。
    
例如执行如下SQL语句：
```
SELECT *, CONCAT(to_hex((create_lsn::bigint >> 32) & x'ffffffff'::bigint), '/', to_hex((create_lsn::bigint << 32 >> 32) & x'ffffffff'::bigint)) as restart_lsn from gs_txn_lsn_time ORDER BY create_time DESC LIMIT 10;
```
下图中restart_lsn就是页面需要指定启动复制槽位点。
图10执行结果   
![](https://support.huaweicloud.com/drs_faq/figure/zh-cn_image_0000002544878657.png "点击放大")
