Streszczenie

W 2012 Microsoft SQL Server lub starszej wersji programu SQL Server można napotkać komunikaty o błędach po uruchomieniu polecenia DBCC CHECKDB dla bazy danych, w której jego plików znajdujących się na woluminie sformatowanych przy użyciu odwołań. Komunikaty o błędach podobne do następujących:

Msg 5030, poziom: 16, stan: 12, wiersz 1
Bazy danych może nie być zablokowana do wykonania tej operacji.

Msg 7926, poziom: 16, stan: 1, wiersz 1
Instrukcja wyboru przerwane. Nie można sprawdzić bazy danych, ponieważ nie można utworzyć migawki bazy danych i nie można zablokować bazy danych lub tabeli. Zobacz Books Online, aby uzyskać szczegółowe informacje, kiedy jest to zachowanie oczekiwane i jakie obejścia istniejących. Zobacz też poprzednie błędy szczegółowe.


Jeśli nie istnieje żaden użytkownik połączony z bazą danych, polecenie DBCC CHECKDB uzyskać blokadę wyłączności w bazie danych i następnie przeprowadzać kontrole w bazie danych, zamiast przy użyciu migawki wewnętrznej, którego zwykle używa.

Ten problem występuje, ponieważ program SQL Server nie może utworzyć migawki wewnętrznej bazy danych przy użyciu strumienie nazwane, gdy pliki bazy danych znajdują się na woluminie odwołań.

Ten problem został rozwiązany w 2014 r. Microsoft SQL Server. Począwszy od tej wersji programu SQL Server, polecenie DBCC CHECKDB nie używa polecenia o nazwie strumieni utworzyć migawki wewnętrznej bazy danych.

Uwagi

  • Informacje zawarte w tym artykule ma zastosowanie do wszystkich poleceń Sprawdzanie spójności z rodziny DBCC CHECKDB (ls, DBCC CHECKALLOC i DBCC CHECKCATALOG).

  • Odwołań oznacza systemu plików, a została wprowadzona w systemie Windows Server 2012.

Więcej informacji

Zachowanie polecenia DBCC CHECKDB w wersjach programu SQL Server z programu Microsoft SQL Server 2005 do programu SQL Server 2012

  • Polecenie DBCC CHECKDB tworzy migawki wewnętrznej bazy danych.

  • Wewnętrzny migawka bazy danych jest tworzony za pomocą nazwanych strumieni w plików fizycznych baz danych.

    • Należy wziąć pod uwagę bazy danych, która ma trzy pliki E:\Data\my_DB.mdf, E:\Data\my_DB.ndfi E:\Data\my_DB.ldf.

    • Należy wziąć pod uwagę, że wewnętrzny migawka bazy danych jest tworzony z bazy danych identyfikator 10.

    • Migawki wewnętrznej bazy danych zostanie utworzony przy użyciu plików E:\Data\my_DB.mdf: MSSQL_DBCC10 i E:\Data\my_DB.ndf: MSSQL_DBCC10.

    • Należy zauważyć, że nazwany strumień jest tworzony przy użyciu formatu <filename.extension>: MSSQL_DBCC <database_id_of_snapshot>.

    • Jeśli użytkownik próbuje utworzyć nazwanego strumienia dla pliku, który znajduje się na woluminie odwołań wystąpi błąd. Ten błąd nie występuje jednak, jeśli plik znajduje się na woluminie NTFS.

  • Strumienie nazwane są oznaczone jako rozrzedzony na poziomie systemu plików.

    • "Rozmiar na dysku" używane przez nazwany strumień zwiększy się na podstawie ilości danych jest aktualizowana w bazie danych źródłowych podczas wykonywania polecenia DBCC CHECKDB.

    • "Rozmiar" nazwany strumień będzie sam plik .mdf lub pliku — ndf.

  • Strumienie nazwane są usuwane pod koniec przetwarzania polecenia DBCC CHECKDB.

  • Strumienie nazwane nie są widoczne przy użyciu pliku zwykłym narzędzi, takich jak Eksplorator Windows.

Zachowanie polecenia DBCC CHECKDB polecenia, począwszy od programu SQL Server 2014

  • Polecenie DBCC CHECKDB tworzy migawki wewnętrznej bazy danych.

  • Wewnętrzny migawka bazy danych jest tworzony przy użyciu plików fizycznych baz danych.

    • Należy wziąć pod uwagę bazy danych, która ma trzy pliki E:\Data\my_DB.mdf, E:\Data\my_DB.ndfi E:\Data\my_DB.ldf.

    • Należy wziąć pod uwagę, że wewnętrzny migawka bazy danych jest tworzony z bazy danych identyfikator 10.

    • Migawki wewnętrznej bazy danych zostanie utworzony przy użyciu E:\Data\my_DB.mdfpliki_MSSQL_DBCC10 i E:\Data\my_DB.ndf_MSSQL_DBCC10.

    • Należy zauważyć, że nowe pliki są tworzone w tym samym folderze z nazewnictwa Konwencji <filename.extension> _MSSQL_DBCC <database_id_of_snapshot>.

  • Nowe pliki są oznaczone jako rozrzedzony na poziomie systemu plików.

    • "Rozmiar na dysku" używane przez nowe pliki zwiększy się na podstawie ilości danych jest aktualizowana w bazie danych źródłowych podczas wykonywania polecenia DBCC CHECKDB.

    • "Rozmiar" nowych plików będzie sam plik .mdf lub pliku — ndf.

  • Nowe pliki są usuwane po zakończeniu przetwarzania polecenia DBCC CHECKDB.

    • Te dodatkowe pliki, które są tworzone przez polecenie DBCC CHECKDB mają ustawiony atrybut "Usuń przy zamknięciu".

    • Jeśli system operacyjny napotka nieoczekiwanego zamknięcia systemu, gdy polecenie DBCC CHECKDB jest w toku, następnie te pliki będą nie można oczyścić. Będą gromadzone miejsca i potencjalnie uniemożliwi wykonania polecenia DBCC CHECKDB w przyszłości na ukończenie poprawnie. W takim przypadku można usunąć tych nowych plików, upewniwszy się, że nie ma żadnego polecenia DBCC CHECKDB aktualnie wykonywane.

  • Nowe pliki są widoczne przy użyciu pliku zwykłym narzędzi, takich jak Eksplorator Windows.

Powiązane artykuły

Polecenie DBCC CHECKDB (Transact-SQL)

Omówienie systemu plików elastyczne

Komunikat o błędzie po uruchomieniu dowolnego polecenia DBCC Sprawdź w programie SQL Server: "bazy danych może nie być zablokowana do wykonania tej operacji"

1450 błędy systemu operacyjnego i 665 są raportowane dla plików danych bazy danych

Może pojawić się "FCB::RemoveAlternateStreams: błąd systemu operacyjnego

Potrzebna dalsza pomoc?

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów firmy Microsoft

Czy te informacje były pomocne?

Jak zadowalająca jest jakość tłumaczenia?
Co wpłynęło na Twoje wrażenia?

Dziękujemy za opinię!

×