SQL Server数据库的LDF文件过大的清理方式

对于出现多个LDF文件的情况下如何进行重建LDF日志文件进行释放空间
传统方式是进行日志收缩


如果出现收缩问题,可能是有被占用,也可能是存在复制
当然还有一种罕见的情况,是两个ldf文件,第二个文件LDF文件收缩日志会不成功
那么 通过以下3个方法都不行
方法1:收缩数据库日志:使用数据库的"收缩"功能,选择日志文件,设置收缩后的大小
方法2:将数据库属性里面恢复模式更改为简单:简单模式将会保留最小的日志文件,在数据库属性,点击选项,恢复模式选择"简单"即可
方法3:直接删除或剪切日志文件,再重新生成:先将数据库分离,然后删除日志文件,再附加上去,会重新生成新的日志文件
会提示:
无法打开新数据库WTS'。CREATEDATABASE中止。 文件激活失败。物理文件名称F:DATAlwtsstandard log2.ldf可能不正确。 未重新生成日志,因为有不止一个日志文件。MicrosoftsQL Senver,错误:1813)
通过以下的SQL语句执行也是相同的提示,只有单个LDF可以用这个SQL

sql 复制代码
use master
go
EXEC sp_attach_db @dbname = N'WTS', 
   @filename1 = N'F:\DATA\wts_standard_data.mdf', 
   @filename2 = N'F:\DATA\wts_standard_data2.mdf',
   @filename3 = N'F:\DATA\wts_standard_data3.mdf'
go
USE WTS_ERAL
EXEC sp_updatestats 
go

多个LDF文件的情况用以下方式重建
切忌:原先LDF可以先重命名,重建成功后删除。
那么可以用下面这个SQL语句来重建LDF文件,哪怕原本有两个LDF问题
SQL Server 重建LDF文件

sql 复制代码
CREATE DATABASE [WTSL] ON
(FILENAME = N'F:\DATA\wts_standard_data.mdf'),
(FILENAME = N'F:\DATA\wts_standard_data2.mdf'),
(FILENAME = N'F:\DATA\wts_standard_data3.mdf')
FOR ATTACH_REBUILD_LOG;
GO

日常的LDF清理,可以参照此文章,它图文都详细https://www.cnblogs.com/subsea/p/13875925.html

博主先尝试此文章方法未果后发现以上的这个重建方法,供大家参考。

相关推荐
2401_882273725 分钟前
如何通过MongoDB GridFS实现文件的分块下载
jvm·数据库·python
weixin_580614005 分钟前
CSS如何实现动态背景色线性渐变_利用CSS变量控制渐变方向
jvm·数据库·python
施棠海7 分钟前
SQLite姓氏数据库首字母检索开发
数据库·oracle
weixin_408717777 分钟前
mysql如何查询所有列_mysql select星号性能分析
jvm·数据库·python
a9511416427 分钟前
mysql权限表查询性能如何优化_MySQL系统权限缓存原理
jvm·数据库·python
zxrhhm10 分钟前
Oracle RAC 日常监控脚本
数据库·oracle
m0_7489203611 分钟前
Redis怎样防止主从节点淘汰行为不一致
jvm·数据库·python
misL NITL11 分钟前
数据库操作与数据管理——Rust 与 SQLite 的集成
数据库·rust·sqlite
2401_8359568112 分钟前
SQL中如何查找特定的空值行:WHERE IS NULL深度解析
jvm·数据库·python
若兰幽竹12 分钟前
【从零开始编写数据库系统:架构设计与实现】第3章 SQL解析:词法与语法分析
数据库·sql·教学数据库·数据库内核开发