Poprawka: Błąd niezgodności metadane po przełączanie partycji tabeli i upuść odpowiednich plików i grup plików

WAŻNE: Ten artykuł został przetłumaczony przy użyciu oprogramowania firmy Microsoft do tłumaczenia maszynowego i może być poprawiony przy użyciu technologii Community Translation Framework (CTF). Firma Microsoft udostępnia artykuły tłumaczone maszynowo, poprawione przez społeczność, a także tłumaczone przez tłumaczy profesjonalnych, aby zapewnić dostęp do wszystkich artykułów w bazie wiedzy w wielu językach. Artykuły tłumaczone maszynowo i poprawione mogą zawierać błędy pisowni, składniowe i gramatyczne. Firma Microsoft nie ponosi odpowiedzialności za żadne nieścisłości, błędy ani szkody spowodowane przez niepoprawne tłumaczenia zawartości ani przez korzystanie z niej przez klientów. Więcej o strukturze CTF: http://support.microsoft.com/gp/machine-translation-corrections/pl.

Anglojęzyczna wersja tego artykułu to: 3095958
Symptomy
Rozważ następujący scenariusz:
  • Istnieją dwie tabele podzielone na partycje w 2014 r. Microsoft SQL Server, a partycje pierwszej tabeli są mapowane do innych plików i grup plików za pomocą tego samego schematu partycji i funkcji.
  • Przełącz jednego z tych partycji do drugiej tabeli, a następnie obciąć drugiej tabeli.
  • Upuszczanie plików i grup plików, które są mapowane do komutowanych partycji.
  • Instrukcja SELECT Uruchom w drugiej tabeli.
W tym scenariuszu pojawi się następujący komunikat o błędzie:

Msg 606, poziom 21, stan: 1
Niezgodność metadanych. Identyfikator grupy plikówIdentyfikator grupy plików> określony dla tabeliNazwa tabeli> nie istnieje. Uruchom polecenie DBCC CHECKDB lub CHECKCATALOG.

Po uruchomieniu DBCC CHECKDB/CHECKTABLE, pojawi się następujący komunikat o błędzie:

Nie można przetworzyć indeksuNazwa_indeksu> TabelaTableName> ponieważ grupa plików (identyfikator grupy plikówFileGroupNumber>) jest nieprawidłowy.
Rozwiązanie
Problem został po raz pierwszy rozwiązany w następujące aktualizacje zbiorcze programu SQL Server: Zalecenie: Zainstalować najnowszą aktualizację zbiorczą dla programu SQL Server
Każdej nowej aktualizacji zbiorczej dla programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały zawarte w poprzedniej zbiorczej aktualizacji. Firma Microsoft zaleca pobranie i zainstalować najnowsze aktualizacje zbiorcze dla programu SQL Server:


Uwaga: Ta poprawka zapobiega tylko przyszłe wystąpienia tego problemu. Jeśli jesteś już występuje ten problem, należy wyeksportować dane do świeżego bazy danych bez żadnych istniejących uszkodzenie metadanych. Aby to zrobić, wykonaj następujące kroki:
  1. Aby ustalić, czy dana partycja ma nieprawidłową grupę plików, uruchom następującą kwerendę, aby sprawdzić, czy to zwraca wynik:
    SELECT * FROM sys.allocation_units AS au WHERE au.data_space_id NOT IN (SELECT data_space_id FROM sys.filegroups)
  2. Tabela utworzona z uszkodzenie metadanych można wyświetlić ponownie.

    Jeśli kwerenda z kroku 1 zwraca wynik, partycję, na której uszkodzone metadane uniemożliwia wyświetlanie (wybierz * z) wszystkie wiersze w tabeli. Aby obejść ten problem, Usuń zły na tej partycji.

    Uwaga
    zły partycji powinien być pusty. W przeciwnym wypadku pliki i grupy plików, który był może nie zostały usunięte lub usunięte.

    W tym celu należy przenieść do innej tabeli, która używa tego samego schematu partycjonowania tej partycji. Może to być tabela Tabela manekina. Użyj container_id z kwerendy w kroku 1, a odpowiada id_partycji z sys.partitions. (Upewnij się, należy zwrócić uwagę partition_number.) Umożliwia wykonywanie ALTER PARTITION przełącznik tabeli z tabeli unviewable do tabeli manekin został partition_number. Fikcyjny tabeli powinien posiadać ten sam zestaw kolumn i użyć tego samego schematu partycji. Twoje zapytanie w celu znalezienia partycji niespójne mogą mieć następującą postać:

    SELECT au.container_id, au.data_space_id, p.partition_number FROM sys.partitions AS p JOIN sys.allocation_units AS au ON p.partition_id = au.container_id LEFT JOIN sys.filegroups AS fgs ON fgs.data_space_id = au.data_space_id WHERE object_id = OBJECT_ID('MyTableName') AND fgs.data_space_id IS NULL;
  3. Skopiuj dane z uprzednio unviewable tabeli do nowej bazy danych.
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.

Ostrzeżenie: ten artykuł przetłumaczono automatycznie

Właściwości

Identyfikator artykułu: 3095958 — ostatni przegląd: 04/12/2016 01:31:00 — zmiana: 2.0

Microsoft SQL Server 2014 Service Pack 1

  • kbfix kbqfe kbexpertiseadvanced kbsurveynew kbmt KB3095958 KbMtpl
Opinia