只有mdf和ldf檔案 如何恢複資料庫

來源:互聯網
上載者:User
只有mdf和ldf檔案 如何恢複資料庫

 

1. 首先確認已經備份了.mdf和.ldf檔案。

2. 在SQL Server中建立一個同名的資料庫,然後停止SQL Server服務。

3. 用原有的.mdf和.ldf檔案覆蓋建立資料庫對應的.mdf和.ldf檔案。

4. 重新啟動SQL Server服務,這是應該會看到這個資料庫處於置疑(Suspect)狀態。(人品好的話,這個時候資料庫就已經恢複正常了)

5. 在SQL查詢分析器中執行以下命令,以允許更新系統資料表:

use master

go

sp_configure ‘allow updates’,1

reconfigure with override

go

6. 將這個資料庫置為緊急模式:

update sysdatabases set status = 32768 where name = 'db_name'

go

7. 使用DBCC CHECKDB命令檢查資料庫中的錯誤:

DBCC CHECKDB(‘db_name’)

GO

8. 如果DBCC CHECKDB命令失敗,請轉至第10步,否則先將資料庫置為單一使用者模式,再嘗試對其進行修複:

sp_dboption 'db_name',’single user’,’true’

DBCC CHECKDB(‘db_name’, REPAIR_ALLOW_DATA_LOSS)

GO

如果在執行DBCC CHECKDB(‘db_name’, REPAIR_ALLOW_DATA_LOSS)命令時提示說資料庫未處於單一使用者模式狀態的話,則重新啟動SQL Server服務,然後繼續嘗試。

9. 如果DBCC CHECKDB(‘db_name’, REPAIR_ALLOW_DATA_LOSS)命令失敗,請轉至第10步,否則若成功修複了資料庫中的錯誤:

重新執行DBCC CHECKDB(‘db_name’)命令,確認資料庫中已沒有錯誤存在。

清除資料庫的置疑狀態:sp_resetstatus 'db_name'

清除資料庫的單一使用者模式狀態:sp_dboption 'db_name',’single user’,’false’

重新啟動SQL Server服務,如果一切正常的話,則資料庫已經成功恢複。

10. 如果以上步驟都不能解決問題的話,請參考附件中的文檔嘗試通過重建交易記錄來恢複資料庫中的資料。

如果您只有MDF檔案,問題就更加複雜一些,我們需要直接重建交易記錄了:

1. 在SQL Server中建立一個同名的資料庫,然後停止SQL Server服務。

2. 用原有的ldf檔案覆蓋建立資料庫對應的.mdf檔案,將其記錄檔(.ldf)刪除。

3. 啟動SQL Server服務,並將資料庫置為緊急模式(同上: 步驟5和步驟6)。

4. 停止並重新啟動SQL Server服務。

5. 執行以下命令重建資料庫記錄檔:(下面是個樣本,您要用您實際的資料庫名)

DBCC REBUILD_LOG(’cas_db’, 'D:\cas_db\cas_db_Log.LDF')

6. 重新將該資料庫置為單一使用者模式。
7. 再次嘗試使用DBCC CHECKTABLE或DBCC CHECKDB命令檢查並修複資料庫中的錯誤

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.