SQL SERVER數據庫狀態


一個SQL SERVER數據庫會處於很多種狀態,例如 ONLINE 、RESTORING 、RECOVERING 、RECOVERY_PENDING  、SUSPECT、EMERGENCY 、OFFLINE等等。

一、下圖主要反映了數據庫的主要狀態之間的切換

 

 

二、各種狀態的簡單介紹

1、ONLINE (在線)

這種狀態下,數據庫可以被普通用戶訪問,可以被查詢和修改。

 

2、RESTORING (正在還原)

數據庫在還原狀態下

 

3、RECOVERING (正在恢復)

(1)、Recovering主要處理3件事情:

[1]、分析要做的工作:就是在事務日志文件中,找到那些事務要重做,那些事務要回滾 [2]、Redo:將已經提交的但是沒有寫入數據文件的事務,做前滾 [3]、undo:對沒有提交的事務做回滾

(2)、以下幾個動作會讓數據庫進入Recovering:

[1]、創建數據庫 [2]、Alter Online,上線數據庫 [3]、RESTORE WITH RECONVERY:恢復數據庫 [4]、DatabaseStartup,數據庫啟動,如果數據庫設置了自動關閉,就會在用戶第一次訪問的時候做這個動作。

(3)、此時如果遇到問題就進入RECOVERY_PENDING。如果正常就會變成ONLINE。

 

4、RECOVERY_PENDING(等待恢復)

(1)、如果數據庫在做恢復的時候不能正常打開所有的數據庫文件,數據庫會進入RECOVERY PENDING狀態。

(2)、這種情況下,最可能的原因是丟失數據文件或日志文件。

(3)、解決辦法:用ALTER ONLINE再恢復一次,或者使用備份恢復

 

5、SUSPECT  (置疑)

(1)、當數據庫做恢復的時候由於數據文件或者日志文件里的損壞而失敗,數據庫會進入SUSPECT狀態。

(2)、解決方法:

[1]、再做一次ALTER ONLINE ,讓SQLSERVER再做一次恢復

[2]、放棄當前數據庫,還原備份

[3]、將數據庫狀態設置為EMERGENCY,繼續嘗試修復數據庫

 

6、EMERGENCY (緊急)

(1)、緊急模式。

(2)、這個狀態下,SQLSERVER對沒有完成恢復的數據庫開放一個只讀窗口,供管理員在沒有備份的情況下盡可能地挽救數據。

 

7、OFFLINE (脫機)

(1)、數據庫處於離線狀態,這時候數據庫也不能被訪問。

(2)、可以使用ALTER ONLINE命令,讓數據庫開始恢復,從而進入ONLINE狀態。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM