❶ 如何恢復sql數據緊急模式
按照正常的資料庫備份操作備份一下資料庫,然後按照後面的操作只還原數據文件 A. 我們使用默認方式建立一個供恢復使用的資料庫(如test)。可以在SQL Server Enterprise Manager裡面建立。
B. 停掉資料庫伺服器。
C. 將剛才生成的資料庫的日誌文件test_log.ldf刪除,用要恢復的資料庫mdf文件覆蓋剛才生成的資料庫數據文件test_data.mdf。
D. 啟動資料庫伺服器。此時會看到資料庫test的狀態為「置疑」。這時候不能對此資料庫進行任何操作。
E. 設置資料庫允許直接操作系統表。此操作可以在SQL Server Enterprise Manager裡面選擇資料庫伺服器,按右鍵,選擇「屬性」,在「伺服器設置」頁面中將「允許對系統目錄直接修改」一項選中。也可以使用如下語句來實現。
use master
go
sp_configure 'allow updates ',1
go
reconfigure with override
go
F. 設置test為緊急修復模式
update sysdatabases set status=-32768 where dbid=DB_ID( 'text ')
此時可以在SQL Server Enterprise Manager裡面看到該資料庫處於「只讀\置疑\離線\緊急模式」可以看到資料庫裡面的表,但是僅僅有系統表
G. 下面執行真正的恢復操作,重建資料庫日誌文件
dbcc rebuild_log( 'text ', 'D:\MSSQL7\Data\text_log.ldf ')
執行過程中,如果遇到下列提示信息:
伺服器: 消息 5030,級別 16,狀態 1,行 1
未能排它地鎖定資料庫以執行該操作。
DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。
說明您的其他程序正在使用該資料庫,如果剛才您在F步驟中使用SQL Server Enterprise Manager打開了text庫的系統表,那麼退出SQL Server Enterprise Manager就可以了。
正確執行完成的提示應該類似於:
警告: 資料庫 'test ' 的日誌已重建。已失去事務的一致性。應運行 DBCC CHECKDB 以驗證物理一致性。將必須重置資料庫選項,並且可能需要刪除多餘的日誌文件。
DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。
此時打開在SQL Server Enterprise Manager裡面會看到資料庫的狀態為「只供DBO使用」。此時可以訪問資料庫裡面的用戶表了。
H. 驗證資料庫一致性(可省略)
dbcc checkdb( 'text ')
一般執行結果如下:
CHECKDB 發現了 0 個分配錯誤和 0 個一致性錯誤(在資料庫 'test ' 中)。
DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。
I. 設置資料庫為正常狀態
sp_dboption 'text ', 'dbo use only ', 'false '
如果沒有出錯,那麼恭喜,現在就可以正常的使用恢復後的資料庫啦。
J. 最後一步,我們要將步驟E中設置的「允許對系統目錄直接修改」一項恢復。因為平時直接操作系統表是一件比較危險的事情。當然,我們可以在SQL Server Enterprise Manager裡面恢復,也可以使用如下語句完成
sp_configure 'allow updates ',0
go
reconfigure with override
go
❷ SQL Server資料庫成為緊急模式怎麼恢復
ALTER DATABASE Mydb SET MULTI_USER
ALTER DATABASE Mydb SET ONLINE
❸ sql2000資料庫緊急模式如何恢復
use master
go
exec sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE /* 打開修改系統表的開關 */
go
update sysdatabases set status=32768 where name='jiax' /* 設置資料庫狀態*/
go
update sysdatabases set status=0 where name='jiax' /* 重置資料庫狀態 */
go
exec sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE /* 關閉打開修改系統表的開關 */
/*一條一條執行語句,起作用的是set status=0那句,其中jiax是資料庫名字*/
❹ 我SQL2005資料庫變成緊急狀態了 試了很多代碼都改不回來了
右鍵緊急狀態的資料庫--屬性--選項--狀態:里邊的選項修改下試試
❺ 如何解決資料庫是緊急狀態
SQL資料庫修復 資料庫緊急狀態解決方法(2007-12-29 12:23:39)標簽:it1、USE MASTERGOSP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDEGO2、UPDATE SYSDATABASES SET STATUS =-32768 WHERE NAME='twhis'Go3、sp_dboption 'twhis', 'single user', 'true' --設置為單用戶模式Go4、 update sysdatabases set status =28 where name='twhis'Go5、dbcc rebuild_log('twhis','D:\Program Files\Microsoft SQL Server\MSSQL\Data\twhis_log.ldf') --重建日誌,需要把原先的日誌文件改名或者刪除go6、DBCC CHECKDB('twhis',REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGSGo7、sp_configure 'allow updates', 0 reconfigure with overrideGo8、--修復數據表use twhisdeclare @dbname varchar(255) set @dbname='twhis' exec sp_dboption @dbname,'single user','true' dbcc checktable('mzmxz',REPAIR_ALLOW_DATA_LOSS) dbcc checktable('mzmxz',REPAIR_REBUILD) ------把』 需要修復的數據表的名稱』更改為執行DBCC CHECKDB時報錯的數據表的名稱 exec sp_dboption @dbname,'single user','false' sp_dboption 'twhis', 'single user', 'false'Go9、sp_dboption 'twhis', 'dbo use', 'false' sp_dboption 'twhis', 'single user', 'true' DBCC CHECKDB('twhis',REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS DBCC CHECKDB('twhis',REPAIR_rebuild) ===================================
❻ 資料庫如何修復
可能有文件缺失或損壞,可以停掉SQL Server服務,先將資料庫文件夾復制一份並安全存儲,對資料庫所在磁碟執行CHKDSK,排除磁碟錯誤,然後啟動SQL Server服務,嘗試修復資料庫:
1.在SQL Server Management Studio中隨便創建一個資料庫,例如:PVLink。
2.停止SQL Server服務。
如果不停止此服務,剛才創建的PVLink資料庫將即不能被拷貝,也不能被覆蓋。
3.把已經損壞的資料庫的mdf文件拷貝並覆蓋剛才新建的資料庫產生的mdf文件。
4.啟動SQL Server服務。
此時可以看見剛才創建的PVLink資料庫名字後面沒有加號,無法察看其任何信息,其實目前它已經處於無法使用的狀態。
5.把資料庫設置為緊急狀態。
通過在「查詢分析器」中執行:alter database PVLink set EMERGENCY 可以將資料庫設置為緊急狀態,此時資料庫PVLink的圖標改變成粉紅色並出現「緊急」字樣。
6.將資料庫設置為單用戶模式。
如果不設置為單用戶模式,我們將無法使用帶有效repair選項的DBCC CHECKDB來檢查/修復資料庫,SQL Server 2005設置單用戶模式比SQL Server 2000容易,只要在「查詢分析器」中執行:
use master
go
sp_dboption 'PVLink',single,true
7.修復資料庫
修復資料庫主要使用DBCC來操作,一般來講,我們可以使用以下三個選項來修復:
●REPAIR_ALLOW_ DATA_LOSS
嘗試修復報告的所有錯誤。這些修復可能會導致一些數據丟失。
●REPAIR_FAST
僅為保持向後兼容性而保留。
●REPAIR_REBUILD
執行由 REPAIR_FAST 執行的所有修復,包括需要較長時間的修復(如重建索引)。執行這些修復時不會有丟失數據的危險。
一般我們通過執行:DBCC CHECKDB('PVLink',REPAIR_REBUILD) 即可完成修復工作,此時 SQL Server 2005會給出很多提示,因為這個過程可能會導致一些資料庫設計或者數據的丟失,並且在這個過程中,會產生新的以ldf為擴展名的資料庫日誌文件。
8.完成以上的步驟後,一般情況下資料庫應該可用了,如果資料庫此時仍然是緊急狀態,可以通過:alter database PVLink set ONLINE ,把資料庫變成在線狀態。
檢查PVLink資料庫內數據是否正常,是的話換回原資料庫即可。