SQL Server LDF文件引发数据库状态异常,修复的方式

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

SQL Server LDF文件引发数据库状态异常,修复的方式

SQL Server LDF文件引发数据库状态异常,修复的方式

表现

分析

查看错误日志 Sp_readerrorlog

发现ldf文件不存在

FileMgr::StartLogFiles: Operating system error 2(系统找不到指定的文件。) occurred while creating or opening file 'D:\Program Files\Microsoft SQL Server\MSSQL16.SQL2022\MSSQL\DATA\test_log_4093951566.ldf'. Diagnose and correct the operating system error, and retry the operation.  

处理

1. 重建日志脚本

ALTER DATABASE [test_CLONE] REBUILD LOG ON

(NAME= test_CLONElog, FILENAME='D:\Program Files\Microsoft SQL Server\MSSQL16.SQL2022\MSSQL\DATA\test_CLONElog.ldf')

输出信息如下:说明日志文件已经重现生成

警告: 数据库 'test_CLONE' 的日志已重新生成。已失去事务的一致性。RESTORE 链已断开,服务器不再有以前的日志文件的上下文,因此您需要了解它们的内容。应运行 DBCC CHECKDB 验证物理一致性。数据库已置于 dbo-only 模式。在准备使数据库可用时,需要重置数据库选项,并删除所有多余的日志文件。

2. 查看数据库的当前模式,为受限制用户

3. 设置为多用户模式,执行成功后,说明数据库就可以正常使用了。

ALTER DATABASE [test_CLONE] SET MULTI_USER

4. 根据重建日志的结果,对数据库进行检查,看是否正常。

附:

另外,通过分离附加的模式,也可以创建LDF文件,但不建议。

1. 分离数据库

2. 分离后,将有问题的LDF文件,移动到其他文件夹下,然后通过下面的命令来建立数据库

--附件MDF文件的同时构建LDF文件

CREATE DATABASE [test_CLONE]

ON (FILENAME = 'D:\Program Files\Microsoft SQL Server\MSSQL16.SQL2022\MSSQL\DATA\test_163371344.mdf')

FOR ATTACH_REBUILD_LOG

注:

1:上面的方式,无法确保所有的情况下都能建立成功

2:还原后,可能会发生部分数据丢失的情况


SQL Server LDF文件引发数据库状态异常,修复的方式

SQL Server LDF文件引发数据库状态异常,修复的方式表现分析查看错误日志 Sp_readerrorlog发现ldf文件不存在FileMgr::StartLogFiles: O...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息