Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytický platformní systém (PDW)
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.
Important
SQL Server Native Client (SNAC) není dodáván s:
- SQL Server 2022 (16.x) a novější verze
- SQL Server Management Studio 19 a novější verze
Pro vývoj nových aplikací se nedoporučuje nativní klient SQL Serveru (SQLNCLI nebo SQLNCLI11) a starší zprostředkovatel Microsoft OLE DB pro SQL Server (SQLOLEDB).
Pro nové projekty použijte jeden z následujících ovladačů:
Informace o SQLNCLI, které se dodává jako součást databázového stroje SQL Serveru (verze 2012 až 2019), naleznete v tomto support lifecycle exception.
Zrcadlení databází, představené v SQL Server 2005 (9.x), je řešením pro zvýšení dostupnosti databází a redundance dat. SQL Server Native Client poskytuje implicitní podporu pro zrcadlení databáze, takže vývojář nemusí psát žádný kód ani provádět žádné další akce 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í. SQL Server Native Client 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.
SQL Server Native Client Zprostředkovatel OLE DB
Poskytovatel SQL Server Native Client OLE DB 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. Další informace najdete v tématu Použití klíčových slov připojovacího řetězce s SQL Server Native Client.
Failover cache je udržována tak dlouho, dokud je poskytovatel načten, tedy dokud není vyvolán CoUninitialize nebo dokud má aplikace odkaz na nějaký objekt spravovaný poskytovatelem OLE DB pro SQL Server Native Client, například datový zdrojový objekt.
Podrobnosti o podpoře zrcadlení databází u poskytovatelů SQL Server Native Client OLE DB naleznete v článku Inicializace a autorizace.
Ovladač ODBC nativního klienta SQL Serveru
Nativní klientský ODBC ovladač SQL Server podporuje zrcadlení databáze prostřednictvím atributů connection a připojovací řetězec. Konkrétně byl přidán atribut SQL_COPT_SS_FAILOVER_PARTNER pro použití s funkcemi SQLSetConnectAttr a SQLGetConnectAttr; a klíčové slovo Failover_Partner bylo přidáno jako nový atribut připojovací řetězec.
Cache pro failover je udržována, dokud má aplikace alespoň jeden přidělený handle prostředí. Naopak se ztrácí, když je poslední handle prostředí deallocatedován.
Note
ODBC Driver Manager byl vylepšen tak, aby podporoval specifikaci názvu serveru pro failover.