Použití zrcadlení databáze

platí pro:SQL Server

Stáhnout ovladač OLE DB

Note

Tato funkce bude odebrána v budoucí verzi SQL Serveru. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají. Místo toho používejte skupiny dostupnosti AlwaysOn.

Zrcadlení databází, představené v SQL Server 2005 (9.x), je řešením pro zvýšení dostupnosti databází a redundance dat. OLE DB Driver for SQL Server poskytuje implicitní podporu pro zrcadlení databáze, takže vývojář nemusí psát žádný kód ani podnikat jiné kroky poté, co je databáze nakonfigurována.

Zrcadlení databáze, které se implementuje pro každou databázi, uchovává kopii produkční databáze SQL Serveru na pohotovostním serveru. Tento server je buď horký nebo teplý pohotovostní server v závislosti na konfiguraci a stavu relace zrcadlení databáze. Hot standby server podporuje rychlé přepnutí bez ztráty zavázaných transakcí a warm standby server podporuje nucené služby (s možnou ztrátou dat).

Produkční databáze se nazývá hlavní databáze a záložní kopie se nazývá zrcadlová databáze. Hlavní databáze a zrcadlená databáze musí být umístěny na samostatných instancích SQL Server (serverových instancích) a pokud možno by měly být umístěny na samostatných počítačích.

Instance produkčního serveru, nazývaná hlavní server, komunikuje s instancí pohotovostního serveru, nazývanou mirror server. Hlavní a zrcadlový server fungují jako partneři v rámci zrcadlení databáze. Pokud hlavní server selže, může zrcadlový server přeměnit svou databázi na hlavní databázi prostřednictvím procesu zvaného failover. Například Partner_A a Partner_B jsou dva partnerské servery, hlavní databáze je zpočátku na Partner_A jako hlavní server a zrcadlová databáze umístěná na Partner_B jako zrcadlový server. Pokud Partner_A přejde do režimu offline, databáze na Partner_B může převzít úlohu primární databáze a stát se aktuální primární databází. Když se Partner_A znovu připojí k relaci zrcadlení, stane se zrcadlovým serverem a jeho databáze se stane zrcadlovou databází.

Alternativní konfigurace zrcadlení databáze nabízejí různé úrovně výkonu a bezpečnosti dat a podporují různé formy převzetí při selhání. Další informace naleznete v tématu Zrcadlení databáze (SQL Server).

Při zadávání názvu zrcadlové databáze je možné použít alias.

Note

Pro informace o počátečních pokusech o připojení a pokusech o opětovné připojení k zrcadlené databázi viz Připojit klienty k zrcadlení databáze (SQL Server).

Důležité informace o programování

Když hlavní databázový server selže, klientská aplikace obdrží chyby v reakci na volání rozhraní API, což znamená, že připojení k databázi bylo ztraceno. Když k tomu dojde, všechny nezávazné změny v databázi se ztratí a aktuální transakce je vrácena zpět. Pokud k tomu dojde, aplikace by měla spojení uzavřít (nebo uvolnit objekt zdrojového data) a znovu jej otevřít. Spojení je transparentně přesměrováno do zrcadlové databáze, která nyní funguje jako hlavní server.

Po navázání připojení odešle primární server klientovi identifikaci svého partnera pro převzetí služeb při selhání, aby ji klient použil při převzetí služeb při selhání. Pokud se aplikace pokusila navázat spojení po selhání hlavního serveru, klient nezná identitu partnera pro failover. Aby klienti měli možnost zvládnout tuto situaci, umožňuje inicializační vlastnost a přidružené klíčové slovo připojovací řetězec klientovi zadat identitu failover partnera samostatně. Atribut klienta se používá pouze v tomto scénáři; pokud je hlavní server k dispozici, není používán. Pokud server partnera pro failover dodaný klientem neodkazuje na server fungující jako partner pro failover, připojení je serverem odmítnuto. Aby se aplikace mohly přizpůsobit změnám konfigurace, lze identitu skutečného partnera pro failover určit kontrolou atributu po navázání připojení. Měli byste zvážit ukládání informací o partnerovi do mezipaměti pro aktualizaci připojovací řetězec nebo navrhnout strategii opakovaného pokusu v případě, že první pokus o spojení selže.

Note

Pokud chcete tuto funkci použít v DSN, připojovací řetězec nebo vlastnosti/atributu connection musíte explicitně specifikovat databázi, kterou má být použita pro spojení. OLE DB Driver for SQL Server se nepokusí o failover do partnerské databáze, pokud to není provedeno.

Zrcadlení je součástí databáze. Aplikace, které používají více databází, nemusí být schopny tuto funkci zneužít.

Navíc názvy serverů nejsou citlivé na velká písmena, ale názvy databází jsou citlivé na velká písmena. Proto byste měli zajistit, že používáte stejné pouzdro v DSN a spojovacích řetězcích.

Ovladač OLE DB pro SQL Server

OLE DB Driver for SQL Server podporuje zrcadlení databáze prostřednictvím atributů connection a připojovací řetězec. Vlastnost SSPROP_INIT_FAILOVERPARTNER byla přidána do sady DBPROPSET_SQLSERVERDBINIT vlastností a klíčové slovo FailoverPartner je novým atributem připojovací řetězec pro DBPROP_INIT_PROVIDERSTRING. Pro více informací viz Používání klíčových slov v spojovacích řetězcích s OLE DB Driver for SQL Server.

Failover cache je udržován po celou dobu načtení poskytovatele, tedy dokud není vyvolán CoUninitialize nebo dokud aplikace nemá odkaz na nějaký objekt spravovaný OLE DB Driver for SQL Server, například datový zdrojový objekt.

Podrobnosti o podpoře zrcadlení databází v OLE DB Driver for SQL Server pro zrcadlení databází naleznete v sekci Inicializace a autorizace.