数据库一旦搭建alwayson, 则日志无法用简单日志, 必须采用完整日志。 生产环境的完整日志天长日久会很庞大, 如何处理?
在 d 盘下创建 Tools\bat_tools 文件夹
1. 创建 backup_log.sql 文件, 脚本如下:
use [dbName]
declare @bakfile nvarchar(100)--@bakfile备份文件名
set @bakfile='d:\database_bak\log_bak_'+convert(nvarchar(8),getdate(),112)+'.log'
BACKUP LOG [dbName] TO DISK= @bakfile WITH RETAINDAYS= 1,COMPRESSION --dbName为数据库名
dbcc shrinkfile(dbName_log,100) --dbName_log为数据库文件逻辑名称,100为希望日志收缩到的MB数
go
2. 创建 del_log.bat 文件, 内容如下:
sqlcmd -S localhost -U loginName -P password -i d:\tools\bat_tools\backup_log.sql
@echo off
forfiles /P D:\database_bak /s /m *.log /d -7 /c "cmd /c del /q @path "
执行备份操作, 完成之后删除备份文件夹下所有 .log 结尾的超过7天的文件。
3. 创建计划任务:
这个过程比较简单就不再赘述了。