Chyba: sp_change_secondary_role se nezdaří s 3101 chyby Pokud došlo jsou nevyřízené protokolu transakcí zálohy

Překlady článku Překlady článku
ID článku: 294397 - Produkty, které se vztahují k tomuto článku.
CHYBA Č: 352508 (SHILOH)
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Provádění sp_change_secondary_role Pokud jsou splněny obě následující podmínky, uložené procedury rezervní server protokolu expedice dvojici selže s 3101 chybová zpráva:

  • Pro argument @ Ukončit předán hodnotu 1. Poznámka: Toto je také výchozí hodnotu pro tento parametr.
  • Je alespoň jeden protokol nevyřízené transakce aplikovaný na úsporný režim serveru.
Spustit úlohu RESTORE LOG na rezervní server pomocí xp_sqlmaint rozšířené postup v tomto okamžiku výstup je:
Zdrojová databáze - test
Cílová databáze - test
[Microsoft SQL-DMO (SQLState ODBC: 42000)]
Chyba 3101: [Microsoft] [ODBC SQL Server Driver] SQL Server výhradní přístup nelze získat, protože databáze je používán.
[Microsoft][ODBC SQL Server Driver]SQL ServerRESTORE LOG je neobvykle ukončen.
Načtení souborů 0
NULL
Dokončené zatížení plán SERVER1\INST1.test_logshipping

Server: Zpráva 22029, úroveň 16 stav 1, řádek 0
Sqlmaint.exe se nezdařilo.

Příčina

Pokud protokolu dopravy nakonfigurován mezi dvěma servery a potřebujete přenést online serveru sekundární nebo úsporný režim, můžete spustit sp_change_secondary_role uložené procedury na úsporný režim serveru přenést online serveru sekundární nebo úsporný režim. Pokud execute sp_change_secondary_role uložené procedury s výchozí parametry uložené procedury provádí tyto úlohy:

  • Nastaví databázi úsporného režimu jednoho uživatele.
  • Zkopíruje další soubory, které může být nutné zkopírovat.
  • Zakáže úlohy kopie na úsporný režim serveru.
  • Obnoví všechny protokoly nevyřízené transakce.
  • Přenese databázi v režimu online na sekundární server.
  • Provádí některé housekeeping protokolu expedice plán tabulek v databázi msdb, protože dané informace nyní potřebuje být aktualizovány.
Pokud sp_change_secondary_role uložené procedury je předán hodnota @ Ukončit = 1 (což je výchozí vstupní hodnotu pro parametr @ Ukončit) v předchozím posloupnosti položky 1 používá
ALTER DATABASE dbname SET SINGLE_USER
příkazu změnit stav databáze a zajistit, že při pokusu o operaci obnovení připojeni žádní uživatelé. Příkazu ALTER DATABASE však způsobuje, že trvat uzamčení sdílené databáze, který zůstává v platnosti, dokud připojení ukončí. Položky 2 a 4 jsou prováděny pomocí xp_sqlmaint rozšířené procedury, které otevře samostatné připojení k serveru, takže takto použít id serveru procesu (spid), který je odlišný od spid původní připojení sp_change_secondary_role. Výsledkem je uzamčení sdílené databáze, které je uchována podle bloků spid uložené procedury úkolu RESTORE LOG, že xp_sqlmaint pokusí dokončit. Postup sp_change_secondary_role tedy nezdaří s chybovou zprávou 3101.

Jak potíže obejít

Chcete-li se vyhnout této chybě, použijte jednu z následujících řešení:
  • Zajistit, že před spuštěním sp_change_secondary_role uložené procedury neexistují žádné protokoly nevyřízené transakce. Ručně spustit úlohu RESTORE na sekundární server ještě před spuštěním sp_change_secondary_role zajistí, že jsou protokoly žádné nevyřízené transakce.

    Nebo
  • Hodnota nula, která by mohla předat @ Ukončit parametr (@ terminate = 0) při spouštění sp_change_secondary_role uložené procedury. Uživatel musí však ověřte, zda jsou žádní uživatelé před provedením uložené procedury je zajistit RESTORE LOG funguje úspěšně připojen k databázi.

Prohlášení

Společnost Microsoft potvrzuje, že se to být problém v SQL Server 2000.

Další informace

sp_change_secondary_role je systémovou uloženou proceduru, která spustíte na úsporný režim serveru, když chcete přenést rezervní server online.

Odkazy

SQL Server Books Online; téma: „ Jak nastavení a provádění protokolu expedice změnit role (Transact-SQL) „

Vlastnosti

ID článku: 294397 - Poslední aktualizace: 25. června 2004 - Revize: 3.3
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Developer Edition
Klíčová slova: 
kbmt kbbug kbpending KB294397 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:294397

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com