SQL Server远程局域网定时备份数据库脚本配置指南

Miles
Miles
发布时间:2026-10-14| 2人浏览过
原创

解决单机备份失效风险的实用方案:将SQL Server数据库定期自动备份至局域网内其他电脑的共享文件夹中。

远程备份的必要性与原理

常规的定时备份若存储于本机,一旦服务器发生硬件损坏或系统崩溃,备份数据也将随之丢失。为了构建高可用的数据保护机制,必须将备份文件异地(即同局域网内的另一台主机)保存。

其实现原理是利用Windows网络共享机制,在数据库中通过系统扩展存储过程模拟“映射网络驱动器”的操作,随后指向该虚拟盘符进行常规的文件写入备份。

前置条件准备

在执行脚本前,需确保满足以下基础环境:

  • 权限要求:执行备份的SQL账户(如sa或特定登录名)对远程共享目录拥有“完全控制”及“写入”权限。
  • 网络连通:源服务器能够ping通目标IP地址,且防火墙已放行相应的共享端口(通常为445 TCP)。
  • 开启功能:数据库实例已启用 xp_cmdshell 扩展存储过程。若默认关闭,需使用 sp_configure 'show advanced options', 1; 配合 reconfigure 开启。

第1步:创建远程映射并生成路径变量

目的是建立一个临时的网络驱动关联,并将动态生成的日期时间存入变量,作为备份文件的标识。

  1. 打开 SQL Server Management Studio (SSMS),新建查询窗口。
  2. 输入以下代码片段,替换占位符参数:
    -- 1. 创建网络映射
    -- Y:代表分配的盘符;\192.168.0.69\sqlbackup是共享路径;引号内为密码;账号格式建议保留前缀
    exec master..xp_cmdshell 'net use Y: \\192.168.0.69\sqlbackup "password" /user:192.168.0.69\account'

    -- 2. 设置带有日期的备份文件名
    declare @filename varchar(200)
    select @filename = 'Y:\DB\' + replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ','-'),':','') + '.bak'

风险提示:上述命令中的密码以明文形式出现。生产环境中建议仅用于测试环境,或在更高安全要求的场景下采用加密证书验证替代简单的共享密码认证。

第2步:执行数据库备份操作

将备份目的地指向刚才创建的动态变量。

  1. 继续在同一查询窗口中添加以下语句,并将 [DB] 修改为目标数据库名称:
    -- 3. 执行实际备份
    backup database [DB] to disk = @filename

第3步:清理并断开网络连接

任务完成后立即断开映射,释放资源并减少安全隐患。

  1. 追加最后一行命令:
    -- 4. 删除/断开网络映射
    exec master..xp_cmdshell 'net use Y: /delete'

结合SQL Server代理实现自动化

手动运行脚本容易遗忘,推荐配置为自动执行的作业:

  1. 进入 SSMS 左侧对象资源管理器,展开 SQL Server代理 → 作业。
  2. 右键选择 新建作业,在“常规”页填写名称。
  3. 在 步骤 页,添加新步骤,类型选 Transact-SQL 脚本(TSQL),将上述全套代码粘贴进去。
  4. 在 调度 页,定义触发频率(例如每天凌晨 2 点,或每小时一次)。

排错注意事项

  • 访问被拒:若报错 系统错误 5,通常是远程共享权限不足或Windows凭据未正确传递,检查 \account 对应的密码是否正确。
  • 服务中断:如果在断开 Y: 映射时恰好有另一个进程正在使用该路径,会卡死等待,可考虑适当延迟或增加错误捕获逻辑。
  • T-SQL 语法:注意字符串拼接时的转义和引号层级,特别是涉及反斜杠 \ 和双引号 " 时需保持一致。

总结

通过将网络映射、T-SQL变量命名与标准的 Backup 指令相结合,我们可以低成本地实现异地灾备策略。以上以上就是SQL Server远程定时备份数据库脚本配置的详细内容,更多关于SQL Server远程备份的资料请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。