SQL Server在ldf文件误删的情况下恢复数据库

客户的SQL Server数据库在关闭的状态下把ldf文件(也就是日志文件)误删导致数据库无法正常打开,并且数据库没有备份。

方法一:使用 T-SQL 命令重建日志

这是微软官方推荐的通过命令行附加单文件的方法。

  1. 打开 SQL Server Management Studio (SSMS),以管理员身份连接到数据库引擎。
  2. 新建查询,执行以下命令(请替换文件路径和数据库名):

查询数据库对应文件所在位置,记录下来。

sql 复制代码
SELECT 
    name AS 文件逻辑名,
    physical_name AS 文件物理路径,
    type_desc AS 文件类型
FROM sys.master_files
WHERE DB_NAME(database_id) = 'YourDatabaseName';

先脱机再分离数据库,推荐使用SSMS图形界面操作。

sql 复制代码
USE master;
GO
ALTER DATABASE mes SET OFFLINE;
GO

USE [master]
GO
EXEC master.dbo.sp_detach_db @dbname = N'mes'
GO

CREATE DATABASE [YourDatabaseName] 
ON (FILENAME = 'D:\Data\YourDatabase.mdf') -- 替换为你的 mdf 实际路径
FOR ATTACH_REBUILD_LOG;
GO

方法二:使用 SSMS 图形界面附加

  1. 在 SSMS 对象资源管理器中,右键点击 "数据库 (Databases)"。
  2. 选择 "附加 (Attach...)"。
  3. 点击 "添加 (Add)",找到并选中你的 .mdf 文件,点击确定。
  4. 在下方的"数据库详细信息"网格中:

你会看到 .mdf 路径正确

你会看到 .ldf 路径显示 "未找到 (Not Found)"。

  1. 选中那行 .ldf 记录,点击 "删除 (Remove)" 按钮。
  2. 点击 "确定 (OK) "。



相关推荐
染指11104 小时前
140.Agent-多Agent框架-Agent执行Skills流程
数据库·人工智能·设计模式·langchain·agents
fengkai45454 小时前
十二、Redis -2
运维·数据库·redis·容器
余槐i5 小时前
200万行表加索引锁死写入:PostgreSQL CONCURRENTLY 的三类等待与重建路径
数据库·postgresql·性能优化·索引·explain
北龙云海5 小时前
AI驱动数据库运维变革:北龙云海智能巡检平台实践与展望
运维·数据库·人工智能
带金箍的至尊宝5 小时前
系统架构设计师笔记 05:第2章硬件与软件基础,冯诺依曼结构怎么考
数据库·笔记·系统架构
蟕初的梦想6 小时前
Claude Haiku 5.5 效能实测与场景应用指南
数据库·人工智能·大模型
专注API从业者6 小时前
告别复杂页面解析,OpenClaw 快速搭建电商商品监控与数据分析脚本
大数据·数据库·python·数据挖掘·数据分析
naturliche6 小时前
sgx支持数据库环境配置,编译,debug
数据库·编译·sgx
SelectDB6 小时前
Apache Doris x Fluss:面向湖流一体的统一查询与分析
大数据·数据库·数据分析