Adatbázis tükrözés használata az SQL Server natív kliensben

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Note

Ez a funkció a SQL Server egy későbbi verziójában lesz eltávolítva. Ne használja ezt a funkciót az új fejlesztési munkában, és tervezze meg a funkciót jelenleg használó alkalmazások módosítását. Használja inkább az Always On rendelkezésre állási csoportokat.

Important

SQL Server Native Client (SNAC) nem kerül szállításra a következőkkel:

  • SQL Server 2022 (16.x) és újabb verziók
  • AZ SQL Server Management Studio 19- és újabb verziói

Az SQL Server natív ügyfele (SQLNCLI vagy SQLNCLI11) és az örökölt Microsoft OLE DB Provider for SQL Server (SQLOLEDB) nem ajánlott az új alkalmazásfejlesztéshez.

Új projektek esetén használja az alábbi illesztőprogramok egyikét:

Az SQL Server adatbázismotor (2012–2019) egyik összetevőjeként szállított SQLNCLI esetében tekintse meg az alábbi támogatási életciklus-kivételt.

Az adatbázis tükrözése, amelyet az SQL Server 2005 (9.x) vezetett be, megoldás az adatbázis elérhetőségének és az adatredundancia növelésére. Az SQL Server Native Client implicit támogatást nyújt az adatbázis tükrözéséhez, így a fejlesztőnek nem kell kódot írnia vagy más lépéseket tennie, miután az adatbázis konfigurált.

Az adatbázis-tükrözés, amely adatbázisonként van implementálva, egy SQL Server éles adatbázis másolatát tárolja egy készenléti kiszolgálón. Ez a szerver a konfigurációtól és az adatbázis-tükrözési munkamenet állapotától függően lehet forró vagy meleg tartalék szerver. Egy forró készenléti szerver támogatja a gyors failovert elkötelezett tranzakciók elvesztése nélkül, míg a meleg várakozó szerver támogatja a szolgáltatás kényszerítését (adatvesztés lehetőségével).

A termelési adatbázist fő adatbázisnak, a kész másolatot pedig tüköradatbázisnak nevezik. A fő adatbázisnak és a tüköradatbázisnak külön SQL Server példányokon (szerverpéldányokban) kell lennie, és ha lehetséges, külön számítógépeken kell helyezkedniük.

A termelési szerver példány, az úgynevezett fő szerver, kommunikál a várakozó szerver példányával, azaz a tükörszervernel. A fő és a tükörszerverek partnerként működnek egy adatbázis tükröző ülésen belül. Ha a fő szerver meghibásodik, a tükörszerver egy failover-nek nevezett folyamat révén az adatbázisát a fő adatbázissá alakíthatja. Partner_A és Partner_B például két partnerkiszolgáló, ahol az elsődleges adatbázis kezdetben Partner_A szerveren mint fő kiszolgáló, míg a tükrözött adatbázis Partner_B szerveren mint tükrözött kiszolgáló található. Ha a Partner_A offline állapotba kerül, a Partner_B adatbázisa átveheti az aktuális fő adatbázis szerepét. Amikor Partner_A újracsatlakozik a tükrözési munkamenethez, az lesz a tükrözési kiszolgáló, és az adatbázisa lesz a tükrözött adatbázis.

Az alternatív adatbázis-tükrözési konfigurációk különböző teljesítmény- és adatbiztonsági szinteket kínálnak, és támogatják a feladatátvétel különböző formáit. További információ: Database Mirroring (SQL Server).

Lehetséges alias használata a tüköradatbázis nevének megadásakor.

Note

Az eredeti kapcsolódási és újrakapcsolási kísérletekről egy tükrözött adatbázishoz vonatkozóan további információkért lásd: Kliensek összekapcsolása egy adatbázis tükröző üléshez (SQL Server).

Programozási szempontok

Ha az egyszerű adatbázis-kiszolgáló meghibásodik, az ügyfélalkalmazás hibaüzenetet kap az API-hívásokra válaszul, ami azt jelzi, hogy az adatbázishoz való kapcsolat megszakadt. Amikor ez megtörténik, az adatbázisban elkötelezetlen változások elvesznek, és a jelenlegi tranzakciót visszafordítják. Ha ez megtörténik, az alkalmazásnak le kell zárnia a kapcsolatot (vagy ki kell engednie az adatforrás objektumot), és újra meg kell nyitnia. A kapcsolatot átláthatóan átirányítják a tüköradatbázisba, amely most a fő szerverként működik.

