Simptomi
Iedomājieties šādu scenāriju:
-
Jums ir Microsoft SQL Server 2012 vai vecākas versijas datu bāze, kurā ir vairāki filegroups, un sekundārā filegroup ir noklusējuma filegroup.
-
Dublējiet datu bāzi un pēc tam atjaunojiet to SQL Server 2014.
-
Primāro filegroup iestata kā noklusējuma filegroup un pēc tam mēģiniet noņemt sekundāro filegroup.
Šajā scenārijā nevar izdzēst sekundāro filegroup pat tad, ja visi tajā ietvertie datu faili tiek izdzēsti. Kļūdas ziņojums norāda, ka sekundāro filegroup nevar noņemt, jo tā nav tukša.
Cēlonis
Problēma rodas tāpēc, ka datu bāzes versijas jaunināšana izveido sistēmas objektus noklusējuma filegroup, nevis primārajā filegroup SQL Server 2014. Sekundārajā filegroup joprojām ir daži sistēmas objekti.
Risinājums
Šis labojums iepazīstina ar izsekošanas karodziņu 3861, lai pārvietotu sistēmas tabulas primārajā filegroup. Pēc tam, kad lietosit šajā rakstā aprakstīto labojumfailu, startējot SQL Server, izmantojot izsekošanas karodziņu 3861 kā startēšanas parametru, tas var pārvietot sistēmas tabulas uz primāro filegroup. Ja vēl neesat atjaunojis datu bāzes dublējumu, varat iespējot izsekošanas karodziņu servera līmenī:
dbcc traceon(3861,-1)<Restore the database>dbcc traceoff(3861,-1)
Šī problēma pirmo reizi tika izlabota tālāk sniegtajā SQL Server kumulatīvajā atjauninājumā.
Kumulatīvais atjauninājums 4 SQL Server 2014 /en-us/help/2999197
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ā. Skatiet jaunākos kumulatīvos atjauninājumus SQL Server:
Statusa
Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir norādīti sadaļā "attiecas uz".