目录 

1. 部署PanguSync软件的前提条件(重要)

同步机制类似订阅发布中的合并复制,合并复制要求:

  1. 表拥有主键(复合主键也行)
  2. Insert语句需指定字段,类似insert into table (c1,c2)values(v1,v2)这种形式
  3. 任务运行后,源表会增加C_PanguSyncSourceTimestamp时间戳字段,目标表会增加C_PanguSyncTargetTimestamp字段,这两个字段在业务系统中不要去主动写入值

 

2. 如何部署A B双向同步模式

答:假如A为主节点,B为备节点,先使用truncate语句(不要使用delete)清空B表数据,然后部署B → A的任务,点击运行成功后再来部署A → B的任务,然后点击运行,如果之前有测试过该任务的双向同步,请在A端执行

Mysqlupdate table set C_PanguSyncSourceTimestamp = current_timestamp(6) where C_PanguSyncSourceTimestamp ='2000-01-01 00:00:00.000000'

Sqlserverupdate table set C_PanguSyncSourceTimestamp = sysdatetime() where C_PanguSyncSourceTimestamp ='2000-01-01 00:00:00.000000'

这个时候会先做A → B的全量同步,初始数据全量同步完成后,继续做增量同步,这种模式适用于数据双机热备,仅在固定一个节点写入,另外一个节点做热备份。假如A宕机,则业务可以切换到B,在B进行写入,当A恢复后,宕机期间在B写入的数据可以同步到A。注意该模式仅在固定一个节点写入。如果你要双写,即两个节点业务系统都在写数据,则需要满足以下条件:

  1. 主键非自增
  2. 业务系统不可更新主键值

否则可能会造成两边数据冲突,冲突后,同步软件会根据主键按最新策略进行同步。另外需要注意部署双向任务时,IP需要相互对应,并且两个任务需部署在同一个PanguSync软件进程中。

 

3. 如何部署ABACAD一主多备模式

答:分别添加ABACAD的任务即可。A写入,BCD仅读,如果在BCD写入数据,可能导致数据不一致。

 

4. 如何部署ABCD链式模式

答:分别添加ABBCCD的同步任务,其中ABBC的任务编辑界面【配置项】需要勾选【特殊模式】,如果后面还要接下去,比如D还要同步到E,那么CD任务中也要勾选【特殊模式】,【特殊模式】这个选项的意思是该任务的源写入后是否同步到目标的下游,比如AB中勾选【特殊模式】后,意味着A的写入可以同步到B的下游即C,在链式模式中依然只有A可以写入,BCD仅读,如果BCD写入,可能导致数据不一致

 

5. 如何跳过初始数据直接进行增量同步

答:PanguSync软件不管你初始数据如何,它都会进行一个全量同步,然后再进行增量同步,即如果你两边数据完全一致,PanguSync依然会先进行全量同步,如果你要跳过一开始的全量同步,那么你需要先停止业务系统的写入,防止新数据进来,然后运行任务,当任务开始同步时(信息列跳动时)停止任务,在源端执行 SELECT max(C_PanguSyncSourceTimestamp) from ,查询出最大的时间,如下图所示,

image

然后编辑任务,在where条件处配置 C_PanguSyncSourceTimestamp>'2025-03-28 20:11:28.123579' ,如下图所示

image

最后再启动任务,即可直接进行增量同步了。初始数据删除或更新也是能同步的。

 

6. 如何重新同步某条数据

答:比如A → B任务,A中的某条数据你想重新来一次同步,那么可以在A中执行

Mysqlupdate table set C_PanguSyncSourceTimestamp = current_timestamp(6) where 条件

Sqlserverupdate table set C_PanguSyncSourceTimestamp = sysdatetime() where 条件

 

执行后,在源中满足条件的数据会重新同步一次,注意where条件包含的数据行不要过多,更不能不指定where条件,否则可能会导致同步很长时间,这是要避免的。

 

7. 云数据库部署注意事项

云数据库一般会使用非root账户,当云数据库作为源时,可能会报权限不足。假如源库名称为A,你需要在云平台手动创建后缀为_PanguSync的库,即名称为A_PanguSync,然后把A_PanguSync的所有权限赋予同步用户。

 

8. Sqlserver超出了最大嵌套层数(最大层数为 32)

答:当更新触发器中有更新自身表字段的值时,会造成无限触发,用户需要在自己的触发器中加入判断条件如 if update (字段),如下图所示,

image

或者 if not update (C_PanguSyncSourceTimestamp) 也是可以的

 

9. 如何开机自启动并且自动批量运行任务

  1. 将软件设置为快捷方式,然后Win+R输入shell:startup,将快捷方式拖入该目录
  2. Win+R输入control userpasswords2,取消“要使用本计算机,用户必须输入用户名和密码”
  3. PanguSync软件的Config目录内添加一个名为AutoStart.txt的空文件