SQL差异备份 cy_Backup.bat

本文介绍了一个用于SQL Server的自动差异备份脚本,该脚本每天执行一次完整备份及每两小时一次差异备份,备份文件会被压缩并上传至远程服务器。
:: 说明:
:: 1. 由于我的备份策略是每天进行一次完整备份,每2个小时进行一次差异备份,故备份文件名只加了日期而没有加时间,并且需与差异备份分开写成两个脚本。
:: 2. 需将此脚本保存为bat文件,并放入到sql server的计划任务中,并根据需要调整运行的时间。
:: 以下脚本实现SQL server多个数据库的差异备份,备份文件名为:cy_数据库_sqldb_日期.bak,并将所有备份文件进行压缩,压缩文件名为:cy_sqldb_日期_时间.bak.rar,压缩完毕后自动删除原备份文件,并ftp上传至另一台服务器。整个脚本的运行过程自动写入tkblbackup.log中,方便进行错误分析。
@echo off
color 27
title 数据库差异备份
rem andyxu
rem http://www.infozc.com
set basePath=D:\sqlBackup
set rar="C:\Program Files\WinRAR\WinRAR.exe"
set svr=sqlbak
set svrrole=cy
set nowtime=%date:~0,10% %time%
set today=%date:~0,10%
if "%time:~0,1%" == " " (set nowh=%time:~1,1%) else (set nowh=%time:~0,2%)
set rarlist="%basePath%\cybackarlst.txt"
set ftplist="%basePath%\cyback\ftplst.txt"
set baklog="%basePath%\cyback\tkblbackup.log"
set FtpSrv=10.145.26.188
set FtpPort=21
set FtpUser=jdda
set FtpPwd=jdda_2011
@echo. >> %baklog%
@echo -------------------------------------------------- >> %baklog%
@echo %nowtime% BackupScript is starting....... >> %baklog%
echo open %FtpSrv% %FtpPort% > %ftplist%
echo user %FtpUser% >> %ftplist%
echo %FtpPwd% >> %ftplist%

cd /d %basePath%\backupdb
del *.bak /Q

:: 数据库差异备份语句,可添加多个数据库
for %%a in (cacheDatas powerDB bamdb) do (
@echo %nowtime% BackupDB %%a is beginning....... >> %baklog%
@osql -s localhost -d master  -E -Q "backup database %%a to disk='%basePath%\backupdb\cy_%%a_%svr%_%today%.bak' with FORMAT,DIFFERENTIAL" >> %baklog%
echo cy_%%a_%svr%_%today%.bak >> %rarlist%
)
::Rar files
%rar% a %svrrole%_%svr%_%today%_%nowh%.bak.rar @%rarlist%  >> %baklog%
::Upload files by ftp
echo cd %svr% >>%ftplist%
echo bin >> %ftplist%
echo prompt >> %ftplist%
echo lcd  %basePath%\backupdb  >>%ftplist%
echo put %svrrole%_%svr%_%today%_%nowh%.bak.rar >> %ftplist%
echo quit   >> %ftplist%
echo bye    >> %ftplist%
ftp -n -s:%ftplist% >> %baklog%
echo. > %rarlist%
@echo -------------------------------------------------- >> %baklog%
@echo. >> %baklog%
@echo on
@echo 数据库差异备份完成!!!
@pause
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值