1.首先针对每一个数据库建立三种备份设备分别用于完整备份、差异备份、事务日志备份


2.启动SQL Server代理服务
SQL Server代理服务的默认状态为禁用,应该在SQL Server配置管理器中将SQL Server代理服务的状态设为自动

3.指定SQL Server代理的服务账户
其中本账户指的就是windows账户,大多数情况为SQL Server代理服务指定一个本账户

4.建立操作员,
操作员是在完成作业或者出现警报时可以接收电子通知的人员或组的别名,建议在定义作业或警报之前定义操作员。


如果要通过Net Send命令通知操作员,可以在接收消息的计算机上开启”Messenger”服务,

5.建立作业
作业是一系列由SQL Server代理按顺序执行的指定操作

建立三种不同的作业分别执行完整备份,差异备份,事务日志备份





命令可以右击相应的数据库然后选择任务-备份


选择好相应的选项然后选择脚本生成命令,然后作业属性中的计划和通知设置好即可。
我设置的计划是完整备份每个周日的的凌晨3点执行一次,差异备份是周一到周六的凌晨3点执行一次,事务日志备份时每隔4个小时执行一次。
6.异地备份
备份以后还要在异地保存一份,以免本地服务器发生问题,这样备份也没有意义了。
异地保存我是写BAT脚本,用winrar压缩然后上传到FTP。
脚本如下:
UploadSqlBackup.bat:
@echo off
cd C:\
echo 压缩文件 - E:\%DATE:~0,10%sqlserverbackup.rar
"%programfiles%\winrar\winrar.exe" a -ibck E:\%DATE:~0,10%sqlserverbackup.rar E:\MSSQLBackup
ping localhost -n 1 >C:\null
echo 上传文件 - E:\%DATE:~0,10%sqlserverbackup.rar
echo ftp用户名>ftp.ini
echo ftp密码>>ftp.ini
echo bin>>ftp.ini
echo put E:\%DATE:~0,10%sqlserverbackup.rar>>ftp.ini
echo bye>>ftp.ini
ftp -i -s:ftp.ini 异地服务器IP >> C:\ftp.log
date /T >> ftp.log
time /T >> ftp.log
del /s /q ftp.ini >C:\null
ping localhost -n 1 >C:\null
然后设置windows计划任务在周日3:30分执行一次UploadSqlBackup.bat,这样数据库就会备份到异地服务器的ftp用户家目录下。