SQL Server 数据安全新防线,如何实现自动异地备份与同步?

admin

在数据库管理中,备份是最后一道防线,仅仅在本地服务器上进行备份往往是不够的,如果发生火灾、断电或勒索病毒导致本地服务器完全瘫痪,本地备份将毫无意义,实现 SQL Server 备份自动到另一台机器(异地备份)是保障数据高可用的关键步骤。

本文将介绍两种主流的实现方案:一种是利用 SQL Server 自身功能,另一种是利用操作系统任务计划程序,帮助您轻松构建异地备份机制。

利用 SQL Server 代理作业与 T-SQL(推荐)

这是最符合 SQL Server 管理习惯的方法,我们利用 SQL Server 的作业调度器来执行备份,然后通过 T-SQL 调用系统存储过程或命令行工具将文件复制到目标机器。

SQL Server 数据安全新防线,如何实现自动异地备份与同步?

核心思路:

  1. 在源服务器上配置 SQL Server 代理作业,定期执行数据库备份。
  2. 在目标机器上创建一个共享文件夹。
  3. 在备份作业中添加一个步骤,使用 xp_cmdshell 执行 robocopy 命令将生成的 .bak 文件传输过去。

操作步骤:

  1. 配置目标共享文件夹: 在目标机器(接收端)上,右键点击文件夹 -> 属性 -> 共享 -> 高级共享 -> 勾选“共享此文件夹” -> 权限 -> 添加源服务器的账号并赋予“读取”权限。

  2. 创建 SQL Server 备份作业: 打开 SQL Server Management Studio (SSMS) -> 作业 -> 新建作业。

    • 步骤 1(备份): 编写 T-SQL 语句生成备份文件,
      BACKUP DATABASE [YourDB] TO DISK = 'C:\Backup\YourDB.bak' WITH FORMAT, MEDIANAME = 'SQLServerBackups', NAME = 'Full Backup of YourDB';
    • 步骤 2(复制文件): 在作业中添加第二个步骤,执行系统存储过程 xp_cmdshell
      EXEC master.dbo.xp_cmdshell 'robocopy "C:\Backup" "\\目标机器IP\Share" *.bak /E /R:0 /W:0 /IS';

      参数说明:/E 包含空目录,/R:0 /W:0 表示失败不重试、等待0秒,确保传输速度。

  3. 启用 xp_cmdshell(如未启用): 默认情况下,xp_cmdshell 可能被禁用以提高安全性,需要在 master 数据库中执行:

    EXEC sp_configure 'show advanced options', 1;
    RECONFIGURE;
    EXEC sp_configure 'xp_cmdshell', 1;
    RECONFIGURE;

利用 Windows 任务计划程序(更稳定)

如果您不希望依赖 SQL Server 代理服务,或者担心 SQL Server 服务停止导致备份任务中断,使用 Windows 原生的任务计划程序是更稳健的选择。

核心思路:

  1. 在源服务器上编写一个批处理脚本(.bat),先执行 SQL 备份,再使用 xcopyrobocopy
文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码