这两天遇到了项目数据库日志过大问题,日志文件达到快500G,收缩也没用,后来查到各种资料,解决办法:
1、 将数据库进行一次事务日志备份(第一次备份下来的日志也将近500G,不知道怎么回事,第二次备份才2G);
2、查看log_reuse_wait和log_reuse_wait_desc值
SELECT name,log_reuse_wait,log_reuse_wait_desc
FROM sys.databases
WHERE name = '数据库'
在备份之后,执行以上语句,查看数据库的log_reuse_wait和log_reuse_wait_desc,备份之前log_reuse_wait是2,log_reuse_wait_desc是LOG_BACKUP,之后变为0和NOTHING,变为0以后,收缩才有效果
3、收缩
还有一个比较暴力的解决办法:
—1. 设为简单恢复模式
use [master]
alter database [数据库名] set recovery simple with no_wait
alter database [数据库名] set recovery simple
—2. 收缩数据库至8M,需要用:select * from sys.database_files 查询一下真实log名称,替换下面语句中的A
use 数据库名
dbcc shrinkfile(A,8)
—3. 重新设为完整恢复模式
use [master]
alter database 数据库名 set recovery full with no_wait
alter database 数据库名 set recovery full