如何配置Navicat自动备份SQL Server数据库

P粉602998670

P粉602998670

2026-07-30

184人浏览

原创

navicat 不直接执行 sql server 定时备份,真正执行的是 backup database 命令;需在 navicat 中新建并保存 t-sql 查询(以 use master 开头),路径须为 sql server 服务账户有写权限的本地路径,再通过「自动运行」绑定该查询并设置任务计划,异地备份需解决网络路径权限问题。

navicat 本身不直接执行 sql server 的定时备份任务,它只是调度器和界面代理;真正执行备份的是 sql server 的 backup database 命令,必须依赖数据库服务器本地或远程可访问的磁盘路径(或启用 xp_cmdshell 调用系统命令挂载网络路径)。

SQL Server 备份脚本必须用 T-SQL 写在 Navicat 查询中

Navicat 的「自动运行」功能不能直接调用图形化备份向导,必须先新建一个可执行的 T-SQL 查询并保存。常见错误是直接点「SQL Server 备份」按钮生成一次备份,却没把它转成可复用的脚本。

  • 连接目标 SQL Server 实例后,右键数据库 →「查询」→ 新建查询
  • 脚本开头必须加 USE master,否则 BACKUP DATABASE 可能因上下文错位失败
  • 备份路径必须是 SQL Server 服务账户有写权限的位置,例如:'D:ackupmydb_' + CONVERT(VARCHAR(8), GETDATE(), 112) + '.bak'
  • 若要按时间戳命名,CONVERT(VARCHAR, GETDATE(), 108) 返回带冒号的字符串,需用 REPLACE(..., ':', '') 清洗,否则 Windows 文件名非法
  • 务必测试脚本:点击「运行」,确认返回「命令已成功完成」且目标路径下生成了 .bak 文件

Navicat 批处理作业必须绑定已保存的查询文件

「自动运行」不是定时器开关,而是把「已保存的查询」打包成可调度任务。没保存的查询无法加入批作业,这是最常卡住的一步。

  • 写完并测试通过的查询,必须点击「文件」→「保存」,给它起个名字(如 backup_mydb.sql),否则在批作业里找不到
  • 点击顶部「自动运行」→「新建批处理作业」→ 在左侧「可用的工作」中找到刚保存的查询,双击或拖入右侧「已选择的工作」
  • 保存批作业时,Navicat 会提示输入操作系统密码(Windows 登录密码),这是为了以当前用户身份调用 SQL Server 连接——若用 SQL Server 账户登录,此处仍需输 Windows 密码
  • 保存后才出现「设置任务计划」按钮;触发器里选「每天」「每周」等,注意时区按本地系统时间算,不是数据库服务器时间

异地备份必须让 SQL Server 服务能写入网络路径

直接把备份路径写成 '92.168.1.100ackup...' 会失败:SQL Server 服务默认以 NT SERVICEMSSQLSERVER 身份运行,它没有访问网络共享的凭据。

navicat for mysql 破解版
navicat for mysql 破解版

优秀的mysql数据库远程管理工具

下载
  • 方案一(推荐):在 SQL Server 服务器上,用管理员权限运行 net use Z: \192.168.1.100ackup /user:domainuser password,然后在脚本中用 Z:... 路径
  • 方案二:启用 xp_cmdshell(高风险),在备份前执行 EXEC xp_cmdshell 'net use ...',但需 DBA 显式开启,且每次备份都重新映射,不稳定
  • 方案三(最稳):改用 Windows 任务计划 + sqlcmd,绕过 Navicat,把权限控制收归系统层
  • 无论哪种,都要检查 SQL Server 服务账户对目标路径是否有「写入」和「修改」权限,仅「读取」不够

还原时 RESTORE DATABASE 必须显式指定文件路径

从 Navicat 图形化还原界面点「从文件还原」看似简单,但若原库文件路径和目标服务器不一致(比如 C:Program Files...data),还原会报错「无法覆盖现有文件」或「拒绝访问」。

  • 务必勾选「覆盖现有数据库」(WITH REPLACE
  • 点击「生成 SQL」后,手动检查生成的语句中 MOVE 子句:两个逻辑名(xxx_dataxxx_log)是否对应目标服务器上真实存在的 MDF/LDF 路径
  • 如果目标是空实例或 Docker 容器,MDF/LDF 路径很可能不存在,需提前创建目录,或改用 CREATE DATABASE ... FOR ATTACH 方式挂载
  • 还原前建议先断开所有连接:ALTER DATABASE [dbname] SET SINGLE_USER WITH ROLLBACK IMMEDIATE

真正的难点不在 Navicat 点几下,而在于搞清 SQL Server 服务账户的权限边界、网络路径的认证链路、以及还原时文件所有权的继承关系。很多“备份成功但还原失败”的问题,根源都在这些底层细节被跳过了。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

navicat

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
sqlserver和mysql区别
sqlserver和mysql区别

SQL Server和MySQL是两种广泛使用的关系型数据库管理系统。它们具有相似的功能和用途,但在某些方面存在一些显著的区别。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.11

2198

4

数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

2023.06.29

1260

3

如何删除数据库
如何删除数据库

删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。

2023.08.14

2766

10

vb怎么连接数据库
vb怎么连接数据库

在VB中,连接数据库通常使用ADO(ActiveX 数据对象)或 DAO(Data Access Objects)这两个技术来实现:1、引入ADO库;2、创建ADO连接对象;3、配置连接字符串;4、打开连接;5、执行SQL语句;6、处理查询结果;7、关闭连接即可。

2023.08.31

1213

3

MySQL恢复数据库
MySQL恢复数据库

MySQL恢复数据库的方法有使用物理备份恢复、使用逻辑备份恢复、使用二进制日志恢复和使用数据库复制进行恢复等。本专题为大家提供MySQL数据库相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.05

525

5

vb中怎么连接access数据库
vb中怎么连接access数据库

vb中连接access数据库的步骤包括引用必要的命名空间、创建连接字符串、创建连接对象、打开连接、执行SQL语句和关闭连接。本专题为大家提供连接access数据库相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1287

5

数据库对象名无效怎么解决
数据库对象名无效怎么解决

数据库对象名无效解决办法:1、检查使用的对象名是否正确,确保没有拼写错误;2、检查数据库中是否已存在具有相同名称的对象,如果是,请更改对象名为一个不同的名称,然后重新创建;3、确保在连接数据库时使用了正确的用户名、密码和数据库名称;4、尝试重启数据库服务,然后再次尝试创建或使用对象;5、尝试更新驱动程序,然后再次尝试创建或使用对象。

2023.10.16

1266

4

vb连接access数据库的方法
vb连接access数据库的方法

vb连接access数据库方法:1、使用ADO连接,首先导入System.Data.OleDb模块,然后定义一个连接字符串,接着创建一个OleDbConnection对象并使用Open() 方法打开连接;2、使用DAO连接,首先导入 Microsoft.Jet.OLEDB模块,然后定义一个连接字符串,接着创建一个JetConnection对象并使用Open()方法打开连接即可。

2023.10.16

2299

3

vb连接数据库的方法
vb连接数据库的方法

vb连接数据库的方法有使用ADO对象库、使用OLEDB数据提供程序、使用ODBC数据源等。详细介绍:1、使用ADO对象库方法,ADO是一种用于访问数据库的COM组件,可以通过ADO连接数据库并执行SQL语句。可以使用ADODB.Connection对象来建立与数据库的连接,然后使用ADODB.Recordset对象来执行查询和操作数据;2、使用OLEDB数据提供程序方法等等。

2023.10.19

1140

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.4万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 131.8万人学习