Dateistatus

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

In SQL Server wird der Status einer Datenbankdatei unabhängig vom Status der Datenbank verwaltet. Eine Datei befindet sich immer in einem bestimmten Status, wie ONLINE oder OFFLINE. Um den aktuellen Status einer Datei anzuzeigen, verwenden Sie die Katalogsicht sys.master_files oder sys.database_files . Wenn die Datenbank offline ist, kann der Status der Dateien über die sys.master_files -Katalogsicht angezeigt werden.

Der Status der Dateien in einer Dateigruppe legt die Verfügbarkeit der gesamten Dateigruppe fest. Damit eine Dateigruppe verfügbar ist, müssen alle Dateien in der Dateigruppe online sein. Wenn Sie den aktuellen Status einer Dateigruppe anzeigen möchten, verwenden Sie die sys.filegroups -Katalogsicht. Wenn eine Dateigruppe offline ist und Sie versuchen, über eine Transact-SQL-Anweisung auf die Dateigruppe zuzugreifen, tritt ein Fehler auf. Wenn der Abfrageoptimierer Abfragepläne für SELECT-Anweisungen erstellt, vermeidet er nicht gruppierte Indizes und indizierte Sichten, die in Offlinedateigruppen gespeichert sind, damit die Anweisungen erfolgreich ausgeführt werden. Enthält die Offlinedateigruppe jedoch den Heap oder gruppierten Index der Zieltabelle, schlagen die SELECT-Anweisungen fehl. Auch alle INSERT-, UPDATE- oder DELETE-Anweisungen, die eine Tabelle mit einem Index in einer Offlinedateigruppe ändern, schlagen fehl.

Dateistatusdefinitionen

Die folgende Tabelle definiert den Dateistatus.

State Definition
ONLINE Die Datei ist für alle Vorgänge verfügbar. Dateien in der primären Dateigruppe sind immer online, wenn die Datenbank selbst online ist. Wenn eine Datei in der primären Dateigruppe nicht online ist, ist die Datenbank nicht online, und der Status der sekundären Dateien ist nicht definiert.
OFFLINE Die Datei ist nicht für den Zugriff verfügbar und ist möglicherweise nicht auf dem Datenträger vorhanden. Dateien werden durch explizite Benutzeraktionen offline geschaltet und bleiben offline, bis weitere Benutzeraktionen durchgeführt werden.

** Achtung ** Ein Dateistatus kann offline festgelegt werden, wenn die Datei beschädigt ist, aber sie kann wiederhergestellt werden. Eine offline geschaltete Datei kann nur durch Wiederherstellen der Datei aus der Sicherung erneut online geschaltet werden. Weitere Informationen zum Wiederherstellen einer einzelnen Datei finden Sie unter RESTORE (Transact-SQL).

Eine Datenbankdatei wird auch auf OFFLINE festgelegt,wenn eine Datenbank sich in einem vollständigen oder massenprotokollierten Wiederherstellungsmodell befindet und eine Datei gelöscht wurde. Der Eintrag in „sys.master_files“ wird beibehalten, bis ein Transaktionsprotokoll hinter dem Wert „drop_lsn“ abgeschnitten wird. Weitere Informationen finden Sie unter Das Transaktionsprotokoll im Abschnitt „Kürzung des Transaktionsprotokolls“.
RESTORING Die Datei wird wiederhergestellt. Dateien gehen aufgrund eines Wiederherstellungsbefehls in den Wiederherstellungsstatus über, der sich auf die gesamte Datei und nicht nur auf eine Seitenwiederherstellung bezieht; sie verbleiben in diesem Status, bis die Wiederherstellung abgeschlossen ist und die Datei wiederhergestellt wurde.
RECOVERY PENDING Die Wiederherstellung der Datei wurde verschoben. Eine Datei geht automatisch in diesen Status über, weil ein schrittweiser Wiederherstellungsvorgang durchgeführt wird, bei dem die Datei nicht wiederhergestellt wird. Es sind weitere Aktionen durch den Benutzer erforderlich, um den Fehler zu beheben und den Wiederherstellungsvorgang erfolgreich abzuschließen. Weitere Informationen finden Sie unter Schrittweise Wiederherstellungen (SQL Server).
SUSPECT Die Wiederherstellung der Datei ist während eines Onlinewiederherstellungsvorgangs fehlgeschlagen. Wenn sich die Datei in der primären Dateigruppe befindet, wird die Datenbank ebenfalls als fehlerverdächtig markiert. Anderenfalls gilt nur für die Datei der Status Fehlerverdächtig, und die Datenbank besitzt auch weiterhin den Status online.

Die Datei behält den Status Fehlerverdächtig, bis sie durch eine der folgenden Methoden bereitgestellt wird:

Wiederherstellung

DBCC CHECKDB mit REPAIR_ALLOW_DATA_LOSS
DEFUNCT Die Datei wurde gelöscht, während sie nicht online war. Alle Dateien in einer Dateigruppe erhalten den Status "defunct", wenn eine Offlinedateigruppe entfernt wird.

ALTER DATABASE (Transact-SQL)

Datenbankstatus

Spiegelungsstatus (SQL Server)

DBCC CHECKDB (Transact-SQL)

Datenbankdateien und Dateigruppen