SQL Server資料庫多資料檔案恢復技術
由於截斷資料庫日誌或者其他需要,我們需要由單個資料檔案中恢復資料庫。下面的操作需要用sa的身份在SQL Server 查詢分析器中登入,並一直假設我們要恢復的資料庫是test,資料檔案是C:Program FilesMicrosoft SQL ServerMSSQLdatatest_data.mdf。同時如果你需要截斷日誌檔案,請在資料庫離線後將日誌檔案改名。
如果您的mdf檔案是當前資料庫產生的並且是單個資料日誌的,那麼一般情況下你可以很輕鬆的使用sp_attach_single_file_db恢復資料庫,操作語句如下:
sp_attach_single_file_db @dbname = 'test', @physname = 'C:Program FilesMicrosoft SQL ServerMSSQLDatatest_data.mdf'會出現類似下面的提示資訊裝置啟用錯誤。物理檔名 'C:Program FilesMicrosoft SQL ServerMSSQLdatatest_Log.LDF' 可能有誤。已建立名為 'C:Program FilesMicrosoft SQL ServerMSSQLDatatest_log.LDF' 的新日誌檔案。如果目的是截斷日誌,你可以將剛才改名的日誌檔案刪除或者備份了。
但是,如果您的資料庫檔案是從其他計算機上覆制過來的或者有多個資料或日誌檔案,那麼很不幸,上述辦法多半行不通了。你也許會得到類似下面的錯誤資訊伺服器: 訊息 1813,級別 16,狀態 2,行 1未能開啟新資料庫 'test'。CREATE DATABASE 將終止。裝置啟用錯誤。物理檔名 'C:Program FilesMicrosoft SQL ServerMSSQLDatatest_log.LDF' 可能有誤。我們需要用下面的操作來試著恢復(此操作具有很大的危險性,請確認在操作時您的資料庫不在使用中)。
1. 1、我們使用預設方式建立一個供恢復使用的資料庫(如test)。如果是多資料檔案的,請確認新建資料檔案的名稱及數目和要恢復的資料檔案一致。日誌檔案就不必了;
2. 2、停掉資料庫伺服器;
3. 3、將剛才生成的資料庫的日誌檔案test_log.ldf刪除,用要恢復的資料庫mdf檔案覆蓋剛才生成的資料庫資料檔案test_data.mdf;
4. 4、啟動資料庫伺服器。此時會看到資料庫test的狀態為“置疑”;
5. 5、設定資料庫允許直接作業系統表。在SQL Server 企業管理器裡面選擇資料庫伺服器,按右鍵,選擇“屬性”,在“伺服器設定”頁面中將“允許對系統目錄直接修改”一項選中;
6. 6、設定test為緊急修復模式update sysdatabases set status=-32768 where dbid=DB_ID('test')此時可以在SQL Server 企業管理器裡面看到該資料庫處於“只讀置疑離線緊急模式”可以看到資料庫裡面的表,但是僅僅有系統表;
7. 7、 下面重建資料庫日誌檔案dbcc rebuild_log('test','C:Program FilesMicrosoft SQL ServerMSSQLDatatest_log.ldf')執行過程中,如果遇到下列提示資訊:伺服器: 訊息 5030,級別 16,狀態 1,行 1未能排它地鎖定資料庫以執行該操作。DBCC 執行完畢。如果 DBCC 輸出了錯誤資訊,請與系統管理員聯絡。說明其他程式正在使用該資料庫,如果您正在使用SQL Server 企業管理器,那麼關閉它。正確執行完成的提示應該類似於:警告: 資料庫 'test' 的日誌已重建。已失去事務的一致性。應執行 DBCC CHECKDB 以驗證物理一致性。將必須重置資料庫選項,並且可能需要刪除多餘的日誌檔案。DBCC 執行完畢。如果 DBCC 輸出了錯誤資訊,請與系統管理員聯絡。此時開啟在SQL Server 企業管理器裡面會看到資料庫的狀態為“只供DBO使用”;
8. 8、 驗證資料庫一致性(可省略)dbcc checkdb('test')在進行了多個驗證後,最後的執行結果一般如下:CHECKDB 發現了 0 個分配錯誤和 0 個一致性錯誤(在資料庫 'test' 中)。DBCC 執行完畢。如果 DBCC 輸出了錯誤資訊,請與系統管理員聯絡;
9. 9、設定資料庫為正常狀態sp_dboption 'test','dbo use only','false'如果沒有出錯,那麼恭喜,現在就可以正常的使用恢復後的資料庫啦;
10、最後一步,我們要將步驟5中設定的“允許對系統目錄直接修改”一項恢復。在SQL Server 企業管理器裡面選擇資料庫伺服器,按右鍵,選擇“屬性”,取消在“伺服器設定”頁面中將“允許對系統目錄直接修改”的選擇。[@more@]SQL Server資料庫多資料檔案恢復技術來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/731863/viewspace-1002498/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【資料庫資料恢復】Sql Server資料庫檔案丟失的資料恢復過程資料庫資料恢復SQLServer
- SQL Server資料庫恢復,SQL Server資料恢復,SQL Server資料誤刪除恢復工具SQLRescueSQLServer資料庫資料恢復
- 資料庫資料恢復-SQL SERVER資料庫檔案大小變為“0”的資料恢復方案資料庫資料恢復SQLServer
- 【資料庫資料恢復】Sql Server資料庫資料恢復案例資料庫資料恢復SQLServer
- Sql Server資料庫檔案丟失的恢復方法SQLServer資料庫
- 【資料庫資料恢復】sql server資料庫連線失效的資料恢復案例資料庫資料恢復SQLServer
- 資料庫資料恢復—附加資料庫錯誤823的SQL Server資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】SQL Server資料庫磁碟空間不足的資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】SQL server資料庫被加密怎麼辦?如何恢復?資料庫資料恢復SQLServer加密
- 【資料庫資料恢復】透過資料頁恢復Sql Server資料庫資料的過程資料庫資料恢復SQLServer
- 【北亞資料恢復】通過碎片拼接技術恢復XenServer伺服器磁碟中SQL Server資料庫資料資料恢復Server伺服器SQL資料庫
- 資料庫資料恢復-SQL SERVER資料庫MDF (NDF)或LDF損壞如何恢復資料?資料庫資料恢復SQLServer
- SQL SEVER 缺少LOG檔案資料庫恢復SQL資料庫
- 【資料庫資料恢復】windows server下SqlServer資料庫的資料恢復資料庫資料恢復WindowsServerSQL
- 【資料庫資料恢復】透過恢復NDF檔案修復資料庫的資料恢復過程資料庫資料恢復
- 【資料庫資料恢復】MongoDB資料庫檔案損壞的資料恢復案例資料庫資料恢復MongoDB
- SQL Server資料庫恢復常見問題SQLServer資料庫
- 【資料庫資料恢復】磁碟空間不足導致sql server錯誤的資料恢復資料庫資料恢復SQLServer
- 【資料庫資料恢復】MS SQL資料庫附加資料庫出錯怎麼恢復資料?資料庫資料恢復SQL
- SQL Server資料庫出現邏輯錯誤的資料恢復SQLServer資料庫資料恢復
- 【資料庫資料恢復】EXT3檔案系統下MYSQL資料庫恢復案例資料庫資料恢復MySql
- 伺服器sql server 資料恢復伺服器SQLServer資料恢復
- 資料庫資料恢復—MongoDB資料庫檔案丟失,啟動報錯的資料恢復案例資料庫資料恢復MongoDB
- 【資料庫資料恢復】Oracle資料庫檔案出現壞塊報錯的資料恢復案例資料庫資料恢復Oracle
- 伺服器SQL server資料庫被加密恢復方案伺服器SQLServer資料庫加密
- 資料庫備份與恢復技術資料庫
- 效哥帶你讀懂Access資料庫檔案恢復提取技術資料庫
- sql server資料庫錯誤資料恢復(資料庫連線失效,無法附加查詢)SQLServer資料庫資料恢復
- MongoDB資料庫報錯,資料庫檔案丟失資料恢復案例MongoDB資料庫資料恢復
- 【資料庫資料恢復】SAP資料庫資料恢復案例資料庫資料恢復
- SQL SERVER備份資料庫檔案(使用SSMS)SQLServer資料庫SSM
- MSSQL資料庫資料恢復案例:ndf檔案大小變為0KB恢復資料SQL資料庫資料恢復
- 【資料庫資料恢復】mdb_catalog.wt檔案丟失的MongoDB資料恢復案例資料庫資料恢復MongoDB
- 【資料庫資料恢復】SQL SERVER資料庫MDF (NDF)或LDF損壞問題如何解決?資料庫資料恢復SQLServer
- Sybase SQL Anywhere(ASA)資料庫恢復,ASA資料恢復,資料誤刪除恢復工具ReadASADBSQL資料庫資料恢復
- SQL Server 資料庫檔案的分離和附加SQLServer資料庫
- 伺服器資料恢復-ext3檔案系統下oracle資料庫資料恢復案例伺服器資料恢復Oracle資料庫
- 伺服器資料恢復-ESX SERVER資料恢復案例伺服器資料恢復Server
- 寶塔資料庫恢復 mysql資料庫丟失恢復 mysql資料庫刪除庫恢復 寶塔mysql資料庫恢復資料庫MySql