手机版

mssql2000日志丢失的解决方案 LDF日志文件

时间:2021-08-01 来源:互联网 编辑:宝哥软件园 浏览:

类型:数据库类大小:3.1M语言:英语评分:6.6标签:立即下载由于各种原因,如果我们只备份了mdf文件却无法获取日志文件,恢复起来会是一件非常麻烦的事情。

[同一个数据库服务器的情况]如果您的mdf文件是从当前数据库生成的,您可能会幸运地使用sp_attach_db或sp_attach_single_file_db来恢复数据库,但会出现类似以下内容的提示消息。物理文件名“c: \程序文件\ Microsoft SQL server \ MSSQL \数据\ test _ log.ldf”可能有错误。已创建名为“c: \程序文件\ Microsoft SQL server \ MSSQL \数据\ test _ log.ldf”的新日志文件。

【不同数据库服务器的情况】如果您的数据库文件是从其他计算机复制的,那么不幸的是,上述方法可能不起作用。您可能会收到如下错误消息:服务器:消息1813,级别16,状态2,第1行未能打开新的数据库“测试”。创建数据库将终止。设备激活错误。物理文件名“d:\test_log”中可能有错误。LDF。

我该怎么办?别担心,让我们举一个恢复方法的例子。

A.默认情况下,建立用于恢复的数据库(测试)。

B.停止数据库服务器。

C.删除刚生成的数据库的日志文件test_log.ldf,用要还原的数据库mdf文件覆盖刚生成的数据库数据文件test_data.mdf。

D.启动数据库服务器。这时,您会看到数据库测试的状态是可疑的。此时,无法对此数据库执行任何操作。

E.将数据库设置为允许直接操作系统表。在此操作中,可以在SQL Server企业管理器中选择一个数据库服务器,右键选择“属性”,在“服务器设置”页面选择“允许直接修改系统目录”。

F.将测试设置为紧急维修模式

更新sysdatabases设置状态=-32768,其中dbid=DB_ID(“测试”)

此时可以在SQL Server企业管理器中看到数据库处于“只读\怀疑\脱机\紧急模式”,可以看到数据库中的表,但只有系统表。

G.执行真正的恢复操作并重建数据库日志文件

dbcc rebuild_log('test ',' C: \程序文件\ Microsoft SQL Server \ MSSQL \ Data \ test _ log . ldf ')

在执行过程中,如果遇到以下消息:

服务器:消息5030,16级,状态1,线路1

无法以独占方式锁定数据库以执行操作。

DBCC执行完毕。如果DBCC输出错误消息,请联系您的系统管理员。

说明您的其他程序正在使用该数据库。如果您刚刚在步骤f中用SQL Server企业管理器打开了测试库的系统表,则可以退出SQL Server企业管理器。

正确执行完成的提示应该类似于:

警告:数据库“测试”的日志已被重建。事务一致性已丢失。运行DBCC检查数据库以验证物理一致性。必须重置数据库选项,并且可能需要删除冗余日志文件。

DBCC执行完毕。如果DBCC输出错误消息,请联系您的系统管理员。

此时,当您在SQL Server企业管理器中打开它时,您将看到数据库的状态为“仅供DBO使用”。此时,您可以访问数据库中的用户表。

H.验证数据库一致性(可以省略)

dbcc checkdb(“测试”)

总体实施结果如下:

CHECKDB在数据库“测试”中发现0个分配错误和0个一致性错误。

DBCC执行完毕。如果DBCC输出错误消息,请联系您的系统管理员。

一、将数据库设置为正常状态

sp_dboption 'test ',' dbo仅使用',' false '

如果没有错误,恭喜你,现在你可以正常使用恢复的数据库了。

J.最后一步,我们将恢复步骤e中设置的“允许直接修改系统目录”项,因为平时直接操作系统表很危险。当然,我们可以在SQL Server企业管理器中恢复它,或者我们可以使用以下语句来完成它

-SQL

sp_configure'allowupdates ',0goreconfigurewithoverridego

版权声明:mssql2000日志丢失的解决方案 LDF日志文件是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。