当前位置: 首页 > news >正文

sqlserver日志收缩

适用场景:随着业务数据库使用时间的增长,数据库完整备份任务的持续运行,ldf日志文件会越来越大,里面存有大量事务,占用大量空间的同时也让数据库变得臃肿。此时我们需要定期做数据库日志的收缩。

以数据库名为report举例

1、我们要先确认数据库的恢复模式,一般来说默认都是完整恢复的模式

SELECT name, recovery_model_desc FROM sys.databases WHERE name = 'report';

会得到类似以下的输出内容

name	recovery_model_desc
report	FULL

如果是恢复模式为FULLBULK_LOGGED,那么我们就可以接着往下做。

2、收缩前先备份一次事务日志

BACKUP LOG report TO DISK = N'D:\Backup\report_log.bak';--这里路径和文件名自定义

3、收缩日志文件

-- 方法A:将日志文件收缩到指定目标大小(例如 5GB)
use [report]
go
DBCC SHRINKFILE ('report_log', 5120);
go
-- 'report_log' 是日志文件的逻辑名称,可以在数据库属性->文件中查看,通常默认为数据库名_log。
-- 

也可以在数据库右键依次选,数据库=》任务=》收缩=》文件,文件类型选日志,收缩操作选第二个:在释放未使用的空间前重新组织页,效果是一样的。


以上是较为细致的处理方法,还有一种较为简单粗略的处理方法,适用于开发测试环境,但是个人觉得,业务环境使用也可以,除非你对之前事务日志看的非常重要。

1、恢复模式设置为简单

设置为简单恢复模式后,会破坏日志链,无法进行基于时间的点恢复。

ALTER DATABASE report SET RECOVERY SIMPLE;

2、执行检查点,强制截断日志:

此步是AI给出的,实测不执行也可以,影响不大。

CHECKPOINT;

3、收缩日志文件:

DBCC SHRINKFILE ('report_log', 5120); -- 收缩到5GB

4、(可选)改回完整恢复模式:

如果后续需要,可以再改回去,但请记得之后要开始做日志备份。

ALTER DATABASE report SET RECOVERY FULL;
BACKUP DATABASE report TO DISK = ... -- 切换后立即做一次完整备份,以开启新的日志链。
http://www.gsyq.cn/news/48198.html

相关文章:

  • 2025年玻璃鼠标垫定制厂家推荐排行榜
  • 2025年质量好的澳洲海外仓中转一件代发优质服务榜
  • 2025折叠伸缩雨棚定制厂家推荐排行
  • 2025年知名的智慧工厂目视化规划最新品牌推荐榜服务商
  • 基于MATLAB实现空间计量模型及检验方法
  • 2025农用遮阳网销售厂家排行
  • 2025年评价高的赣州装修公司定制
  • 2025背调最好的排行榜单
  • 2025年靠谱的河南公司注册代理记账机构品牌实力推荐排行榜
  • 2025年权威的慧商青少年少儿训练平台口碑排行榜
  • 2025年质量好的欧洲品牌三段力缓冲铰链厂家推荐及选择指南
  • 2025 年 11 月仿石漆厂家推荐排行榜,外墙仿石漆,内墙仿石漆,防霉仿石漆,水包水仿石漆,水包砂仿石漆,耐污仿石漆,自洁仿石漆公司推荐
  • CF1797F Li Hua and Path
  • 2025年口碑好的烤漆龙骨厂家推荐及选择指南
  • 2025年11月动态血糖仪品牌榜:五强性能参数与口碑排行一览
  • 2025年比较好的新疆棉花手工棉被厂家推荐及选购指南
  • 2025年质量好的磨砂布牛津布行业内口碑厂家排行榜
  • 2025年大型的继承律师事务所精英榜
  • 400电话解决方案有哪些优势?
  • 2025年比较好的不锈钢厨房拉篮厂家最新热销排行
  • 2025年数显电流仪表供货商排行榜单
  • 2025年性价比高的小白瓶前置过滤器排名
  • 如何选择适合你企业的外呼系统?实用指南!
  • 2025年青少年无人机培训位置推荐
  • Web前端入门第 90 问:JavaScript 也能无中生有的创建音频
  • 2025年评价高的极薄缓冲骑马抽厂家最新用户好评榜
  • Xmind 2024 Pro 破解版下载及安装教程
  • kubeadm安装k8s - 实践
  • OP250影像检测项目详解
  • 2025年质量好的送风消防风机厂家最新用户好评榜