1、应保证数据库运行在完整恢复模式下
2、使用任务计划定时进行数据备份(完整+差异)和日志备份
3、使用压缩备份选项来减少磁盘占用
4、应建立自动定期检查及报警机制。检查磁盘剩余空间,以确保有足够的磁盘空间数据增长和进行下一次备份
5、程序应定期清理备份文件
6、定期删除msdb中的备份和还原记录
7、当数据库从简单恢复模式切换到完整恢复模式下,应立即完整备份数据库来修复断裂的日志链
8、测试备份文件的可用性
最后附上数据库备份脚本
declare @filename varchar(1024)
declare @path varchar(1024)
declare @databaseName varchar(1024)
set @path = N'D:\Develop\DB_Backup\';
set @databaseName = 'DatabaseName'
declare @extension_name varchar(16)
set @extension_name = N'bak';
set @filename = @databaseName +'_'+ convert(varchar(10), getdate(), 120)
set @filename = replace(@filename, ':', '')
set @filename = replace(@filename, '-', '')
set @filename = replace(@filename, ' ', '')
set @filename = @filename + N'.' + @extension_name
-- 得到完整目标文件,数据库将备份到这个文件夹中
set @filename = @path + @filename
select @filename
-- 开始备份, @databaseName 是需要备份的数据库, COMPRESSION 参数表示压缩,可节省磁盘空间
backup database @databaseName to disk = @filename with noformat, noinit, name = N'完整 数据库 备份', skip, norewind, nounload, stats = 10, COMPRESSION
-- 删除31天前的备份文件
declare @olddate datetime
select @olddate=getdate()-31
-- 执行删除
execute master.dbo.xp_delete_file 0, @path, @extension_name, @olddate, 1
Go