SQL Server 2005数据库日志丢失的恢复
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了SQL Server 2005数据库日志丢失的恢复,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2031字,纯文字阅读大概需要3分钟。
内容图文
网上关于SQL Server 2005数据库日志丢失的处理方法基本上都是修改数据库系统表,但是我测试N多遍都不成功,最后用英文关键字Google了下,发现一个可行方法,折磨了我两天的问题得以解决。。。
背景说明:名为testdb的数据库丢失了日志文件,仅有数据文件testdb.mdf
请先不要急于开始操作,如果你真的很急,请直接看我的成功试验方法(*下面的内容)
1.新建数据库testdb
2.停掉SQL Server服务器
3.删除刚刚创建好的testdb的日志文件testdb_log.ldf,将数据文件替换成上面提到的待恢复的数据库的数据文件testdb.mdf
4.启动SQL Server服务器,在Management Studio中重新连接,发现testdb数据库仍不可用
5.设置数据库的系统表为可修改
sp_configure ‘allow updates‘,1
reconfigure with override
6.设置TEST为紧急修复模式
update sysdatabases set status=-32768 where dbid=DB_ID(‘testdb‘)
訊息259,層級16,狀態1,行1
不允許對系統目錄的特定更新。(即不允许更新系统表)
此时需要利用DAC登入SQL Server进行修改,登入方式见http://space.itpub.net/10314474/viewspace-696409
设置SQL Server为single_user 模式
D:\Documents and Settings\USERNAME>net stop "SQL Server (MSSQLSERVER)"
D:\Documents and Settings\USERNAME>net start "SQL Server (MSSQLSERVER)" /m
本以为到这里就看到了胜利的曙光,谁知又报错
訊息4406,層級16,狀態1,行1
由於內含衍生或常數欄位,導致檢視或函數‘sys.sysdatabases‘ 的更新或插入失敗。
这个问题困扰了我很久,我想通过修改系统表的这种方法应该是不可行的了。
(*******以上方法在网上广为流传,但我自己并未测试成功,不知是否有人成功过*******)
***********************
以下方法经本人三次测试均成功:
当然方法的宗旨都是一样:重建日志文件
1.首先查看下数据库此时的状态
select name,state,state_desc from sys.databases where name = ‘testdb‘
name state state_desc
testdb 3 RECOVERY_PENDING
2.设置数据库为紧急模式
ALTER DATABASE testdb SET EMERGENCY
select name,state,state_desc from sys.databases where name = ‘testdb‘
name state state_desc
testdb 5 EMERGENCY
3.设置数据库为单用户模式
ALTER DATABASE testdb SET SINGLE_USER WITH ROLLBACK IMMEDIATE
4.重建日志文件
DBCC CHECKDB(‘testdb‘,REPAIR_ALLOW_DATA_LOSS)
返回的结果信息:檔案啟動錯誤。實體檔案名稱"D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\testdb_log.ldf" 可能不正確。
警告: 資料庫‘testdb‘ 的記錄已經重建。已遺失交易一致性。RESTORE 鏈已中斷,伺服器已經沒有先前記錄檔的內容,因此您必須知道這些內容。應該執行DBCC CHECKDB 來驗證實體一致性。資料庫已進入僅限DBO 模式。您準備好讓資料庫能供使用後,必須重設資料庫選項,並刪除任何額外的記錄檔。
5.检查数据库状态
select name,state,state_desc from sys.databases where name = ‘testdb‘
name state state_desc
TEST 0 ONLINE
6.将数据库由单用户模式修改为多用户模式
ALTER DATABASE testdb SET MULTI_USER
数据库此时已可正常使用
原文链接:http://blog.itpub.net/10314474/viewspace-696555/
原文:http://www.cnblogs.com/wangping01/p/4844669.html
内容总结
以上是互联网集市为您收集整理的SQL Server 2005数据库日志丢失的恢复全部内容,希望文章能够帮你解决SQL Server 2005数据库日志丢失的恢复所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。