Logg på med Microsoft
Logg på, eller opprett en konto.
Hei,
Velg en annen konto.
Du har flere kontoer
Velg kontoen du vil logge på med.

Symptomer

Når du bruker databasespeiling i 2012 for Microsoft SQL Server eller Microsoft SQL Server-2014, kan du treffer en assert betingelse og databasespeiling går inn i hvilemodus.

Årsak

Dette problemet oppstår fordi ved tildeling av en ny side, henter SQL Server en X-lås på den nye siden. SQL Server vil plassere hobt_id (Heap eller B-tre-ID) som tilhører den nye siden i Lås-forespørselen. SQL Server kan imidlertid legge til hobt_id i speiling logg og resultater i forskjellige Lås oppførsel fra primært og speil.

Dette kan forklares i detalj som følger:

  1. T1 holder en IX lås på Page P1.

  2. T2 gjør en side som er delt på P1, tildele en ny side P2, en Systemtransaksjon TX brukes her, og den inneholder en X-lås på P2. Her SQL Server ikke har lagt til hobt_id i loggen for speiling.

  3. TX har en lås migrering for T1 flytte IX-Lås fra P1 til P2.

  4. TX utført, nå T2 kan bruke Page P2 og T2 får tak i en annen IX lås på P2-siden.

  5. Utført T1, T2 nå er den eneste som innehar en IX lås på P2.

  6. Etter at du har mye å sette inn, oppstår en lås Opptrapping, på primært T2 utgir IX på P2, men på speilet, under Lås eskalering T2 låse ikke IX.

  7. Etter mye sletting, Page P2 ble tom og er er fradelt.

  8. T3 trenger en ny side, og det skjer ikke tildele P2, dette krever en X-Lås, men på speilet, vil dette trinnet som mislyktes på grunn av trinn 6.


På speilet frigjør trinn 6 ikke låsen IX fordi hobt_id i Lås-blokken er ugyldig. Denne feil hobt_id kommer under trinn 2, og på grunn av SQL Server plasserer du hobt_id i loggen for speiling.
Vanligvis ser du ikke et problem fordi det er svært kort, TX i trinn 2, og vil bli utgitt Lås-blokk med feil hobt_id når det utføres. Imidlertid på grunn av låsen på nytt i step3 og følgende trinn (4 og 5), denne Lås blokk med feil hobt_id beholdes og til slutt som forårsaker problemet.
Primært har ikke dette problemet fordi den bruker en riktig hobt_id i trinn 2. Men loggposten er ikke riktig hobt_id.

Hver nye kumulative oppdateringen for SQL Server inneholder alle hurtigreparasjonene og alle sikkerhetsreparasjoner som fulgte med den forrige kumulative oppdateringen. Sjekk ut de nyeste kumulative oppdateringene for SQL Server:


Løsningen

Hvis du vil omgå problemet, initialiseres på nytt speil for å avslutte stoppet status.

Status

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

Trenger du mer hjelp?

Vil du ha flere alternativer?

Utforsk abonnementsfordeler, bla gjennom opplæringskurs, finn ut hvordan du sikrer enheten og mer.

Fellesskap hjelper deg med å stille og svare på spørsmål, gi tilbakemelding og høre fra eksperter med stor kunnskap.

Var denne informasjonen nyttig?

Hvor fornøyd er du med språkkvaliteten?
Hva påvirket opplevelsen din?
Når du trykker på Send inn, blir tilbakemeldingen brukt til å forbedre Microsoft-produkter og -tjenester. IT-administratoren kan samle inn disse dataene. Personvernerklæring.

Takk for tilbakemeldingen!

×