失而復得——數據庫日志文件丟失后的恢復
前幾天聽英語用到虛擬光驅裝resseta stone,沒想到各種不順,把我的本本給整癱瘓了。后來重整旗鼓,裝了云端,總算是把它搞定了,由于癱瘓來的很突然,所以我的一些數據不小心丟了一些。我新建的數據庫日志文件就悲催的丟啦。其實新建一個數據庫完全可以,只是覺得現在碰到了,而且也不是沒有時間,可以查找一下解決方案,以備以后自己和他人遇到一些類似的情況不必再犯難。
下面來說一下恢復方法:
如果你的數據還在數據庫服務器中,請執行以下三步
1、停止數據庫服務。
2、將需要恢復的數據庫文件復制到另外的位置,然后在SQL Server Management Studio中刪除要恢復的數據庫。
3、啟動數據庫服務。
接下來
1、新建同名的數據庫(數據庫文件名也要相同)。
2、停止數據庫服務。
3、用備份的.mdf文件覆蓋新數據庫的同名文件。
4、啟動數據庫服務。
5、在查詢分析器中:運行如下代碼將數據庫設置為緊急狀態
alter database dbname set emergency |
例如恢復的數據庫名為:MRcharge,圖如下
6、然后再查詢中輸入如下語句就可以恢復數據庫了:
use master declare @databasename varchar(255) set @databasename='MRcharge' exec sp_dboption @databasename, N'single', N'true' --將恢復數據庫置為單用戶狀態 dbcc checkdb('MRcharge',REPAIR_ALLOW_DATA_LOSS) dbcc checkdb('MRcharge',REPAIR_REBUILD) exec sp_dboption 'MRcharge', N'single', N'false' --最后再將恢復數據庫置為多用戶狀態 |
注意:這種方法恢復必須保證你建立數據庫和恢復數據庫用的是統一版本,即:都是sql server 2000,或者 2005,或者2008。
我曾想用sql server 2008恢復2005的數據庫,結果提示版本過低,無法打開,需要升級,于是我在建數據庫的時候特意把兼容級別改成2005的,結果還是一樣。
跨版本恢復待求解,請指點。
posted on 2012-08-22 11:34 順其自然EVO 閱讀(252) 評論(0) 編輯 收藏 所屬分類: 數據庫