檔案狀態
在 SQL Server 中,資料庫檔案的狀態是與資料庫的狀態分開維護。檔案永遠處於特定狀態,例如 ONLINE 或 OFFLINE。若要檢視檔案目前的狀態,請使用 sys.master_files 或 sys.database_files 目錄檢視。如果資料庫是離線的,就可以從 sys.master_files 目錄檢視來檢視檔案的狀態。
在檔案群組中的檔案狀態將決定整個檔案群組的可用性。若要使某個檔案群組為可用的,則在檔案群組中的所有檔案必須都在線上。若要檢視檔案群組目前的狀態,請使用 sys.filegroups 目錄檢視。如果檔案群組離線而您嘗試透過 Transact-SQL 陳述式存取檔案群組,就會發生錯誤。當查詢最佳化工具建立 SELECT 陳述式的查詢計畫時,它可避免使用離線檔案群組中所存在的非叢集索引和叢集檢視,以利陳述式成功。不過,如果離線檔案群組包含目標資料表的堆積或叢集索引,SELECT 陳述式將會失敗。除此之外,在離線檔案群組中,以 INSERT、UPDATE 或 DELETE 陳述式修改含有索引的資料表將會失敗。
檔案狀態定義
下表定義檔案狀態。
狀態 |
定義 |
---|---|
ONLINE |
檔案可供所有的作業使用。如果資料庫本身是在線上,則主要檔案群組中的檔案將永遠在線上。如果在主要檔案群組中的檔案不在線上,則資料庫也不會在線上且次要檔案的狀態是未定義的。 |
OFFLINE |
檔案無法存取且可能不在磁碟上。明確的使用者動作會使檔案變成離線,而且在採取其他使用者動作之前都是離線狀態。
警告
當檔案損毀時,應該只能將檔案設為離線狀態,但是它是可以還原的。設為離線的檔案只能透過從備份還原檔案來將它設為線上。如需還原單一檔案的詳細資訊,請參閱<RESTORE (Transact-SQL)>。
|
RESTORING |
已還原檔案。檔案會輸入還原狀態,因為還原命令會影響整個檔案,而不是只有頁面還原,而且會一直保留此狀態,直到完成還原並復原檔案為止。 |
RECOVERY PENDING |
已延遲檔案復原。檔案會自動輸入此狀態,因為在分次還原處理序中,有未還原和未復原的檔案。需要使用者執行其他動作以解決錯誤並允許完成復原處理。如需詳細資訊,請參閱<執行分次還原>。 |
SUSPECT |
在線上還原處理期間檔案復原失敗。如果檔案是在主要檔案群組中,資料庫也會標示為有疑問。否則,只有檔案是有疑問的,資料庫仍會在線上。 檔案仍然會在有疑問的狀態下,直到可以使用下列其中一個方法:
|
DEFUNCT |
當它在線上時,就會卸除檔案。當移除了離線檔案群組,在檔案群組中的所有檔案就會變成無用。 |