Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
Az SQL Server adatbázis-tükrözése a Microsoft Fabric Database Mirroringtől eltérő technológia.
Az SQL Server adatbázis-tükrözése lehetővé teszi, hogy egy SQL Server-adatbázis másolatát vagy tükrözését készenléti kiszolgálón tárolja. A tükrözés biztosítja, hogy az adatok két különálló példánya mindig létezik, magas rendelkezésre állást és teljes adatredundanciát biztosítva. Az SQL Serverhez készült Microsoft SqlClient Provider implicit támogatást nyújt az adatbázis-tükrözéshez. A fejlesztőnek nem kell semmit tennie, miután az ügyfél konfigurálva lett egy SQL Server-adatbázishoz. Az SqlConnection objektum támogatja az explicit kapcsolati módot is, amely lehetővé teszi az átvételi partnerkiszolgáló nevének megadását a ConnectionString.
A tükrözéshez konfigurált adatbázist megcélzó objektumok esetében SqlConnection a következő egyszerűsített eseménysorozat történik:
- Az ügyfélalkalmazás sikeresen csatlakozik a központi adatbázishoz, és a kiszolgáló visszaküldi a partnerkiszolgáló nevét, amelyet az ügyfél gyorsítótáraz.
- Ha az egyszerű adatbázist tartalmazó kiszolgáló meghibásodik, vagy megszakad a kapcsolat, megszakad a kapcsolat és a tranzakció állapota. Az ügyfélalkalmazás megpróbál újra kapcsolatot létesíteni az egyszerű adatbázissal, és sikertelen lesz.
- Az ügyfélalkalmazás ezután transzparens módon megpróbál kapcsolatot létesíteni a partnerkiszolgáló tükrözött adatbázisával. Ha sikerül, a rendszer átirányítja a kapcsolatot a tükrözött adatbázisba, amely ezután az új egyszerű adatbázis lesz.
Áttérési partner megadása a kapcsolati stringben
Ha egy feladatátvevő partnerkiszolgáló nevét adja meg a kapcsolati sztringben, és az elsődleges adatbázis nem érhető el, amikor az ügyfélalkalmazás csatlakozik, az ügyfél transzparens módon megkísérel kapcsolatot létesíteni a feladatátvevő partnerrel.
";Failover Partner=PartnerServerName"
Ha kihagyja az átvételi partnermunkamenet-kiszolgáló nevét, és az elsődleges adatbázis nem érhető el, amikor az ügyfélalkalmazás először csatlakozik, akkor SqlException következik be.
SqlConnection Sikeres megnyitáskor a kiszolgáló visszaadja a feladatátvevő partner nevét, amely felülírja a kapcsolati sztringben megadott értékeket.
Megjegyzés:
Az adatbázis-tükrözési forgatókönyvekhez explicit módon meg kell adnia a kezdeti katalógust vagy adatbázisnevet a kapcsolati sztring. Ha az ügyfél olyan kapcsolaton kap feladatátvételi információkat, amely nem rendelkezik explicit módon megadott kezdeti katalógussal vagy adatbázissal, a rendszer nem gyorsítótárazza a feladatátvételi adatokat, és az alkalmazás nem kísérli meg a feladatátvételt, ha az egyszerű kiszolgáló meghibásodik. Ha egy kapcsolati sztring rendelkezik a feladatátvevő partner értékével, de nincs értéke a kezdeti katalógusnak vagy adatbázisnak, a rendszer létrehoz egy InvalidArgumentException értéket.
Az aktuális kiszolgálónév beolvasása
Feladatátvétel esetén az objektum DataSource tulajdonságával lekérdezheti annak a kiszolgálónak a SqlConnection nevét, amelyhez az aktuális kapcsolat kapcsolódik. Az alábbi kódrészlet lekéri az aktív kiszolgáló nevét, feltéve, hogy a kapcsolati változó egy nyitottra SqlConnectionhivatkozik.
Amikor feladatátvételi esemény történik, és a kapcsolat a tükrözött kiszolgálóra vált, a DataSource tulajdonság a tükrözött névnek megfelelően frissül.
string activeServer = connection.DataSource;
Az SqlClient tükrözési viselkedése
Az ügyfél mindig megpróbál kapcsolódni a fő kiszolgálóhoz. Ha sikertelen, megpróbálja a feladatátvételi partnert. Ha a tükrözött adatbázis már át lett kapcsolva a partnerkiszolgálón az egyszerű szerepkörre, a kapcsolat sikeres lesz, és az új principal-mirror leképezést a rendszer elküldi az ügyfélnek, és gyorsítótárazza a hívás AppDomainteljes időtartama alatt. Nincs tartós tárolóban tárolva, és nem érhető el egy másik AppDomain vagy folyamat jövőbeli kapcsolataihoz. Az AppDomain belüli későbbi kapcsolatokhoz azonban elérhető. Egy másik, ugyanazon vagy egy másik számítógépen futó AppDomain vagy folyamat mindig rendelkezik a kapcsolatkészletével, és ezek a kapcsolatok nem lesznek visszaállítva. Ebben az esetben, ha az elsődleges adatbázis leáll, minden folyamat vagy AppDomain egyszer meghiúsul, és a készlet automatikusan törlődik.
Megjegyzés:
A kiszolgáló tükrözési támogatása adatbázisonként van konfigurálva. Ha az adatmanipulációs műveleteket az egyszerű/tükrözött készletben nem szereplő más adatbázisokon hajtják végre, akár többrészes nevek használatával, akár az aktuális adatbázis módosításával, a többi adatbázis módosításai sikertelenség esetén nem propagálódnak. Nem jön létre hiba, ha az adatok nem tükrözött adatbázisban módosulnak. A fejlesztőnek értékelnie kell az ilyen műveletek lehetséges hatását.
Következő lépések
Adatbázis-tükrözési erőforrások
A tükrözés konfigurálásával, üzembe helyezésével és felügyeletével kapcsolatos elméleti dokumentációért és információkért tekintse meg az SQL Server dokumentációjának alábbi erőforrásait.
| Resource | Description |
|---|---|
| Adatbázis-tükrözés | Ismerteti, hogyan állíthatja be és konfigurálhatja a tükrözést az SQL Serveren. |