mssql2000日志丢失的解决方案 LDF日志文件
类型:数据库类大小: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或者邮箱删除。