Aanmelden met Microsoft
Meld u aan of maak een account.
Hallo,
Selecteer een ander account.
U hebt meerdere accounts
Kies het account waarmee u zich wilt aanmelden.

Symptomen

Wanneer u verspiegeling van databases gebruikt in Microsoft SQL Server 2012 of Microsoft SQL Server 2014, kunt u op een van de voorwaarden van de assert-voorwaarden en databasespiegeling aanraken.

Oorzaak

Het probleem kan zich voordoen omdat bij het toewijzen van een nieuwe pagina een nieuwe pagina door SQL Server wordt gedownload op de nieuwe pagina. SQL Server plaatst de hobt_id (heap of B-structuur-ID) waartoe de nieuwe pagina deel uitmaakt in de vergrendelingsaanvraag. In SQL Server kunnen de hobt_id echter niet worden toegevoegd aan een spiegel logboek en wordt het verschil tussen de primaire en de gespiegelde werking veroorzaakt. Dit kan uitgebreid worden beschreven:

  1. T1-vergrendeling op pagina P1.

  2. T2 een pagina splitsen op P1, een nieuwe pagina P2 toevoegen, er een systeem transactie is die hier is geschreven, bevat een X-lock op de P2. De hobt_id in het gespiegelde logboek is niet in SQL Server geplaatst.

  3. TX houdt een vergrendelde migratie voor T1 in de plaats van P1 to P2.

  4. TX vastgelegd, nu t/t/t/t/t/t

  5. T1 is vastgelegd, nu T2 de enige met een juridische slot die de P2-vergrendeling houdt.

  6. Na het invoeren van een vergrendeling op de primaire plaats van de i t/t, wordt de IX-vergrendeling niet vrijgegeven door T2.

  7. Na een heleboel verwijdering werd de pagina P2 leeg en is de toewijzing van de pagina ongedaan.

  8. Voor de functie T3 moet een nieuwe pagina zijn vereist, en als u een P2 moet toewijzen, is hiervoor een X-Lock vereist, maar op de mirror is deze stap mislukt vanwege stap 6.

Op de mirror wordt de IX-vergrendeling niet vrijgegeven omdat de hobt_id in het vergrendelings blok niet klopt. Dit onjuiste hobt_id komt voor in stap 2 en omdat SQL Server de hobt_id niet in het spiegeling-logboek plaatst, wordt het meestal niet weergegeven omdat de vastlegging in stap 2 zeer kort is en het vergrendelings blok met onjuiste hobt_id wordt vrijgegeven wanneer het wordt vastgelegd. Vanwege vergrendelen van vergrendelen in step3 en de volgende stappen (4 en 5), wordt dit vergrendelings blok met onjuiste hobt_id bewaard en wordt het probleem uiteindelijk veroorzaakt. Dit probleem doet zich niet voor omdat dit een juiste hobt_id in stap 2 gebruikt. De logboekrecord bevat niet de juiste hobt_id.

Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingsoplossingen die zijn opgenomen in de vorige cumulatieve update. Bekijk de nieuwste cumulatieve updates voor SQL Server:

Tijdelijke oplossing

Als u het probleem tijdelijk wilt omzeilen, initialiseert u de mirror opnieuw om de Suspend-status te beëindigen.

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?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.

Community's helpen u vragen te stellen en te beantwoorden, feedback te geven en te leren van experts met uitgebreide kennis.

Was deze informatie nuttig?

Hoe tevreden bent u met de taalkwaliteit?
Wat heeft uw ervaring beïnvloed?
Als u op Verzenden klikt, wordt uw feedback gebruikt om producten en services van Microsoft te verbeteren. Uw IT-beheerder kan deze gegevens verzamelen. Privacyverklaring.

Hartelijk dank voor uw feedback.

×