SQL Server缩小日志文件.ldf的方法(适用于开发环境)

SQL Server缩小日志文件.ldf的方法(适用于开发环境)

核心概念 :为什么日志文件会变大?

首先,理解原因至关重要。事务日志文件在以下情况下会增长:

  1. 大量操作:执行了大批量插入、更新或删除操作(例如,数据导入、批量清理)。
  2. 长时间运行的事务:有一个事务开始后一直没有提交,SQL Server 为了保证事务的原子性和回滚能力,必须保留所有相关的日志记录,直到事务结束。
  3. 复制、镜像、Always On 可用性组:这些高可用性和灾难恢复技术依赖于事务日志,如果日志传送或应用延迟,主数据库的日志就无法截断。
  4. 恢复模式:
    简单恢复模式:事务日志会在检查点之后自动截断,空间会被重用,通常不会无限增长。
    完整恢复模式:事务日志只有在执行日志备份后才会被截断。如果不做日志备份,日志就会一直增长。

处理方法:切换至简单恢复模式(最常用)

sql 复制代码
-- 1. 将恢复模式设置为简单
ALTER DATABASE [YourDatabaseName] SET RECOVERY SIMPLE WITH NO_WAIT;

-- 2. 执行检查点,强制截断日志
CHECKPOINT;

-- 3. 收缩日志文件到 manageable 的大小 (例如 512MB)
USE [YourDatabaseName];
DBCC SHRINKFILE (YourLogFileLogicalName, 512); -- 替换为你的日志逻辑名

-- 4. (重要!) 切换回完整恢复模式
ALTER DATABASE [YourDatabaseName] SET RECOVERY FULL;
相关推荐
r i c k1 小时前
数据库系统学习笔记
数据库·笔记·学习
野犬寒鸦2 小时前
从零起步学习JVM || 第一章:类加载器与双亲委派机制模型详解
java·jvm·数据库·后端·学习
IvorySQL2 小时前
PostgreSQL 分区表的 ALTER TABLE 语句执行机制解析
数据库·postgresql·开源
·云扬·3 小时前
MySQL 8.0 Redo Log 归档与禁用实战指南
android·数据库·mysql
野生技术架构师3 小时前
SQL语句性能优化分析及解决方案
android·sql·性能优化
IT邦德3 小时前
Oracle 26ai DataGuard 搭建(RAC到单机)
数据库·oracle
惊讶的猫3 小时前
redis分片集群
数据库·redis·缓存·分片集群·海量数据存储·高并发写
不爱缺氧i3 小时前
完全卸载MariaDB
数据库·mariadb
纤纡.3 小时前
Linux中SQL 从基础到进阶:五大分类详解与表结构操作(ALTER/DROP)全攻略
linux·数据库·sql