Stavy souborů

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytický platformní systém (PDW)

V SQL Server se stav databázového souboru udržuje nezávisle na stavu databáze. Soubor je vždy v jednom konkrétním stavu, například ONLINE nebo OFFLINE. Pokud chcete zobrazit aktuální stav souboru, použijte zobrazení sys.master_files nebo sys.database_files katalogu. Pokud je databáze offline, stav souborů se dá zobrazit ze zobrazení katalogu sys.master_files .

Stav souborů ve skupině souborů určuje dostupnost celé skupiny souborů. Aby byla skupina souborů dostupná, musí být všechny soubory v rámci skupiny souborů online. Pokud chcete zobrazit aktuální stav skupiny souborů, použijte zobrazení katalogu sys.filegroups . Pokud je skupina souborů offline a pokusíte se o přístup ke skupině souborů pomocí příkazu Transact-SQL, dojde k chybě. Když optimalizátor dotazů sestaví plány dotazů pro příkazy SELECT, zabrání neclusterovaným indexům a indexovaným zobrazením umístěným v offline skupinách souborů, takže tyto příkazy budou úspěšné. Pokud však offline skupina souborů obsahuje haldu nebo clusterovaný index cílové tabulky, příkazy SELECT selžou. Navíc jakýkoli INSERT, UPDATE, nebo DELETE příkaz, který upravuje tabulku s libovolným indexem v offline souborové skupině, selže.

Definice stavu souboru

Následující tabulka definuje stavy souborů.

Kraj Definition
ONLINE Soubor je k dispozici pro všechny operace. Soubory v primární skupině souborů jsou vždy online, pokud je samotná databáze online. Pokud soubor v primární skupině souborů není online, databáze není online a stavy sekundárních souborů nejsou definovány.
OFFLINE Soubor není k dispozici pro přístup a nemusí být na disku. Soubory se stanou offline explicitní akcí uživatele a zůstanou offline, dokud nebude provedena další akce uživatele.

** Upozornění ** Stav souboru lze nastavit offline, když je soubor poškozený, ale dá se obnovit. Soubor nastavený na offline lze nastavit pouze online obnovením souboru ze zálohy. Další informace o obnovení jednoho souboru najdete v tématu RESTORE (Transact-SQL).

Soubor databáze je také nastaven do režimu OFFLINE, pokud je databáze v režimu úplného nebo hromadně protokolovaného obnovení a je odstraněn soubor. Záznam v sys.master_files zůstává, dokud není protokol transakcí zkrácen za hodnotu drop_lsn. Další informace naleznete v tématu Zkrácení transakčního protokolu.
OBNOVOVÁNÍ Soubor se obnovuje. Soubory zadávají stav obnovení z důvodu příkazu obnovení, který ovlivňuje celý soubor, nejen obnovení stránky, a zůstávají v tomto stavu, dokud se obnovení nedokončí a soubor se obnoví.
ČEKÁ NA OBNOVENÍ Obnovení souboru bylo odloženo. Soubor automaticky přejde do tohoto stavu v důsledku procesu částečného obnovení, při kterém není obnoven ani uveden do konzistentního stavu. K vyřešení chyby je potřeba provést další akci uživatele a umožnit dokončení procesu obnovení. Pro více informací viz Dílčí obnovení (SQL Server).
PODEZŘELÝ Obnovení souboru se nezdařilo během procesu online obnovení. Pokud je soubor v primární skupině souborů, je databáze označena také jako podezřelá. V opačném případě je podezřelý jenom soubor a databáze je stále online.

Soubor zůstane v podezřelém stavu, dokud ho nezpřístupní jedna z následujících metod:

Obnovení a zotavení

DBCC CHECKDB s možností REPAIR_ALLOW_DATA_LOSS
ZANIKLÝ Soubor byl vyřazen, když nebyl online. Všechny soubory ve skupině souborů se po odebrání offline skupiny souborů stanou neplatnými.

ALTER DATABASE (Transact-SQL)

Stavy databáze

Stavy zrcadlení (SQL Server)

DBCC CHECKDB (Transact-SQL)

Databázové soubory a skupiny souborů