Logga in med Microsoft
Logga in eller skapa ett konto.
Hej,
Välj ett annat konto.
Du har flera konton
Välj det konto som du vill logga in med.

Symptom

När du använder databas spegling i Microsoft SQL Server 2012 eller Microsoft SQL Server 2014 kan du trycka på ett villkor för att avaktiveras.

Orsak

Problemet beror på att SQL Server får ett X-lås på den nya sidan när du tilldelar en ny sida. SQL Server placerar det hobt_id (heap eller B-träd-ID) som den nya sidan tillhör i låset. Men det går inte att använda hobt_id i spegel loggen i SQL Server och det ger olika lås beteenden mellan primär och spegel. Det kan förklaras i detalj enligt följande:

  1. T1 håll a a IX lås på sidan P1.

  2. T2 gör en sid delning på P1, tilldela en ny sida P2, en system transaktion TX används här, den har ett X lock på P2. I den här SQL-servern lades inte hobt_id i speglings loggen.

  3. TX gör en Lås migrering för T1 för att flytta IX låset från P1 till P2.

  4. TX-bekräftat, T2 kan nu använda sid P2 och T2 få en annan IX lås på sidan P2.

  5. T1 commit, nu T2 är det enda som innehåller ett IX lås på P2.

  6. När det är många att infoga, en låsnings spärr, på den primära, T2 släpper IX på P2, men på spegeln, under låsnings eskaleringen, släppte inte IX låset.

  7. När du har tagit bort är sid P2 tomma och har blivit tilldelad.

  8. T3 behöver en ny sida och det sker för att tilldela P2, detta kräver ett X-lås, men på spegeln misslyckades det här steget på grund av steg 6.

På spegel sidan släpps inte 9-låset på grund av att hobt_id i låset är fel. Denna felaktiga hobt_id kommer under steg 2 och på grund av att SQL Server inte placerar hobt_id i speglings loggen. vanligt vis ser du inte något problem eftersom TX i steg 2 är väldigt kort och låsnings blocket med felaktig hobt_id släpps när det överförs. Men på grund av lås migrering i steg 3 och följande steg (4 och 5), bevaras det här låset med fel hobt_id bevaras och du får ett problem. Det finns inget sådant problem med primärt eftersom det använder rätt hobt_id i steg 2. Men logg posten har inte rätt hobt_id.

Varje ny kumulativ uppdatering för SQL Server innehåller alla snabb korrigeringar och alla säkerhets korrigeringar som ingick i den föregående kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:

Lösning

Lös problemet genom att initiera om spegeln för att avsluta uppskjuten status.

Status

Microsoft har bekräftat att det här är ett problem i Microsoft-produkterna som nämns i "gäller".

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.

Communities hjälper dig att ställa och svara på frågor, ge feedback och få råd från experter med rika kunskaper.

Hade du nytta av den här informationen?

Hur nöjd är du med språkkvaliteten?
Vad påverkade din upplevelse?
Genom att trycka på skicka, kommer din feedback att användas för att förbättra Microsofts produkter och tjänster. IT-administratören kan samla in denna data. Sekretesspolicy.

Tack för din feedback!

×