Udostępnij za pomocą


Opis obsługi baz danych programu SQL Server na skompresowanych woluminach

W tym artykule opisano zachowanie magazynu plików bazy danych programu SQL Server na skompresowanych dyskach.

Oryginalna wersja produktu: SQL Server
Oryginalny numer KB: 231347

Podsumowanie

Bazy danych programu SQL Server nie są obsługiwane na woluminach skompresowanych NTFS ani FAT, z wyjątkiem sytuacji specjalnych dla programu SQL Server 2005 i nowszych wersji. Skompresowany wolumin nie gwarantuje zapisów dopasowanych do sektora i są one niezbędne do zagwarantowania odzyskiwania transakcyjnego w pewnych okolicznościach.

W przypadku programu SQL Server 2005 i nowszych wersji magazyn plików bazy danych na skompresowanych dyskach działa w następujący sposób:

  • Jeśli plik danych należy do grupy plików tylko do odczytu, plik jest dozwolony.

  • Jeśli plik danych należy do bazy danych tylko do odczytu, plik jest dozwolony.

  • Jeśli plik dziennika transakcji należy do bazy danych tylko do odczytu, plik jest dozwolony.

  • Jeśli spróbujesz wywołać bazę danych odczytu/zapisu z plikami na skompresowanym dysku, program SQL Server generuje następujący błąd:

    Msg 5118, Level 16, State 2, Line 1 Plik "<file_name>" jest skompresowany, ale nie znajduje się w bazie danych lub grupie plików tylko do odczytu. Plik musi być zdekompresowany.

Aby uzyskać więcej informacji na temat wykluczeń dla baz danych tylko do odczytu i grup plików tylko do odczytu w programie SQL Server 2008, przejdź do następującej witryny sieci Web MSDN:

Tylko do odczytu grupy plików i kompresja

Uwaga 16.

Ten temat dotyczy również programu SQL Server 2012 i nowszych wersji.

Więcej informacji

Chociaż fizycznie można dodać bazy danych programu SQL Server na skompresowanych woluminach, nie zalecamy tego i nie obsługujemy jej. Podstawowe przyczyny tego problemu obejmują następujące kwestie:

  • Wydajność

    Bazy danych na skompresowanych woluminach mogą powodować znaczne obciążenie związane z wydajnością. Ilość będzie się różnić w zależności od ilości operacji we/wy i stosunku odczytów do zapisów. Jednak w niektórych warunkach zaobserwowano spadek o ponad 500 procent.

  • Odzyskiwanie bazy danych

    Niezawodne transakcyjne odzyskiwanie bazy danych wymaga zapisów dopasowanych do sektora, a skompresowane woluminy nie obsługują tego scenariusza. Drugi problem dotyczy wewnętrznego zarządzania obszarem odzyskiwania. Program SQL Server wewnętrznie rezerwuje wstępnie przydzielone miejsce w plikach bazy danych na potrzeby wycofywania. Istnieje możliwość otrzymania błędu Braku miejsca na skompresowanych woluminach na wstępnie przydzielonych plikach i zakłóca to pomyślne odzyskiwanie.

W niektórych scenariuszach kopia zapasowa programu SQL Server do skompresowanego woluminu lub skompresowanego folderu nie powiodła się. W przypadku wystąpienia tego problemu zostanie wyświetlony jeden z następujących komunikatów o błędach.

  • W systemie Windows Vista i nowszych wersjach systemu Windows

    STATUS_FILE_SYSTEM_LIMITATION Nie można ukończyć żądanej operacji z powodu ograniczenia systemu plików
    Błąd systemu operacyjnego 665(Nie można ukończyć żądanej operacji z powodu ograniczenia systemu plików)

  • We wcześniejszych wersjach systemu Windows

    STATUS_INSUFFICIENT_RESOURCES za mało zasobów systemowych istnieje, aby ukończyć żądany błąd systemu operacyjnego usługi 1450 (Brak wystarczających zasobów systemowych do ukończenia żądania lub 33(Proces nie może uzyskać dostępu do pliku, ponieważ inny proces zablokował część pliku).

Aby uzyskać więcej informacji na temat tego problemu, zobacz Plik mocno pofragmentowany w woluminie NTFS może nie przekraczać określonego rozmiaru.

Uwaga 16.

  • Poprawka dla systemu Windows Vista i nowszych wersji systemu Windows omówionych w artykule KB 967351 może nie rozwiązać problemu kopii zapasowych programu SQL Server, które nie powiodły się w skompresowanym woluminie lub skompresowanym folderze. Jednak ta poprawka pomoże w pośredniceniu problemu.
  • Po zastosowaniu poprawki omówionej w artykule KB 967351 należy sformatować dysk, na którym jest włączona kompresja przy użyciu parametru /L . Podczas formatowania dysku, na którym jest włączona kompresja przy użyciu parametru /L , segment bajtów na rekordy plików zwiększa się z 1024 bajtów do 4096 bajtów.

Kopie zapasowe programu SQL Server do skompresowanych woluminów mogą zaoszczędzić miejsce na dysku. Mogą jednak zwiększyć użycie procesora CPU podczas operacji tworzenia kopii zapasowej. Zawsze zalecamy korzystanie z obiektów sumy kontrolnej BACKUP w celu zagwarantowania integralności danych.

Program SQL Server wymaga, aby systemy obsługiwały gwarantowane dostarczanie do stabilnego nośnika zgodnie z opisem w wymaganiach programu niezawodności we/wy programu SQL Server.

Aby uzyskać więcej informacji na temat wymagań dotyczących danych wejściowych i wyjściowych aparatu bazy danych programu SQL Server, zobacz Wymagania dotyczące danych wejściowych/wyjściowych aparatu bazy danych programu Microsoft SQL Server