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) "。



相关推荐
一只小bit1 小时前
Redis哨兵机制、主从复制与集群搭建与维护
数据库·redis·bootstrap
zlwool7 小时前
图纸管理选型避坑指南
数据库·erp·设备erp·非标机械
小灰灰搞电子9 小时前
完全驾驭 Qt 与数据库:C++ ORM 框架 QxOrm 原理与实践指南
数据库·c++·qt
软件聚导航10 小时前
「聚小软 AI 助手」技术升级:从数据库检索到 RAG 知识库问答
前端·数据库·mysql·微信小程序·小程序·ai编程·rag
学习星球11 小时前
单调栈——从“找下一个更大的“到柱状图中的最大矩形
数据库·c++·算法·leetcode·xcode
GoppViper11 小时前
RDF资源描述框架深度解析:语义Web的数据基石与实战逻辑
前端·数据库
2601_9621741712 小时前
Redis 简介
数据库·redis·wpf
夜雪一千12 小时前
MySQL 各种数据同步方案全梳理:从简单复制到异构同步实战
数据库·mysql
Highcharts.js13 小时前
Highcharts 下钻(Drilldown)柱状图 Demo
数据库·信息可视化·hbase·highcharts·drilldown·js模块·下钻图表
翼龙云_cloud13 小时前
阿里云国际渠道代理商:如何在ECS上部署Flask应用?
运维·数据库·阿里云·flask·云计算