Přihlásit se pomocí účtu Microsoft
Přihlaste se nebo si vytvořte účet.
Dobrý den,
Vyberte jiný účet.
Máte více účtů.
Zvolte účet, pomocí kterého se chcete přihlásit.

Příznaky

Pokud používáte zrcadlení databáze v Microsoft SQL serveru 2012 nebo Microsoft SQL serveru 2014, může dojít k zavolání podmínky Assert a zrcadlení databáze do stavu pozastaveno.

Příčina

K tomuto problému dochází, protože při přidělení nové stránky obdrží SQL Server na nové stránce zámek X. SQL Server vloží hobt_id (halda nebo B-stromové ID), do kterého nová stránka patří do žádosti o zámek. SQL Server ale nemůže hobt_id do protokolu zrcadlení a výsledky se můžou lišit mezi primárním a zrcadlovým chováním. Popis se dá podrobně vysvětlit takto:

  1. T1 Držte zámek IX na stránce P1.

  2. T2: stránka se dělí na P1, přidělí novou stránku P2, použije se zde systémová transakce TX. Do protokolu zrcadlení SQL Server neuvedl hobt_id.

  3. Pomocí zámku uzamkne migrace pro T1 přesunutí zámku z P1 na P2.

  4. TX potvrzeno: T2 může použít stránku P2 a T2 získá další zámek IX na stránce P2.

  5. T1 potvrzeno: T2 je jediný, kdo má zámek IX v P2.

  6. Po šarži vložení dojde na primárním T2 k eskalaci zámku, ale na zrcadlu během Eskalace zámku, T2 neuvolnil zámek IX.

  7. Po odstranění šarží se stránka P2 vyprázdní a je navrácena.

  8. T3 potřebuje novou stránku a stane se mu přidělit hodnota P2, vyžaduje proto zámek X, ale na zrcadle se tento krok nezdařil kvůli kroku 6.

V důsledku toho krok 6 neuvolní zámek IX, protože hobt_id v bloku zámku je nesprávný. Tento nesprávný hobt_id v kroku 2 spadá a z toho důvodu SQL Server neumísťuje hobt_id do protokolu zrcadlení. obvykle se vám nezobrazuje žádný problém, protože v kroku 2 TX je velmi krátké a blok zámku s nesprávným hobt_id bude při potvrzení uvolněn. Z důvodu zámku migrace v Step3 a v následujících krocích (4 a 5) se ale tento blok zámku s nesprávným hobt_id zachová a konečně to způsobí problém. Primární nemá tento problém, protože používá správný hobt_id v kroku 2. Ale záznam protokolu nemá správný hobt_id.

Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Podívejte se na nejnovější kumulativní aktualizace SQL serveru:

Alternativní řešení

Problém vyřešíte tak, že znovu inicializujete zrcadlo a ukončíte tak stav pozastaveno.

Stav

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?
Po stisknutí tlačítka pro odeslání se vaše zpětná vazba použije k vylepšování produktů a služeb Microsoftu. Váš správce IT bude moci tato data shromažďovat. Prohlášení o zásadách ochrany osobních údajů.

Děkujeme vám za zpětnou vazbu.

×