DBCC CHECKALLOC (Transact-SQL)
Sprawdza spójność struktur przydziału miejsca na dysku dla określonej bazy danych.
Składnia
DBCC CHECKALLOC
[
( database_name | database_id | 0
[ , NOINDEX
| , { REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD } ]
)
[ WITH
{
[ ALL_ERRORMSGS ]
[ , NO_INFOMSGS ]
[ , TABLOCK ]
[ , ESTIMATEONLY ]
}
]
]
Argumenty
database_name | database_id | 0
To nazwa lub identyfikator bazy danych, dla których Sprawdzanie użycia przydziału i strona .Jeśli nie określono lub określono wartość 0, bieżąca baza danych jest używany.Nazwy bazy danych musi przestrzegać reguł dla identyfikatorów.
NOINDEX
Określa, że ponownego zbudowania indeksów dla tabel użytkownika nie powinny być sprawdzane.Ostrzeżenie
NOINDEX utrzymywana zgodność z poprzednimi wersjami i nie wpływa na DBCC CHECKALLOC.
REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD
Określa, że DBCC CHECKALLOC naprawić błędy znalezione.database_namemusi być w tryb jednego użytkownika.REPAIR_ALLOW_DATA_LOSS
Próbuje naprawić błędy, które zostały znalezione.Te naprawy może spowodować utratę danych.REPAIR_ALLOW_DATA_LOSS jest jedyną opcją umożliwiającą błędy alokacji naprawy.REPAIR_FAST
Składnia jest utrzymywana zgodność z poprzednimi wersjami.Są wykonywane żadne akcje naprawy.REPAIR_REBUILD
Nie dotyczy.
Ważne:
Użyj opcji naprawy tylko w ostateczności.Aby naprawić błędy, zaleca się przywrócenie z kopia zapasowa.Operacje naprawy uważa ograniczenia, które mogą istnieć na lub między tabelami.Określona tabela jest zaangażowany w jednej lub więcej ograniczeń, zaleca się z systemem DBCC CHECKCONSTRAINTS po operacji naprawiania.Jeśli musisz użyć naprawy, uruchom DBCC CHECKDB bez opcji naprawy znaleźć naprawy poziom używania.Jeśli używasz REPAIR_ALLOW_DATA_LOSS poziom, zaleca się, to możesz tworzyć kopię zapasową bazy danych przed uruchomieniem DBCC CHECKDB przy użyciu tej opcji.
Z
Włącza opcje, które zostaną określone.ALL_ERRORMSGS
Wyświetla wszystkie komunikaty o błędach.Domyślnie są wyświetlane wszystkie komunikaty o błędach.Określanie lub pominięcie tej opcji nie ma znaczenia.NO_INFOMSGS
Pomija wszystkie komunikaty informacyjne i raport zajmowane.TABLOCK
Powoduje, że polecenie DBCC uzyskiwania wyłącznego bazy danych blokada.ESTIMATEONLY
Wyświetla szacowaną liczbę tempdb miejsce, które są wymagane do uruchomienia DBCC CHECKALLOC, kiedy zostaną określone inne opcje.
Uwagi
DBCC CHECKALLOC sprawdza alokacji wszystkich stron w bazie danych, niezależnie od typu strona lub typ obiektu, do którego należą.Sprawdza też różnych wewnętrznych struktur, które są używane do śledzenia tych stron i relacje między nimi.
Jeśli NO_INFOMSGS nie jest określony, DBCC CHECKALLOC zbiera informacje o użycie miejsca dla wszystkich obiektów w bazie danych.Informacje te zostaną wydrukowane wraz ze znalezionych błędów.
Ostrzeżenie
Funkcje DBCC CHECKALLOC znajduje się w dbcc checkdb i dbcc checkfilegroup.Oznacza to, że nie trzeba osobno uruchamiać DBCC CHECKALLOC z tych sprawozdań.
Ostrzeżenie
DBCC CHECKALLOC nie sprawdza dane FILESTREAM.FILESTREAM przechowuje duże obiekty binarne (bloków BLOB) w systemie plików.
Migawki wewnętrznej bazy danych
DBCC CHECKALLOC używa wewnętrznego migawka bazy danych w celu zapewnienia spójności transakcyjnej, potrzebnych do wykonywania tych kontroli.Jeśli nie można utworzyć migawka lub określonym TABLOCK, DBCC CHECKALLOC próbuje uzyskać blokada wyłączności (X) bazy danych, aby uzyskać wymaganą konsystencję.Aby uzyskać więcej informacji na temat blokady zobacz Tryby Lock.
Ostrzeżenie
W SQL Server 2005 i nowszej, działającego DBCC CHECKALLOC przeciwko tempdb nie wykonuje żadnych kontroli.To, ponieważ ze względu na wydajność bazy danych migawek nie są dostępne na tempdb.Oznacza to, nie można uzyskać wymaganej spójności transakcyjnej.Zatrzymywania i uruchamiania usługa MSSQLSERVER do rozwiązania tempdb problemy alokacji.Ta akcja spadnie i odtwarza tempdb bazy danych.
Opis komunikatów o błędach DBCC
Po zakończeniu działania polecenia DBCC CHECKALLOC jest zapisywany komunikat SQL Server dziennik błędów.Jeśli polecenie DBCC pomyślnie wykona wiadomości wskazuje pomyślne zakończenie i czas uruchomienia polecenia.Polecenie DBCC zatrzymuje się przed zakończeniem kontroli z powodu błędu, komunikat wskazuje, polecenie zostało zakończone, wartość stanu i czas , który uruchomił polecenie.W poniższej tabela wymieniono i opisano wartości stanu, które mogą być dołączone do wiadomości.
Stan |
Opis |
---|---|
0 |
Błąd numer 8 930 był uruchamiany.Oznacza to uszkodzenie metadane , który spowodował polecenie DBCC, aby zakończyć. |
1 |
Błąd numer 8967 był uruchamiany.Wystąpił błąd wewnętrzny DBCC. |
2 |
Wystąpił błąd podczas naprawy bazy danych trybu awaryjnego. |
3 |
Oznacza to uszkodzenie metadane , który spowodował polecenie DBCC, aby zakończyć. |
4 |
Wykryto assert lub naruszenie zasad dostępu. |
5 |
Wystąpił nieznany błąd, który polecenie DBCC zakończone. |
Raportowanie błędów
Plikautomatyczna kopia zapasowa mini-(SQLDUMPnnnn.txt) jest tworzony w SQL Server katalog dziennika, ilekroć DBCC CHECKALLOC wykryje błąd uszkodzenia.Jeżeli dane użycia funkcji kolekcja i funkcje raportowania błędów są włączone dla wystąpienie SQL Server, plik jest automatycznie przesyłane dalej Microsoft.Zebrane dane są używane do poprawy SQL Server funkcji.
Plik automatyczna kopia zapasowa zawiera wyniki polecenia DBCC CHECKALLOC i dodatkowej produkcji diagnostycznych.Plik ograniczył listach arbitralnej kontroli dostępu (DACL).Dostęp jest ograniczony do SQL Serverkontousługa i członków sysadmin rolę.Domyślnie sysadmin roli zawiera wszystkich członków grupy systemu Windows BUILTIN\Administratorzy oraz grupa administratora lokalnego.Polecenie DBCC się nie powieść, jeśli proces kolekcja danych nie powiedzie się.
Rozwiązywanie błędów
Jeśli DBCC CHECKALLOC raportuje błędy, zaleca się, że przywracanie bazy danych z bazy danych kopia zapasowa zamiast naprawy.Jeśli nie ma kopia zapasowa , uruchomić narzędzie do naprawy można poprawić błędy raportowane; poprawianie błędów mogą jednak wymagać niektórych stron i w związku z tym dane mają zostać usunięte.
Narzędzie do naprawy można wykonać w transakcji użytkownika.Pozwala to na zmiany można wycofać.Jeśli zmiany są przywracane, baza danych będzie nadal zawierać błędy i musi zostać przywrócony z kopia zapasowa.Po zakończeniu naprawy, tworzyć kopię zapasową bazy danych.
Zestawy wyników
W poniższych tabelach opisano informacje, które zwraca DBCC CHECKALLOC.
Element |
Opis |
---|---|
FirstIAM |
Tylko do użytku wewnętrznego. |
Katalog główny |
Tylko do użytku wewnętrznego. |
Dpages |
Liczba strona danych. |
Strony |
Przydzielonych stron. |
Dedykowany zakresów |
Zakresy przydzielone do obiektu. Jeśli używane są mieszane alokacji stron, może być przydzielonych bez zakresów stron. |
DBCC CHECKALLOC również raporty podsumowujące dla każdego indeksu i partycji w każdym pliku przydziału.Podsumowanie to zawiera opis dystrybucji danych.
Element |
Opis |
---|---|
Zarezerwowane stron |
Strony przydzielonych do indeksu i nieużywanych stron w przydzielonych zakresach. |
Używanych stron |
Przydzielonych stron i używany przez indeks. |
Identyfikator partycji |
Tylko do użytku wewnętrznego. |
Identyfikator jednostki alokacji |
Tylko do użytku wewnętrznego. |
W wierszu danych |
Strony zawierają dane indeksu lub sterty. |
Dane LOB |
Pages contain varchar(max), nvarchar(max), varbinary(max), text, ntext, xml, and image data. |
Przepełnienie wiersza danych |
Strony zawierają dane o zmiennej długości kolumna , które ma została przesunięta poza wiersz. |
DBCC CHECKALLOC zwraca następujące zestaw wyników (wartości mogą się różnić), z wyjątkiem przypadków, gdy określono ESTIMATEONLY lub NO_INFOMSGS.
DBCC results for 'master'.
************************************************************* Table sysobjects Object ID 1. Index ID 1 FirstIAM (1:11) Root (1:12) Dpages 22. Index ID 1. 24 pages used in 5 dedicated extents. Index ID 2 FirstIAM (1:1368) Root (1:1362) Dpages 10. Index ID 2. 12 pages used in 2 dedicated extents. Index ID 3 FirstIAM (1:1392) Root (1:1408) Dpages 4. Index ID 3. 6 pages used in 0 dedicated extents. Total number of extents is 7. ************************************************************* '...' ************************************************************* Table spt_server_info Object ID 1938105945. Index ID 1 FirstIAM (1:520) Root (1:508) Dpages 1. Index ID 1. 3 pages used in 0 dedicated extents. Total number of extents is 0. ************************************************************* Processed 52 entries in sysindexes for database ID 1. File 1. Number of extents = 210, used pages = 1126, reserved pages = 1280. File 1 (number of mixed extents = 73, mixed pages = 184). Object ID 1, Index ID 0, data extents 5, pages 24, mixed extent pages 9. '...' Object ID 1938105945, Index ID 0, data extents 0, pages 3, mixed extent pages 3. Total number of extents = 210, used pages = 1126, reserved pages = 1280 in this database. (number of mixed extents = 73, mixed pages = 184) in this database. CHECKALLOC found 0 allocation errors and 0 consistency errors in database 'master'. DBCC results for 'master'. ************************************************************* Table sys.sysrowsetcolumns Object ID 4. Index ID 1, partition ID 262144, alloc unit ID 262144 (type In-row data). FirstIAM (1:98). Root (1:94). Dpages 7. Index ID 1, partition ID 262144, alloc unit ID 262144 (type In-row data). 9 pages used in 1 dedicated extents. Index ID 1, partition ID 262144, alloc unit ID 262398 (type Row-overflow data). FirstIAM (0:0). Root (0:0). Dpages 0. Index ID 1, partition ID 262144, alloc unit ID 262398 (type Row-overflow data). 0 pages used in 0 dedicated extents. Total number of extents is 1. ... ************************************************************* Processed 201 entries in system catalog for database ID 1. File 1. Number of extents = 44, used pages = 300, reserved pages = 345. File 1 (number of mixed extents = 29, mixed pages = 225). Object ID 4, index ID 1, partition ID 262144, alloc unit ID 262144 (type In-row data), data extents 1, pages 9, mixed extent pages 8. Object ID 5, index ID 1, partition ID 327680, alloc unit ID 327680 (type In-row data), data extents 0, pages 2, mixed extent pages 2. Object ID 7, index ID 1, partition ID 458752, alloc unit ID 458752 (type In-row data), data extents 0, pages 5, mixed extent pages 5. Object ID 8, index ID 0, partition ID 524288, alloc unit ID 524288 (type In-row data), data extents 0, pages 2, mixed extent pages 2. Object ID 13, index ID 1, partition ID 851968, alloc unit ID 851968 (type In-row data), data extents 1, pages 9, mixed extent pages 8. Object ID 15, index ID 1, partition ID 983040, alloc unit ID 983040 (type In-row data), data extents 0, pages 2, mixed extent pages 2. Object ID 26, index ID 1, partition ID 281474978414592, alloc unit ID 1703937 (type In-row data), data extents 0, pages 3, mixed extent pages 3. Object ID 27, index ID 1, partition ID 281474978480128, alloc unit ID 1769473 (type In-row data), data extents 0, pages 3, mixed extent pages 3. Object ID 27, index ID 2, partition ID 562949955190784, alloc unit ID 1769474 (type In-row data), index extents 0, pages 3, mixed extent pages 3. ... Object ID 1179151246, index ID 1, partition ID 72057594038845440, alloc unit ID 13435136 (type In-row data), data extents 2, pages 18, mixed extent pages 8. Object ID 1179151246, index ID 2, partition ID 72057594038910976, alloc unit ID 13566208 (type In-row data), index extents 1, pages 16, mixed extent pages 8. Object ID 1911677858, index ID 0, partition ID 72057594039631872, alloc unit ID 15073536 (type In-row data), data extents 0, pages 2, mixed extent pages 2. Total number of extents = 41, used pages = 289, reserved pages = 323 in this database. (number of mixed extents = 27, mixed pages = 211) in this database. CHECKALLOC found 0 allocation errors and 0 consistency errors in database 'master'. DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Po określeniu ESTIMATEONLY DBCC CHECKALLOC zwraca następujące zestaw wyników.
Estimated TEMPDB space needed for CHECKALLOC (KB)
-------------------------------------------------
34
(1 row(s) affected)
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Uprawnienia
Wymaga członkostwa w sysadmin stała rola serwera lub db_owner rola bazy danychstałej.
Przykłady
Poniższy przykład wykonuje DBCC CHECKALLOC dla bieżącej bazy danych i AdventureWorks2008R2 bazy danych.
-- Check the current database.
DBCC CHECKALLOC;
GO
-- Check the AdventureWorks2008R2 database.
DBCC CHECKALLOC (AdventureWorks2008R2);
GO
Zobacz także