SQL SERVER 数据库压缩日志步骤

1、首先备份日志

BACKUP LOG Mathxyz TO DISK = 'mathxyz.trn'

2、查询当前数据库的大小,这里会返回全部的数据库文件的大小,占用的比率

DBCC SQLPERF(LOGSPACE);
SELECT  name AS 'MathXyz_log',  type_desc,    size * 8 / 1024 AS '当前大小(MB)'  FROM sys.database_files WHERE type_desc = 'LOG';

3、将数据库改变简单恢复模式

ALTER DATABASE [MathXyz] SET RECOVERY SIMPLE;

4、根据数据库的大小,计算(当前的大小*占用比率)一次能收缩到的最小值(MB)(略大于最小值)

DBCC SHRINKFILE (N'MathXyz_log', 100);

5、将数据库还原成全量恢复模式

ALTER DATABASE [MathXyz] SET RECOVERY FULL;

在切回模式前,可以根据每次查询的结果计算不断计算可一次收缩的最小值,经过多过压缩可压缩到最小
如果压缩不成功,检查是否有其它事务、镜像阻碍,如果log_reuse_wait_desc   显示为  NOTHING 就可以压缩

SELECT  name,   recovery_model_desc,    log_reuse_wait_desc   FROM sys.databases  WHERE name = DB_NAME();

 最后再执行一下步骤1,备份日志







 

posted @ 2026-03-07 16:16  猫狼  阅读(8)  评论(0)    收藏  举报