Symptomen

Neem het volgende scenario:

  • U hebt twee gepartitioneerde tabellen in Microsoft SQL Server 2014, en de partities van de eerste tabel zijn toegewezen aan verschillende bestanden en bestandsgroepen met hetzelfde partitieschema en dezelfde functie.

  • U zet een van deze partities in de tweede tabel en u kapt de tweede tabel af.

  • U zet bestanden en bestandsgroepen die zijn toegewezen aan de geswitcheerde partitie, neer.

  • U voert een SELECT-instructie uit in de tweede tabel.

In dit scenario wordt het volgende foutbericht weergegeven:

Bericht 606, niveau 21, provincie 1Metadata niet consistent. Filegroup-id<bestandsgroep-id> opgegeven voor tabel <tabelnaam> bestaat niet. Voer DBCC CHECKDB of CHECKCATALOG uit.

Wanneer u DBCC CHECKDB/CHECKTABLE uitvoert, wordt het volgende foutbericht weergegeven:

Kan index <index naam> van tabel <tablename niet verwerken> omdat bestandsgroep-id <FileGroupNumber>) ongeldig is.

Oplossing

Het probleem is voor het eerst opgelost in de volgende cumulatieve updates van SQL Server:

Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingsoplossingen die zijn opgenomen in de vorige cumulatieve update. U wordt aangeraden de nieuwste cumulatieve updates voor SQL Server te downloaden en te installeren:

Opmerking Dit probleem wordt alleen in deze oplossing voorkomen bij toekomstige versies van dit probleem. Als dit probleem zich al voordoet, exporteert u uw gegevens naar een nieuwe database zonder dat er een beschadiging van de metagegevens optrad. Ga hiervoor als volgt te werk:

  1. Ga als volgt te werk om te bepalen of een partitie een ongeldige bestandsnaam bevat:

    SELECT * FROM sys.allocation_units AS au WHERE au.data_space_id NOT IN (SELECT data_space_id FROM sys.filegroups)
  2. Zorg dat de tabel met de beschadiging van de metagegevens opnieuw zichtbaar is. Als de query uit stap 1 een resultaat oplevert, wordt het resultaat van de partitie met beschadigde metagegevens niet weergegeven (Selecteer * van) in alle rijen in de tabel. U kunt dit probleem omzeilen door die beschadigde partitie te verwijderen.Opmerking De beschadigde partitie moet leeg zijn. Anders kunnen de bestanden en de bestandsnaam van de bestandsgroep niet worden verwijderd. U kunt dit doen door deze partitie te verplaatsen naar een andere tabel die hetzelfde partitieschema gebruikt. U kunt deze tabel slechts als een dummy tabel maken. Gebruik de container_id van de query in stap 1 en zoek deze met de partition_id uit sys. partities. (Zorg ervoor dat u de partition_number aanmerkt.) Met behulp van de partition_number kunt u een wisselende tabel wisselen uit de tabel die niet in de tabel wordt weergegeven. De dummy tabel moet dezelfde reeks kolommen hebben en hetzelfde partitieschema gebruiken. De query voor het zoeken naar de inconsistente partitie kan er als volgt uitzien:

    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. Kopieer de gegevens uit de voorheen niet-weergegeven tabel naar de nieuwe database.

Status

Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.

Meer hulp nodig?

Uw vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Microsoft insiders

Was deze informatie nuttig?

Hoe tevreden bent u met de vertaalkwaliteit?
Wat heeft uw ervaring beïnvloed?

Bedankt voor uw feedback.

×