KB3095958 — Poprawka: błąd niespójności metadanych po przełączeniu partycji tabeli i upuszczaniu odpowiednich plików i grup plików

Symptomy

Rozpatrzmy następujący scenariusz:

  • W programie Microsoft SQL Server 2014 występują dwie tabele partycjonowane, a partycje pierwszej tabeli są mapowane na różne pliki i grupy plików za pomocą tego samego schematu partycji i funkcji.

  • Jedna z tych partycji zostanie przełączona do drugiej tabeli, a druga tabela zostanie obcięta.

  • Odrzucasz pliki i grupy plików, które są mapowane na przełączaną partycję.

  • Instrukcja SELECT jest uruchamiana w drugiej tabeli.

W tym scenariuszu jest wyświetlany następujący komunikat o błędzie:

Msg 606, poziom 21, stan 1Metadata niespójność. Identyfikator grupy plików<Identyfikator grupy plików> określony dla nazwy tabeli <tabeli> nie istnieje. Uruchom polecenie DBCC CHECKDB lub CHECKCATALOG.

Po uruchomieniu polecenia DBCC CHECKDB/CHECKTABLE jest wyświetlany następujący komunikat o błędzie:

Nie można przetworzyć indeksu <indexname> tabeli <TableName>, ponieważ grupa plików (identyfikator grupy <FileGroupNumber>) jest nieprawidłowa.

Rozwiązanie

Problem został po raz pierwszy rozwiązany w następujących zbiorczych aktualizacjach programu SQL Server:

Każda nowa Zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji zbiorczej. Zalecamy pobranie i zainstalowanie najnowszych aktualizacji zbiorczych programu SQL Server:

Uwaga Ta poprawka zapobiega tylko wystąpieniu tego problemu w przyszłości. Jeśli ten problem występuje już w trakcie występowania tego problemu, wyeksportuj dane do nowej bazy danych bez uszkodzenia metadanych. W tym celu wykonaj następujące czynności:

  1. Aby określić, czy partycja ma nieprawidłową grupę plików, uruchom następujące zapytanie, aby sprawdzić, czy zwraca wynik:

    SELECT * FROM sys.allocation_units AS au WHERE au.data_space_id NOT IN (SELECT data_space_id FROM sys.filegroups)
  2. Utwórz ponownie tabelę z widocznym uszkodzeniem metadanych. Jeśli kwerenda z kroku 1 zwraca wynik, partycja z uszkodzonymi metadanymi uniemożliwia wyświetlanie (Wybieranie * z) dowolnych wierszy w tabeli. Aby obejść ten problem, Usuń nieprawidłową partycję.Uwaga Zła partycja powinna być pusta. W przeciwnym razie pliki i grupa plików, w których była ona niedostępna, nie została porzucona lub usunięta. Aby to zrobić, Przenieś tę partycję do innej tabeli używającej tego samego schematu partycjonowania. Ta tabela może być tylko tabelą fikcyjną. Użyj container_id z zapytania w kroku 1 i dopasuj go do partition_id z sys. partitions. (Pamiętaj, że partition_number.) Użyj partition_number, aby wykonać ALTER TABLE SWITCH z tabeli, której nie można wyświetlić w tabeli fikcyjnej. Tabela fikcyjna powinna zawierać ten sam zestaw kolumn i korzystać z tego samego schematu partycji. Kwerenda, która umożliwia znalezienie niespójnej partycji, może być podobna do następującej:

    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 wcześniej nieprzeglądanej 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".

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?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×