一般来说,SQL Server 都会使用自带的维护计划来进行数据库备份。如果要进行异地备份,可以借助于 rsync。当然,rsync 是 Linux 系统下的数据镜像备份工具。在 Windows 系统下,使用的是 cwRsync,这是 rsync 在 Windows 上的实现版本。
因为是做异地备份,所以,SQL Server 服务器实际上是 rsync 客户端。
假设,rsync 服务端的 IP 是:10.18.16.166,而 rsync 的同步模块为 dbData。
那么,首先使用 SQL Server 自带的维护计划进行数据库备份,备份目录为 D:\dbBack。接着,编写一个批处理脚本,内容如下:
@echo off&setlocal enabledelayedexpansion
rem 作者:靑龍一笑(C.S.Ricen)
rem 功能:数据打包并上传到备份服务器
set BACK_DIR="D:\dbBack"
set CUR_DATE=%date:~,10%
set CUR_DATE=%CUR_DATE:/=%
for /f %%a in ('dir /a-d /s /b %BACK_DIR%') do (
set ft=%%~ta
set fn=%%~na
set fname=%%~na%%~xa
set fpath=%%~dpa
set ftime=!ft:~,4!!ft:~5,2!!ft:~8,2!
if %CUR_DATE% equ !ftime! (
cd !fpath!
echo 打包备份 !fname!
winrar a -k -m1 -ep1 -afzip -r -o+ %BACK_DIR%/!fn!.zip !fname!
cd %BACK_DIR%
echo 上传到备份服务器 ……
rsync -avzcR !fn!.zip 10.18.16.166::dbData
)
)
echo 数据备份完毕!
echo 开始删除临时文件 ……
cd %BACK_DIR%
del *.zip
del *.txt
exit
至此,只需要在 SQL Server 服务器的系统计划任务里,定时执行这个批处理脚本,即可实现 SQL Server 数据库的异地备份了。
Copyright © 2005-2023 by www.ricensoftwares.com.cn All Rights Reserved.