Amikor létrejön a kapcsolat, az elsődleges kiszolgáló elküldi a feladatátvételi partnere identitását a feladatátvételkor használni kívánt ügyfélnek. Ha egy alkalmazás megpróbált kapcsolatot létrehozni a fő szerver meghibásodása után, az ügyfél nem ismeri a rendszerátvételi partner személyazonosságát. Hogy az ügyfelek ezzel a helyzettel megbirkózhassanak, egy inicializációs tulajdonság és egy hozzá tartozó kapcsolati karakterlánc kulcsszó lehetővé teszi, hogy az ügyfél önállóan megadja a failover partner identitását. Az ügyfél attribútumot csak ebben a helyzetben használják; ha a fő szerver elérhető, akkor nem használják. Ha a kliens által biztosított failover partner szerver nem utal egy szerverre, amely failover partnerként működik, akkor a szerver elutasítja a kapcsolatot. Ahhoz, hogy az alkalmazások alkalmazkodhassanak a konfigurációs változásokhoz, a tényleges failover partner identitását a kapcsolat létrehozása után az attribútumot vizsgálva határozzák meg. Érdemes érdemes átgondolni a partner információk gyorsítótárába helyezését, hogy frissítse a kapcsolati karakterlánc-et, vagy kidolgozz egy újrapróbálási stratégiát, ha az első kapcsolati próbálkozás sikertelenül működik.

Note

Kifejezetten meg kell határoznod, hogy melyik adatbázist egy kapcsolat használja, ha ezt a funkciót DSN-ben, kapcsolati karakterlánc-ben vagy kapcsolati tulajdonságban/attribútumban szeretnéd használni. Az SQL Server Native Client nem próbál visszaváltani a partner adatbázisba, ha ezt nem csinálják.

A tükrözés az adatbázis egyik funkciója. Azok az alkalmazások, amelyek több adatbázist használnak, nem feltétlenül tudják kihasználni ezt a funkciót.

Ezen felül a szervernevek kis kis- és nagybetűérzékenyek, de az adatbázisnevek kis- és nagybetűérzékenyek. Ezért ügyelj arra, hogy ugyanazt a burkolatot használd a DSN-ekben és a csatlakozási láncokban.

SQL Server Native Client OLE DB-szolgáltató

Az SQL Server Native Client OLE DB szolgáltató támogatja az adatbázis tükrözését a kapcsolati és kapcsolati karakterlánc attribútumokon keresztül. A SSPROP_INIT_FAILOVERPARTNER tulajdonságot hozzáadták a DBPROPSET_SQLSERVERDBINIT tulajdonsághalmazhoz, és a FailoverPartner kulcsszó egy új kapcsolati karakterlánc attribútumot jelent DBPROP_INIT_PROVIDERSTRING számára. További információ: Kapcsolati karakterláncok kulcsszóinak használata az SQL Server Native Client-zel.

A failover cache addig fennmarad, amíg a szolgáltató be van töltve, egészen addig, amíg a CoUninitialize hívást nem hívják, vagy amíg az alkalmazás hivatkozik valamilyen objektumra, amelyet az SQL Server Native Client OLE DB szolgáltató kezel, például egy adatforrás objektumra.

Az SQL Server Native Client OLE DB szolgáltató adatbázis-tükrözés támogatásáról a részletekért lásd: Initializáció és Engedélyezési Tulajdonságok.

SQL Server natív ügyfél ODBC-illesztőprogramja

Az SQL Server Native Client ODBC illezőprogramja támogatja az adatbázis tükrözését a kapcsolati és kapcsolati karakterlánc attribútumokon keresztül. Kifejezetten a SQL_COPT_SS_FAILOVER_PARTNER attribútumot az SQLSetConnectAttr és SQLGetConnectAttr funkciókhoz adták hozzá; és a Failover_Partner kulcsszót új kapcsolati karakterlánc attribútumként adták be.

A failover cache addig tart fenn, amíg az alkalmazásnak legalább egy környezeti handle van kijelölve. Ezzel szemben elveszik, amikor az utolsó környezeti handle leoldódik.

Note

Az ODBC Driver Manager továbbfejlesztette, hogy támogassa a failover szerver név specifikációját.