Pierakstīties, izmantojot Microsoft
Pierakstīties vai izveidot kontu
Sveicināti!
Atlasīt citu kontu.
Jums ir vairāki konti
Izvēlieties kontu, ar kuru vēlaties pierakstīties.

Simptomi

Iedomājieties šādu scenāriju:

  • Sistēmā Microsoft SQL Server 2014 ir divas sadalītas tabulas, un pirmās tabulas nodalījumi tiek kartēti uz dažādiem failiem un filegroups, izmantojot vienu un to pašu sadalījuma shēmu un funkciju.

  • Pārslēdziet kādu no šīm nodalījumiem uz otro tabulu un pēc tam apgrieziet otro tabulu.

  • Jūs nometīsiet failus un filegroups, kas ir kartēti uz komutācijas nodalījumu.

  • Otrajā tabulā tiek palaists priekšraksts SELECT.

Šajā scenārijā tiek parādīts šāds kļūdas ziņojums:

Msg 606, līmenis 21, valsts 1Metadata. Filegroup ID<filegroup id> norādīts tabulas <tabulas nosaukums> nepastāv. Palaidiet DBCC CHECKDB vai CHECKCATALOG.

Palaižot DBCC CHECKDB/CHECKTABLE, tiek parādīts šāds kļūdas ziņojums:

Nevar apstrādāt indeksu <IndexName> no tabulas <tablename>, jo filegroup (filegroup ID <FileGroupNumber>) nav derīgs.

Risinājums

Problēma pirmo reizi tika izlabota tālāk norādītajos SQL Server kumulatīvajos atjauninājumos.

Katrā jaunajā kumulatīvajā SQL Server atjauninājumā ir iekļauti visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā kumulatīvajā atjauninājumā. Iesakām lejupielādēt un instalēt jaunākos SQL Server kumulatīvos atjauninājumus:

Piezīme. Šis labojums novērš tikai turpmāko šīs problēmas gadījumu. Ja jums jau ir radusies šī problēma, eksportējiet datus jaunā datu bāzē bez esošā metadatu bojājuma. Lai to izdarītu, veiciet tālāk norādītās darbības.

  1. Lai noteiktu, vai nodalījumam ir nederīgs filegroup, izpildiet šo vaicājumu, lai noskaidrotu, vai tas atgriež rezultātu:

    SELECT * FROM sys.allocation_units AS au WHERE au.data_space_id NOT IN (SELECT data_space_id FROM sys.filegroups)
  2. Vēlreiz Padariet tabulu par metadatiem. Ja vaicājums no 1. darbības atgriež rezultātu, nodalījums ar bojātiem metadatiem neļauj skatīt (atlasīt * no) jebkuras tabulas rindas. Lai novērstu šo problēmu, noņemiet šo bojāto nodalījumu.Piezīme. Bojātajam nodalījumam ir jābūt tukšam. Pretējā gadījumā fails un filegroup, kurā tas bija, nevarēja būt samazinājies vai izdzēsts. Lai to izdarītu, pārvietojiet šo nodalījumu uz citu tabulu, kas izmanto to pašu sadalījuma shēmu. Šī tabula var būt tikai fiktīva tabula. Izmantojiet container_id no vaicājuma 1. darbībā un saskaņojiet to ar partition_id no sys. ījumiem. (Pārliecinieties, vai piezīmējat partition_number.) Izmantojiet partition_number, lai veiktu ALTER TABLE SWITCH PARTITION no tabulas, kas bija neredzama manekena tabulai. Lelles tabulai ir jābūt vienādam kolonnu kopai un izmantotai pašai sadalījuma shēmai. Vaicājums, lai atrastu nekonsekventu nodalījumu, var izskatīties šādi:

    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. Kopējiet datus no iepriekš neskatītas tabulas jaunā datu bāzē.

Statusa

Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir norādīti sadaļā "attiecas uz".

Nepieciešama papildu palīdzība?

Vēlaties vairāk opciju?

Izpētiet abonementa priekšrocības, pārlūkojiet apmācības kursus, uzziniet, kā aizsargāt ierīci un veikt citas darbības.

Kopienas palīdz uzdot jautājumus un atbildēt uz tiem, sniegt atsauksmes, kā arī saņemt informāciju no ekspertiem ar bagātīgām zināšanām.

Vai šī informācija bija noderīga?

Cik lielā mērā esat apmierināts ar valodas kvalitāti?
Kas ietekmēja jūsu pieredzi?
Nospiežot Iesniegt, jūsu atsauksmes tiks izmantotas Microsoft produktu un pakalpojumu uzlabošanai. Jūsu IT administrators varēs vākt šos datus. Paziņojums par konfidencialitāti.

Paldies par jūsu atsauksmēm!

×