❶ 在什麼情況下設置資料庫緊急狀態
EMERGENCY 主要用於故障排除。例如,可以將由於損壞了日誌文件而標記為可疑的數專據庫設置為 EMERGENCY 狀態。屬這樣,系統管理員便可對資料庫進行只讀訪問。只有 sysadmin 固定伺服器角色的成員才可以將資料庫設置為 EMERGENCY 狀態。
❷ 如何在SQL Server 2005中修復損壞的資料庫
1. 在SQL Server Management Studio中隨便創建一個資料庫,例如:PVLink。 
2. 停止 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 ,把資料庫變成在線狀態。 
以上介紹的方法對於通過「附加」的方法無法恢復受到比較嚴重損壞的資料庫比較有效,總的來看,SQL Server 2005給資料庫管理和開發提供了更加有效實用的工具和方法。
❸ 如何解決資料庫是緊急狀態
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) ===================================
❹ MDF文件丟失,如何恢復資料庫(MS-SQL)
在sql
server
2005
資料庫中,一次誤操作,分離資料庫後,直接將日誌文件刪除掉了,後進行附加出錯,無法附加上去,經過如下解決方案,資料庫附加成功,操作如下:
第一步:先建立一個同名資料庫,停止sql
server2005,將原來的.mdf資料庫文件覆蓋剛新建的.mdf資料庫文件,重新啟動資料庫。
第三步:在查詢分析器中運行如下代碼:
alter
database
你的.mdf文件名
set
emergency
'--將資料庫設置為緊急狀態use
masterdeclare
@databasename
varchar(255)
set
@databasename='你的.mdf文件名'
'--你的.mdf文件文件名
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'--將目標資料庫置為多用戶狀態
❺ 如何恢復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