在 SQL Server 中,資料庫檔案的狀態與資料庫的狀態無關。 檔案一律處於一個特定狀態,例如 ONLINE 或 OFFLINE。 若要檢視檔案的目前狀態,請使用 sys.master_files 或 sys.database_files 目錄檢視。 如果資料庫離線,可以從目錄檢視 sys.master_files 檢視來檢視檔案的狀態。
檔案群組中檔案的狀態會決定整個檔案群組的可用性。 若要使某個檔案群組為可用的,則在檔案群組中的所有檔案必須都在線上。 若要檢視檔案群組的目前狀態,請使用 sys.filegroups 目錄檢視。 如果檔案群組離線,而且您嘗試透過 Transact-SQL 語句存取檔案群組,它將會失敗並出現錯誤。 當查詢優化器建置 SELECT 語句的查詢計劃時,它會避免位於離線檔案群組中的非叢集索引和索引檢視表,讓這些語句成功。 不過,如果離線檔案群組包含目標資料表的堆積或叢集索引,SELECT 陳述式將會失敗。 此外,修改離線檔案群組中任何索引之數據表的任何 INSERT、UPDATE 或 DELETE 語句都會失敗。
檔案狀態定義
下表定義檔案狀態。
國家 | 定義 |
---|---|
在線 | 檔案適用於所有作業。 如果資料庫本身在在線,主要檔案群組中的檔案一律會處於在線狀態。 如果主要檔案群組中的檔案不在在線,資料庫就不會上線,且次要檔案的狀態未定義。 |
離線 | 檔案無法存取,而且可能不存在於磁碟上。 明確使用者動作會讓檔案離線,並維持離線狀態,直到採取其他用戶動作為止。 **謹慎** 檔案應該只在檔案損毀時脫機設定,但可以還原。 設定為離線的檔案只能透過從備份還原檔案,在線上設定。 如需還原單一檔案的詳細資訊,請參閱 RESTORE (Transact-SQL) 。 |
修復中 | 正在還原檔案。 檔案會進入還原狀態,因為還原命令會影響整個檔案,而不只是頁面還原,而且會保持此狀態,直到還原完成且檔案復原為止。 |
待恢復中 | 檔案的復原已延後。 由於文件在逐步還原過程中未被完整恢復且復原,檔案會自動進入此狀態。 用戶必須執行其他動作,才能解決錯誤,並允許復原程式完成。 如需詳細資訊,請參閱 分次還原 (SQL Server) 。 |
嫌疑犯 | 在聯機還原程序期間,檔案恢復失敗。 如果檔案位於主要檔案群組中,資料庫也會標示為可疑。 否則,只有檔案是可疑的,而且資料庫仍在在線。 檔案會維持在可疑狀態,直到透過以下方法之一使檔案可用為止。 還原與恢復 具有 REPAIR_ALLOW_DATA_LOSS 的 DBCC CHECKDB |
不再存在 | 檔案未上線時已卸除。 當移除了離線檔案群組,在檔案群組中的所有檔案就會變成無用。 |