因服务器装置的 SQL Server 版本不反对主动定时备份,需自行实现,大略思路为:
- 创立备份数据库的脚本
- 创立批处理脚本执行步骤一中的脚本
- 创立 Windows 定时工作执行步骤二中的脚本
1. 创立 SQL 脚本
新建 db_backup.sql
文件,填入以下内容。
-- 定义须要备份的数据库
DECLARE @backupDatabase VARCHAR(20) = 'DB_NAME'
-- 定义数据库备份文件寄存的根底门路
DECLARE @backupBasePath VARCHAR(MAX) = 'D:/DB_NAME/'
-- 定义备份文件名,文件名格局:<DB>_backup_<yyyyMMdd>_<HH:mm:ss.SSS>.bak
DECLARE @backupFileName VARCHAR(50) = NULL
-- 获取以后工夫戳
DECLARE @backupTime DATETIME = CURRENT_TIMESTAMP
-- 解决备份文件名称
SET @backupFileName = @backupDatabase + '_backup_' + CONVERT(VARCHAR(25), @backupTime, 112) + '_' + REPLACE(CONVERT(VARCHAR(25), CURRENT_TIMESTAMP, 114), ':', '') +'.bak'
-- 解决残缺的备份文件门路
SET @backupBasePath = @backupBasePath + @backupFileName
-- 执行备份
BACKUP DATABASE @backupDatabase TO DISK = @backupBasePath
脚本内容比较简单,这里就不开展说了。详情可查看:BACKUP (Transact-SQL)。
到这里曾经能够应用脚本对数据库进行备份,但仍需手动执行脚本,无奈实现主动定时备份的需要。
2. 创立批处理脚本
新建 db_backup.bat
文件,填入以下内容。
sqlcmd -S localhost -U sa -P 123 -i ./db_backup.sql -o ./db_backup.log
以下为应用到的各个选项的解释:
sqlcmd -S < 数据库连贯地址 > -U < 数据库登录名 > -P < 数据库明码 > -i < 要执行的脚本文件 > -o < 执行日志文件 >
更多选项请执行 sqlcmd -?
查看或者查看:sqlcmd 实用工具。
双击执行批处理文件,如果没有报错且失常输入日志文件,则阐明批处理脚本创立胜利。
3. 创立 Windows 工作打算
应用 win
+r
快捷键关上 运行 对话框,输出 taskschd.msc
关上 工作打算程序 对话框,点击 创立工作,顺次进行以下步骤:
- 输出工作名称
- 如果是服务器环境,平安选项中务必抉择 不论用户是否登录都要运行
- 新建触发器
- 设置触发器为按预约打算执行一次
- 在触发器高级设置中抉择反复工作距离依据须要设置,持续时间设置为无限期。这样配置的后果就是在触发后,无限期地每隔 xx 时间段反复一次
- 新建操作
- 抉择方才新建的批处理脚本
- 查看批处理脚本中是否蕴含无关目录构造的语句,比方须要读写某个地位的文件。如果有且是 Windows Server 2012 及当前的操作系统,就须要配置起始地位,起始地位设置为批处理的目录即可。
实现以上步骤后即创立工作胜利,而后选中新创建的工作,点击右键抉择 运行,可测试工作是否可失常执行。