navicat premium 的「自动运行」非真定时,仅前台有效;可靠方案必须用系统级调度(如windows任务计划程序)调用navicat.exe执行已导出的.ncx/.nsx同步文件,并确保关闭「保存密码」、统一字符集、勾选「最高权限运行」及「隐藏进度窗口」。

Navicat Premium 的「自动运行」不是真定时,它只在客户端前台运行时才触发;真正可靠的定时同步必须用系统级调度调用命令行工具(navicat.exe 或 navicat)执行已保存的同步任务文件(.ncx 或 .nsx)。
确认你有能用的同步任务入口文件
Navicat Premium 不支持直接把界面上点出来的「数据同步」操作塞进计划里——必须先把它导出为机器可读的配置文件。
- 在 GUI 中完整配置一次源库(生产)→ 目标库(测试)的同步:选表、设映射、勾选项(尤其要关掉「结构 + 数据」比对,改用「仅主键匹配」)
- 点击右上角「保存」或「导出任务」,生成一个
.ncx文件(Premium 15+/16+)或.nsx文件(老版本或跨库场景) - 路径里含空格必须加英文双引号包裹,比如
"C:\Navicat Tasks\prod_to_test.ncx" - 别用「自动运行」面板里拖进去再保存的方式——那种生成的是批处理作业(
.njb),不能被命令行调用
Windows 下用任务计划程序稳定驱动同步
这是目前唯一被验证能 7×24 小时跑起来的方案,但配置稍有疏漏就会静默失败。
- 打开「任务计划程序」→ 创建基本任务 → 命名后选择「每天」或「每周」,起始时间建议设在凌晨低峰期(如 02:00)
- 操作步骤选「启动程序」,程序填:
"C:\Program Files\PremiumSoft\Navicat Premium 16\navicat.exe"(路径以你实际安装为准) - 参数栏填:
--sync "C:\Navicat Tasks\prod_to_test.ncx"(注意两个短横线) - 务必勾选「不管用户是否登录都要运行」和「使用最高权限运行」,否则常见
Failed to load job: Permission denied - 在「常规」页勾选「隐藏进度窗口」,否则后台执行会弹 GUI 卡住
- 建议加日志重定向:
--sync "task.ncx" >> "C:\Navicat Logs\sync.log" 2>&1
同步模式与连接参数不配,会“成功”却没同步
任务显示绿色对勾 ≠ 数据真的过去了。很多问题藏在配置深处,且无报错提示。
- 字符集必须一致:两个连接的「高级」设置里,
Character set都得设成utf8mb4(不是utf8),否则中文变问号或同步中断 - 避免用「逐行比较」:它要求源/目标都有主键或唯一索引,且 10 万行以上就明显卡顿;跨库时字段类型微小差异(如 MySQL
TINYINT(1)vs PostgreSQLBOOLEAN)会导致哈希不等,误判为全量更新 - 「仅主键匹配」最稳:存在则跳过,不存在则插入——适合单向追加,但无法处理更新和删除;若需更新,请提前在两张表加同名
updated_at字段并确保准确写入 - 检查连接里的「使用 SSL」和「超时时间」:生产库若启用了强制 SSL,测试库连接也得开;超时建议调到 300 秒以上,防止大表比对中断
最容易被忽略的是:.ncx/.nsx 文件里如果勾了「保存密码」,命令行执行时大概率报 Failed to load connection。必须回到 Navicat GUI 的连接属性中,取消勾选「保存密码」,改填明文密码(仅限内网可信环境)。这一步没做,整个定时链路就断在第一步。











