向書本學習,還要向?qū)嵺`學習、向生活學習。消化已有知識,
而且要力求有所發(fā)現(xiàn)、有所發(fā)明、有所創(chuàng)造
2019/4/5 9:28:35
1. 在SQL Server Management Studio中隨便創(chuàng)建一個數(shù)據(jù)庫,例如:PVLink。
2. 停止SQL Server服務。
如果不停止此服務,剛才創(chuàng)建的PVLink數(shù)據(jù)庫將即不能被拷貝,也不能被覆蓋。
3. 把已經(jīng)損壞的數(shù)據(jù)庫的mdf文件拷貝并覆蓋剛才新建的數(shù)據(jù)庫產(chǎn)生的mdf文件。
4. 啟動SQL Server服務。
此時可以看見剛才創(chuàng)建的PVLink數(shù)據(jù)庫名字后面沒有加號,無法察看其任何信息,其實目前它已經(jīng)處于無法使用的狀態(tài)。
5. 把數(shù)據(jù)庫設置為緊急狀態(tài)。
通過在“查詢分析器”中執(zhí)行:alter database PVLink set EMERGENCY 可以將數(shù)據(jù)庫設置為緊急狀態(tài),此時數(shù)據(jù)庫PVLink的圖標改變成粉紅色并出現(xiàn)“緊急”字樣。
use master
declare @databasename varchar(255)
set @databasename='InfoCollection2'
exec sp_dboption @databasename, N'single', N'true'
dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(@databasename,REPAIR_REBUILD)
exec sp_dboption @databasename, N'single', N'false'
6. 將數(shù)據(jù)庫設置為單用戶模式。
如果不設置為單用戶模式,我們將無法使用帶有效repair選項的DBCC CHECKDB來檢查/修復數(shù)據(jù)庫,SQL Server 2005設置單用戶模式比SQL Server 2000容易,只要在“查詢分析器”中執(zhí)行:
use master
go
sp_dboption 'PVLink',single,true
即可。
7. 修復數(shù)據(jù)庫
修復數(shù)據(jù)庫主要使用DBCC來操作,一般來講,我們可以使用以下三個選項來修復:
REPAIR_ALLOW_ DATA_LOSS
嘗試修復報告的所有錯誤。這些修復可能會導致一些數(shù)據(jù)丟失。
REPAIR_FAST
僅為保持向后兼容性而保留。
REPAIR_REBUILD
執(zhí)行由 REPAIR_FAST 執(zhí)行的所有修復,包括需要較長時間的修復(如重建索引)。執(zhí)行這些修復時不會有丟失數(shù)據(jù)的危險。
一般我們通過執(zhí)行:DBCC CHECKDB('PVLink',REPAIR_REBUILD) 即可完成修復工作,此時 SQL Server 2005會給出很多提示,因為這個過程可能會導致一些數(shù)據(jù)庫設計或者數(shù)據(jù)的丟失,并且在這個過程中,會產(chǎn)生新的以ldf為擴展名的數(shù)據(jù)庫日志文件。
8. 完成以上的步驟后,一般情況下數(shù)據(jù)庫應該可用了,如果數(shù)據(jù)庫此時仍然是緊急狀態(tài),可以通過:alter database PVLink set ONLINE ,把數(shù)據(jù)庫變成在線狀態(tài)。
以上介紹的方法對于通過“附加”的方法無法恢復受到比較嚴重損壞的數(shù)據(jù)庫比較有效,總的來看,SQL Server 2005給數(shù)據(jù)庫管理和開發(fā)提供了更加有效實用的工具和方法。
深圳市南山區(qū)南山街道南海大道西桂廟路北陽光華藝大廈1棟4F、4G-04
咨詢電話:136 8237 6272
大客戶咨詢:139 0290 5075
業(yè)務QQ:195006118
技術QQ:179981967