Alwayson如何截断日志

数据库一旦搭建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. 创建计划任务:


这个过程比较简单就不再赘述了。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值