Navicat不支持一键批量创建多个独立备份计划,必须通过“自动运行→新建批处理作业”逐个添加Backup子任务,每个任务可独立配置路径但共用同一调度计划,且需勾选“不管用户是否登录都要运行”才能稳定执行。
批量创建备份计划必须先建批处理作业
navicat 不支持“一键选多个库 → 直接生成多个独立计划”,所有自动备份都得走 批处理作业 这条路径。你看到的“批量”,本质是把多个 backup 任务塞进同一个作业里,而不是为每个库单独建计划任务。
常见错误是:右键单个数据库 → 点“备份” → 以为勾上“自动备份”就完事了 —— 这只会生成一个手动备份文件,不会触发定时执行。
- 必须通过
自动运行 → 新建批处理作业入口启动 - 在作业窗口中,左侧“可用任务”里双击要备份的数据库(比如
mysql_prod、mysql_log),每双击一次就添加一个Backup子任务 - 每个子任务可单独设置备份路径、是否压缩、是否启用增量 —— 但不能单独设触发时间,整个作业共用一套计划
批处理作业里怎么指定不同数据库的备份路径
每个 Backup 子任务的存储路径是独立配置的,不是全局统一。如果你希望 db_a 备份到 D:ackupmysql_a,而 db_b 备份到 D:ackupmysql_b,就得在添加每个子任务后,逐个点开它编辑。
操作路径:批处理作业窗口 → 左侧已选任务 → 右键对应数据库 → 编辑 → 备份文件 → 浏览。注意这里填的路径必须是绝对路径,且 Navicat 不会自动创建父目录 —— 如果 D:ackupmysql_a 不存在,备份会失败并报错 Cannot create backup file。
- 路径中避免中文和空格,尤其在 Windows 下容易触发编码问题
- 若用网络路径(如
\nasackup),需确保运行 Navicat 的 Windows 用户对该共享有写权限 - Navicat 15+ 支持变量占位符,例如
D:ackup${database_name}_${date:yyyyMMdd}.sql,但仅限于文件名部分,路径本身不支持变量
设置计划时“不管用户是否登录都要运行”必须勾选
这是 Windows 环境下自动备份失败最常被忽略的一点。Navicat 的计划任务底层依赖 Windows Task Scheduler,而默认创建的任务只在用户登录状态下运行。一旦电脑锁屏或无人值守,备份就静默跳过。
正确做法是在 设置计划任务 → 常规 → 安全选项 中,务必勾选 不管用户是否登录都要运行 和 只在用户未登录时运行(后者可选,但前者不可省)。
- 勾选后系统会要求输入当前 Windows 用户密码 —— 这是必须步骤,否则计划无法注册成功
- 如果使用无密码账户,计划将无法保存;Navicat 16 开始对此做了校验提示,但老版本(如 12/15)只报错
Access is denied,不说明原因 - 该设置与 Navicat 是否前台运行无关,后台最小化或关闭主界面都不影响
多个服务器的数据库能否混在一个批处理作业里
可以,但有硬限制:所有数据库必须属于同一类数据库引擎(比如全是 MySQL,或全是 PostgreSQL),且连接必须已在 Navicat 中预先保存并测试通过。
比如你有两台 MySQL 服务器:192.168.1.10:3306 和 192.168.1.11:3306,只要它们在 Navicat 左侧连接列表里都存在,就能一起加进同一个批处理作业。但不能把 MySQL 和 SQL Server 的备份混在一个作业里 —— Navicat 会拒绝添加,或在执行时报错 Unsupported database type。
- 跨引擎混合备份必须拆成多个批处理作业,再用 Windows 任务计划统一调度时间
- 每个作业里的数据库连接名(如
prod_mysql_01)必须唯一,重复会导致执行时覆盖或冲突 - 如果某连接断开或密码过期,整个批处理作业会卡在该任务,后续任务不执行 —— 没有“跳过失败项”选项
自动运行 → 查看日志,且默认只保留最近 7 天。备份是否真成功,得去那里翻 Success 或 Failed 记录,而不是只看文件生成时间。











