news 2026/6/23 19:53:24

PanguSync说明书

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PanguSync说明书

PanguSync说明书

目录

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

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

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

4.如何部署A→B、A→C、A→D一主多备模式

5.如何部署A→B→C→D链式模式

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

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

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

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

1.部署PanguSync软件的前提条件

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

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

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

1.部署PanguSync的服务器与目标数据库服务器越近越好,如果网络延迟很大,可能影响同步速度有条件的话,部署PanguSync的服务器和目标云数据库最好处于同一区域VPC内,然后用内网连接。

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

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

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

Mysql:updatetableset C_PanguSyncSourceTimestamp = current_timestamp(6) where C_PanguSyncSourceTimestamp ='2000-01-01 00:00:00.000000'

Sqlserver:updatetableset C_PanguSyncSourceTimestamp = sysdatetime() where C_PanguSyncSourceTimestamp ='2000-01-01 00:00:00.000000'

PostgreSQL:update"table"set"C_PanguSyncSourceTimestamp" = CURRENT_TIMESTAMP where "C_PanguSyncSourceTimestamp" ='2000-01-01 00:00:00.000000'

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

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

4.如何部署A→B、A→C、A→D一主多备模式

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

5.如何部署A→B→C→D链式模式

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

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

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

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

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

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

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

Mysql:update tableset C_PanguSyncSourceTimestamp =current_timestamp(6) where 条件

Sqlserver:update tableset C_PanguSyncSourceTimestamp =sysdatetime() where 条件

PostgreSQLupdate "table" set "C_PanguSyncSourceTimestamp" = CURRENT_TIMESTAMP where 条件

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

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

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

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

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

  1. 将软件设置为快捷方式,然后Win+R输入shell:startup,将快捷方式拖入该目录
  2. Win+R输入control userpasswords2,取消“要使用本计算机,用户必须输入用户名和密码”
  3. 在PanguSync软件的Config目录内添加一个名为AutoStart.txt的空文件
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/20 8:10:27

对比评测:传统vsAI增强的MyBatis-Plus生成效率

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个对比测试项目,分别使用标准MyBatis-Plus Generator和快马平台的AI增强版本生成相同的10个表结构对应的代码。要求统计时间消耗、代码行数、缺陷率等指标&#x…

作者头像 李华
网站建设 2026/6/23 5:39:37

MySQL小白必看:metadata lock问题入门指南

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个交互式学习教程,帮助初学者理解metadata lock。要求:1. 用简单动画展示metadata lock的产生原理;2. 提供可交互的SQL示例让用户体验lock…

作者头像 李华
网站建设 2026/6/23 12:43:51

web前端开发常用工具有哪些?零基础入门到精通,收藏这篇就够了

Web前端是一个新兴职业,市场需求大,薪资待遇高,吸引了很多人加入学习。无论是初学小白亦或是自身前端开发人员,好用的软件工具可以帮助他们更好的工作。下面苏州学码思小编为大家介绍一些常用的web前端开发工具。1、Bootstrap Bo…

作者头像 李华
网站建设 2026/6/22 17:34:35

Mender OTA 嵌入式设备快速部署终极指南

Mender OTA 嵌入式设备快速部署终极指南 【免费下载链接】mender Mender over-the-air software updater client. 项目地址: https://gitcode.com/gh_mirrors/me/mender Mender 作为一款开源的 OTA(Over-The-Air)软件更新管理器,专门为…

作者头像 李华