資料庫狀態 (database states) 查詢資料庫的當前狀態 : 1、查詢所有資料庫的狀態 ,通過sys.databases目錄視圖的state_desc列 2、查詢指定資料庫的狀態,通過DATABASEPROPERTYEX函數的Status屬性 狀態: ONLINE:可以對資料庫進行訪問。 ...
資料庫狀態 (database states)
查詢資料庫的當前狀態 :
1、查詢所有資料庫的狀態 ,通過sys.databases目錄視圖的state_desc列
user master go select state_desc ,[name] from sys.databases go
2、查詢指定資料庫的狀態,通過DATABASEPROPERTYEX函數的Status屬性
select DATABASEPROPERTYEX('demoData','status')
go
狀態:
ONLINE:可以對資料庫進行訪問。 即使可能尚未完成恢復的撤消階段,主文件組仍處於線上狀態。
OFFLINE:資料庫無法使用。 資料庫由於顯式的用戶操作而處於離線狀態,並保持離線狀態直至執行了其他的用戶操作。 例如,可能會讓資料庫離線以便將文件移至新的磁碟。 然後,在完成移動操作後,使資料庫恢復到線上狀態。
RESTORING:正在還原主文件組的一個或多個文件,或正在離線還原一個或多個輔助文件。 資料庫不可用。
RECOVERING:正在恢複數據庫。 恢復進程是一個暫時性狀態,恢覆成功後資料庫將自動處於線上狀態。 如果恢復失敗,資料庫將處於可疑狀態。 資料庫不可用。
RECOVERY PENDING:SQL Server 在恢復期間遇到了與資源相關的錯誤。 資料庫未損壞,但是可能缺少文件,或系統資源限制可能導致無法啟動資料庫。 資料庫不可用。 需要用戶另外執行操作來解決問題,並讓恢復進程完成。
SUSPECT(質疑):至少主文件組可疑或可能已損壞。 在 SQL Server啟動過程中無法恢複數據庫。 資料庫不可用。需要用戶另外執行操作來解決問題。
EMERGENCY(緊急):用戶更改了資料庫,並將其狀態設置為 EMERGENCY。 資料庫處於單用戶模式,可以修複或還原。 資料庫標記為 READ_ONLY,禁用日誌記錄,並僅限 sysadmin 固定伺服器角色的成員訪問。 EMERGENCY 主要用於故障排除。 例如,可以將標記為“可疑”的資料庫設置為 EMERGENCY 狀態。 這樣可以允許系統管理員對資料庫進行只讀訪問。 只有 sysadmin 固定伺服器角色的成員才可以將資料庫設置為 EMERGENCY 狀態。
文件狀態 (database states)
在 SQL Server中,資料庫文件的狀態獨立於資料庫的狀態。 文件始終處於一個特定狀態,例如 ONLINE 或 OFFLINE
查詢文件狀態:
--若要查看文件的當前狀態 select state_desc,[name] from sys.master_files select state_desc,[name] from sys.database_files --如果資料庫處於離線狀態 select state_desc,[name] from sys.master_files
ONLINE:文件可用於所有操作。 如果資料庫本身處於線上狀態,則主文件組中的文件始終處於線上狀態。如果主文件組中的文件處於離線狀態,則資料庫將處於離線狀態,並且輔助文件的狀態未定義。
OFFLINE:文件不可訪問,並且可能不顯示在磁碟中。 文件通過顯式用戶操作變為離線,併在執行其他用戶操作之前保持離線狀態。
** 警告 *\* 當文件已損壞時,該文件僅應設置為離線,但可以進行還原。 設置為離線的文件只能通過從備份還原才能設置為線上。
RESTORING:正在還原文件。 文件處於還原狀態(因為還原命令會影響整個文件,而不僅是頁還原),並且在還原完成及文件恢復之前,一直保持此狀態。
RECOVERY PENDING:文件恢復被推遲。 由於在段落還原過程中未還原和恢覆文件,因此文件將自動進入此狀態。 需要用戶執行其他操作來解決該錯誤,並允許完成恢復過程。
SUSPECT:聯機還原過程中,恢覆文件失敗。 如果文件位於主文件組,則資料庫還將標記為可疑。 否則,僅文件處於可疑狀態,而資料庫仍處於線上狀態。
在通過以下方法之一將文件變為可用之前,該文件將保持可疑狀態:
還原和恢復
包含 REPAIR_ALLOW_DATA_LOSS 的 BCC CHECKDB
DEFUNCT:當文件不處於線上狀態時被刪除。 刪除離線文件組後,文件組中的所有文件都將失效。