Stany plików

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

W SQL Server stan pliku bazy danych jest utrzymywany niezależnie od stanu bazy danych. Plik jest zawsze w jednym określonym stanie, takim jak ONLINE lub OFFLINE. Aby wyświetlić bieżący stan pliku, użyj widoku katalogu sys.master_files lub sys.database_files . Jeśli baza danych jest w trybie offline, stan plików można wyświetlić z widoku wykazu sys.master_files .

Stan plików w grupie plików określa dostępność całej grupy plików. Aby grupa plików był dostępna, wszystkie pliki w grupie plików muszą być w trybie online. Aby wyświetlić bieżący stan grupy plików, użyj widoku katalogu sys.filegroups . Jeśli grupa plików jest w trybie offline i próbujesz uzyskać dostęp do grupy plików za pomocą instrukcji Transact-SQL, zakończy się to niepowodzeniem z powodu błędu. Gdy optymalizator zapytań tworzy plany zapytań dla instrukcji SELECT, unika indeksów nieklastrowanych i indeksowanych widoków znajdujących się w grupach plików w stanie offline, dzięki czemu te instrukcje mogą zostać pomyślnie wykonane. Jeśli jednak grupa plików offline zawiera stos lub indeks klastrowany tabeli docelowej, instrukcje SELECT kończą się niepowodzeniem. Ponadto każda instrukcja INSERT, UPDATE lub DELETE, która modyfikuje tabelę z dowolnym indeksem w grupie plików w trybie offline, zakończy się niepowodzeniem.

Definicje stanu pliku

W poniższej tabeli zdefiniowano stany plików.

Państwa Definicja
ONLINE Plik jest dostępny dla wszystkich operacji. Pliki w podstawowej grupie plików są zawsze w trybie online, jeśli sama baza danych jest w trybie online. Jeśli plik w podstawowej grupie plików nie jest w trybie online, baza danych nie jest w trybie online, a stany plików pomocniczych są niezdefiniowane.
OFFLINE Plik nie jest dostępny do uzyskania dostępu i może nie być obecny na dysku. Pliki stają się w trybie offline przez jawną akcję użytkownika i pozostają w trybie offline do momentu podjęcia dodatkowej akcji użytkownika.

**Ostrożność** Stan pliku można ustawić w trybie offline, gdy plik jest uszkodzony, ale można go przywrócić. Plik ustawiony na offline można ustawić tylko w trybie online, przywracając plik z kopii zapasowej. Aby uzyskać więcej informacji na temat przywracania pojedynczego pliku, zobacz RESTORE (Transact-SQL).

Plik bazy danych jest również ustawiany w stan OFFLINE, gdy baza danych korzysta z modelu pełnego odzyskiwania lub modelu odzyskiwania z rejestrowaniem zbiorczym, a plik zostanie usunięty. Wpis w sys.master_files pozostaje, dopóki dziennik transakcji nie zostanie obcięty poza wartość drop_lsn. Aby uzyskać więcej informacji, zobacz Obcinanie dziennika transakcji.
PRZYWRACANIE Plik jest przywracany. Pliki wprowadzają stan przywracania z powodu polecenia przywracania mającego wpływ na cały plik, a nie tylko przywracanie strony i pozostają w tym stanie do momentu zakończenia przywracania i odzyskania pliku.
OCZEKUJE NA ODZYSKANIE Odzyskiwanie pliku zostało odroczone. Plik wprowadza ten stan automatycznie z powodu procesu przywracania fragmentacyjnego, w którym plik nie został przywrócony i odzyskany. Aby usunąć błąd i umożliwić ukończenie procesu odzyskiwania, wymagane jest wykonanie dodatkowej akcji przez użytkownika. Aby uzyskać więcej informacji, zobacz Piecemeal Restores (SQL Server).
PODEJRZANY Odzyskiwanie pliku nie powiodło się podczas procesu przywracania w trybie online. Jeśli plik znajduje się w podstawowej grupie plików, baza danych jest również oznaczona jako podejrzany. W przeciwnym razie tylko plik jest podejrzany, a baza danych jest nadal w trybie online.

Plik pozostanie w stanie podejrzanego, dopóki nie zostanie udostępniony przez jedną z następujących metod:

Przywracanie i odzyskiwanie

DBCC CHECKDB z REPAIR_ALLOW_DATA_LOSS
UNIECZYNNIONE Plik został porzucony, gdy nie był w trybie online. Wszystkie pliki w grupie plików stają się nieistniene po usunięciu grupy plików w trybie offline.

ALTER DATABASE (Transact-SQL)

Stany bazy danych

Stany odbicia (SQL Server)

DBCC CHECKDB (Transact-SQL)

pliki bazy danych i grupy plików