当前位置:首页 > MSSQL
SQL Server 数据库的异地备份
来源:靑龍一笑的博客  作者:靑龍一笑  发布时间:2019-01-15 16:53:35  点击量:1338  评论:0

    一般来说,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 数据库的异地备份了。

版权所有 © 2005-2023 靑龍一笑的博客  Powered by C.S.Ricen
Copyright © 2005-2023 by www.ricensoftwares.com.cn  All Rights Reserved.

欢迎光临本站,这里是靑龍一笑的博客。

因资金匮乏,本站已迁到国外的免费空间,可能导致本站的访问速度较慢,由此给您带来的不便,敬请谅解。

您可以通过下方的“支持本站建设”链接,给本站提供资金支持。

Free Web Hosting