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

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

相关推荐
Hrain-AI13 小时前
多 Agent 并行不打架:worktree 隔离与反馈回流落地(附脚本)
网络·数据库·人工智能·架构
净水深流13 小时前
中央厨房冷链技术实践:多温区改造、WMS落地与IoT温控架构
大数据·数据库·人工智能·冷库冷链
l1t14 小时前
测试DuckDB 2.1的match_recognize模式匹配语句
数据库·duckdb
IpdataCloud15 小时前
AI智能体调用工具怎么核验来源IP?归属地、网络类型与代理风险识别(含Python代码)
数据库·python·tcp/ip
曹牧15 小时前
Java:SQL 注入漏洞
数据库
程序员JerrySUN16 小时前
Jetson Edge AI 实战01:Nano、Xavier、Orin 怎么选?Jetson 硬件选型详解【视频讲解】
java·数据库·redis·安全·mybatis
oradh16 小时前
Oracle Undo问题总结(ORA-600 [4xxx] 系列错误)
数据库·oracle
达梦数据16 小时前
DMDRS辅助表生成规则与作用
数据库·oracle
‎ദ്ദിᵔ.˛.ᵔ₎16 小时前
MySQL 表约束
数据库·mysql
Doris__HE16 小时前
【元脑服务器NF5476G7-NF5476M7技术规格分享】
运维·服务器·网络·数据库·性能优化