Innhold bør be om 26614 VSTS:5687518

Symptomer

Tenk deg følgende:

  • Du har to partisjonert tabeller i Microsoft SQL Server-2014 og partisjonene på den første tabellen er tilordnet til andre filer og filegroups ved hjelp av samme partisjon oppsett og funksjon.

  • Du bytter en av disse partisjonene til den andre tabellen, og deretter du avkorte den andre tabellen.

  • Du kan slette filer og filegroups som er tilordnet den svitsjede partisjonen.

  • Du kan kjøre en SELECT-setning i den andre tabellen.

I dette scenariet får du følgende feilmelding:

Msg 606, nivå 21 State 1
Inkonsekvens i metadata. Filgruppe for id <id for filgruppe> angitt for tabellen <navn> finnes ikke. Kjøre DBCC CHECKDB eller CHECKCATALOG.

Når du kjører DBCC CHECKDB/CHECKTABLE, får du følgende feilmelding:

Kan ikke behandle indeksen <IndexName> for tabellen <tabellnavn> fordi filgruppe (filgruppe ID <FileGroupNumber>) er ugyldig.

Oppløsning

Problemet ble først løst i følgende kumulative oppdateringer for SQL Server:

Hver nye kumulative oppdateringen for SQL Server inneholder alle hurtigreparasjonene og alle sikkerhetsreparasjoner som fulgte med den forrige kumulative oppdateringen. Vi anbefaler at du laster ned og installerer de nyeste kumulative oppdateringene for SQL Server:




Obs! Denne hurtigreparasjonen forhindrer bare fremtidige forekomster av dette problemet. Hvis du allerede har dette problemet, kan du eksportere dataene til en ny database uten noen eksisterende diskmetadata. Følg disse trinnene:

  1. Hvis du vil kontrollere om en partisjon er en ugyldig filgruppe, kan du kjøre følgende spørring for å se om den returnerer et resultat:

    SELECT * FROM sys.allocation_units AS au WHERE au.data_space_id NOT IN (SELECT data_space_id FROM sys.filegroups)
  2. Gjøre tabellen med metadata kan føre til minnefeil vises på nytt.


    Hvis spørringen fra trinn 1, returnerer et resultat, partisjon med skadede metadata forhindrer visning (Velg * fra) alle radene i tabellen. Du kan omgå dette problemet ved å fjerne skadede partisjonen.

    Legg merke til den skadede partisjonen må være tom. Hvis ikke, filene og filgruppen som den var i kan ikke er fjernet eller slettet.

    Hvis du vil gjøre dette, kan du flytte denne partisjonen i en annen tabell som bruker det samme oppsettet for partisjonering. Denne tabellen kan være bare en midlertidig tabell. Bruk container_id fra spørringen i trinn 1, og at de stemmer overens med mediesiden fra sys.partitions. (Pass på at du legger merke til partition_number.) Bruk av partition_number til å utføre en endre TABELLEN bryter partisjon fra tabellen som var umulig å vise til den midlertidige tabellen. Den midlertidige tabellen skal ha det samme settet med kolonner og bruke samme partisjon. Spørringen etter inkonsekvent partisjonen kan ligne på følgende:

    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. Kopi dataene fra tidligere umulig å vise tabellen til den nye databasen.

Status

Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".

Forfatter:Fang Fang Meng (CSS)
Writer: v-juwang
Teknisk redaktør: akshaym; jubui; mattjon; v-fmeng;
Redaktør: v-xhua, v-rhowar

Trenger du mer hjelp?

Utvid ferdighetene dine
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Microsoft Insiders

Var denne informasjonen nyttig?

Hvor fornøyd er du med kvaliteten på oversettelsen?
Hva påvirket opplevelsen din?

Takk for tilbakemeldingen!

×