Az ügyfelek összekapcsolása egy adatbázis-tükrözési munkamenethez (sql-kiszolgáló)

A megjelenített adatbázis kezdeti kapcsolatának elvégzéséhez az ügyfélnek olyan kapcsolódási karakterláncot kell megadnia, amely feltétlenül tartalmazza a kiszolgáló példány nevét. A szükséges kiszolgálónévnek meg kell határoznia az elsődleges kiszolgáló aktuális példányát, és meg kell neveznie az eredeti tag nevét.







Szükség esetén a kapcsolat-string tartalmazhat egy másik kiszolgálópéldány nevét is, amely azonosítja a tükrökiszolgáló aktuális példányát, amikor az eredeti tag nem érhető el az első kapcsolódási kísérlet során. A második név a failover partner neve.

A kapcsolatláncnak tartalmaznia kell az adatbázis nevét is. Ez azért szükséges, hogy az adatelérési szolgáltató megkísérelje az elutasítást.

Miután megkapta a connection string szolgáltató adathozzáférés megtartja az eredeti a résztvevő nevét és a nevét a partner failover (ha adott) a cache a felejtő memória (menedzselt kód, a cache a bejelentésben szereplő tartomány). A gyorsítótárazást követően az adatkezelő nem frissíti az eredeti tag nevét. Ha az ügyfél rendelkezik a neve a résztvevő failover esetén a szolgáltató az adatokhoz való hozzáférés nem tud csatlakozni a neve az eredeti fél, a szállító is menti a neve a partner failover.

Az adatbázis-tükrözés nem nyújt védelmet a kliensekhez való hozzáféréshez kapcsolódó problémákkal szemben, például ha az ügyfél számítógépe problémákat tapasztal a hálózattal való kapcsolattartásban. A megjelenített adatbázishoz való csatlakozás megkísérlése számos okból kifolyólag meghiúsulhat, amelyek nem kapcsolódnak az adatbeviteli szolgáltatóhoz, például egy kapcsolat kísérlet sikertelen lehet, ha az elsődleges kiszolgáló példány inaktív; Ez akkor fordul elő, ha más adatbázisba költözik, vagy egy hiba miatt.

Amikor megpróbál csatlakozni, az adatátvitel-szolgáltató elsősorban az eredeti tag nevével próbálja meg csatlakozni. Ha a megadott kiszolgáló példány rendelkezésre áll, és az elsődleges kiszolgáló aktuális példánya, akkor általában sikeres a kapcsolódási kísérlet.


Ha a tükrözés felfüggesztésre kerül, akkor az ügyfél általában az elsődleges kiszolgálóhoz csatlakozik, és letölti a résztvevő nevét. Az adatbázis azonban nem lesz elérhető az ügyfél számára, amíg a tükrözés nem folytatódik.

Ha a kísérlet meghiúsul, az adatátvitel-szolgáltató megpróbál kapcsolódni a failover partner nevével, ha rendelkezésre áll. Ha a másik résztvevő neve helyesen azonosítja az aktuális elsődleges kiszolgálót, az adatbeviteli szolgáltató általában megnyitja az eredeti kapcsolatot. Miután ez a kapcsolat befejeződött, az adatszolgáltató letölti az aktuális tükörszerver példánynevét. Ez a név a gyorsítótárban tárolódik, mint a failover partner neve, és a kliens által rendelkezésre bocsátott átirányítási partner neve, ha létezik, felülíródik. Ezt követően az .NET Framework Data Server for SQL Server nem frissíti a failover partner nevét. Az SQL Server Native Client azonban frissíti a gyorsítótárat minden olyan alkalommal, amikor egy későbbi kapcsolat vagy kapcsolat újratelepítése egy másik tag nevét adja vissza.

Az alábbi ábra mutatja az ügyféllel kapcsolatos kapcsolatot az eredeti A résztvevővel a megjelenített Db_1 adatbázishoz. A program bemutatja az esetben, ha az eredeti neve a résztvevő ügyfelek helyesen azonosítja a jelenlegi fő kiszolgáló tagja A. Kezdetben a kapcsolat sikeres, és a szállító adathozzáférés megtartja a nevét, a jelenlegi tükör szerver (tag B) a helyi cache, mint az a résztvevő nevét, hogy biztosítsa failover . Végül az ügyfél csatlakozik a Db_1 adatbázis fő példányához.

Az ügyfelek összekapcsolása egy adatbázis-tükrözési munkamenethez (sql-kiszolgáló)

Előfordulhat, hogy a kezdeti csatlakozási kísérlet sikertelen, például hálózati hiba következtében vagy azért, mert a kiszolgáló példány inaktív. Mivel az eredeti tag nem érhető el, az ügyfélnek meg kell adnia a partner nevét annak biztosítására, hogy a kapcsolat megszakadjon a kapcsolatláncban, így az adatátvitel-szolgáltató megpróbál kapcsolódni a failover partnerhez.

Ha a partner nevét failover nem áll rendelkezésre, a kezdeti kapcsolódási kísérletek folytatni, amíg nincs hiba (hasonlóan a kapcsolódás nem jeleníti meg az adatbázisban) lejár hálózati kapcsolat időtúllépés vagy nem küldjük vissza.

Ha a failover partner neve szerepel a kapcsolati karakterláncban, akkor az adatátviteli szolgáltató viselkedése a hálózati protokolltól és az ügyfél operációs rendszerétől függ, az alábbiak szerint:

TCP / IP esetén a kapcsolódási kísérleteket egy ismétlődő kapcsolati algoritmus szabályozza, amely az adatbázis-tükrözésre jellemző. Az újrakapcsolódási algoritmus határozza meg a kapcsolat maximális megnyitására engedélyezett maximális időt (újrapróbálkozási idő).







Más hálózati protokollokhoz

Ha hiba történik, vagy az eredeti tag nem érhető el, a kezdeti kapcsolódási kísérletek addig folytatódnak, amíg a hálózati kapcsolat időtúllépése lejárt, vagy az adatátviteli szolgáltató bejelentkezési időtúllépése lejárt. Általában ez a várakozási idő körülbelül 20-30 másodperc. Ezt követően, ha a szolgáltató várakozási ideje lejárt, a szolgáltató megpróbál csatlakozni a failover partnerhez. Ha a kapcsolat időtúllépése a kapcsolat sikeres befejezése előtt jár le, vagy a failover partner nem érhető el, a csatlakozási kísérlet meghiúsul. Ha a failover partner elérhető a bejelentkezési időkorlát előtt, és jelenleg az elsődleges kiszolgáló, akkor általában sikeres a kapcsolódási kísérlet.

Csatlakozási vonalak tükörsávval

Az ügyfél által közölt kapcsolódási karakterlánc olyan adatokat tartalmaz, amelyeket az adatbeviteli szolgáltató az adatbázishoz való csatlakozáshoz használ. Ez a rész a Native Client ODBC SQL Server illesztőprogramot használó tükrözött adatbázisra történő csatlakozással kapcsolatos kulcsszavakat ismerteti.

A hálózati attribútum

A kapcsolat-karakterláncnak tartalmaznia kell a Network attribútumot. jelezve a hálózati protokollt. Ez biztosítja, hogy a megadott hálózati protokoll megmaradjon a különböző résztvevőkhöz való csatlakozáskor. A TCP / IP a legjobb protokoll a megjelenítési adatbázishoz való csatlakozáshoz. A TCP / IP kérésnek a klienshez történő minden egyes alkalommal történő biztosítása érdekében mindig a következő attribútumot kell megadnia a kapcsolathoz:


Mivel a nevezett csövek nem használják a TCP / IP protokoll visszajátszási algoritmust, sok esetben a megadott csövekhez való csatlakozási kísérlet időtartama lejár, mielőtt a megjelenített adatbázishoz csatlakozna.

Attribútum szerver

A kapcsolódási sornak tartalmaznia kell egy kiszolgáló attribútumot, amely megadja az eredeti tag nevét, amelyiknek meg kell határoznia az elsődleges kiszolgáló aktuális példányát.

A kiszolgáló példányának legegyszerűbb módja a név megadására, <имя_сервера> [\<имя_экземпляра_SQL_Server> ]. Például:


Az SQL Server böngészőre vonatkozó kérelemre van szükség, ha a nevezett példány neve meg van adva a kapcsolódási sorban, és nem a porton.

TCP / IP-kapcsolat esetén, ha mindkét résztvevő neve a gyorsítótárban van, az adatátvitel-szolgáltató az újrakapcsolódási algoritmus segítségével létrehoz egy kapcsolatot. Ez igaz mind a kezdeti kapcsolat a munkamenet és a újrakapcsolódás után elvesztése kommunikáció. A kapcsolat létrejötte után az előzetes és az alapvető kapcsolódási lépések végrehajtása további időt igényel.


Tekintettel az idő, hogy hozzon létre egy kapcsolatot meghaladhatja az ismétlő időt, mert a külső tényezők, mint a lassú DNS-keresés, lassú tartományvezérlő vagy a KDC az időt, hogy kommunikáljon a böngésző SQL Server, hálózati túlterheltség, és így tovább. Ilyen külső tényezők megakadályozhatják az ügyfelet a tükrözött adatbázisba való csatlakozáshoz. Emellett a külső tényezők miatt a kapcsolat létrehozásának ideje nagyobb, mint a beállított újrapróbálkozási idő. További információt a DNS és az SQL Server böngésző feltérképezéséről a forrás taghoz való kapcsolódásról a következő témakörben talál: Első hivatkozás létrehozása az adatbázis tükrözésével a fenti témakörben.

Ha a csatlakozási kísérlet meghiúsul vagy az újrapróbálkozási idő lejár, mielőtt a kapcsolat létrejött volna, az adatszolgáltató megpróbál csatlakozni egy másik taghoz. Ha a kapcsolat sikertelen, a szolgáltató megpróbálja megváltoztatni a forrás tag és a failover partner nevét, amíg a kapcsolat létre nem jön, vagy a bejelentkezési idő lejár. Az alapértelmezett időtúllépés időtartama 15 másodperc. Javasoljuk, hogy az időtúllépés időtartama legalább 5 másodperc legyen. A kisebb időtúllépés beállítása megakadályozhatja a sikeres kapcsolódási kísérleteket.

Az újrapróbálkozási idő a belépési idő százalékos aránya. A kapcsolódási kísérlet újrapróbálkozási ideje minden egyes sikeres ciklusnál növekszik. Az első ciklusban a két kísérlet mindegyikének újrapróbálkozási ideje a teljes belépési idő 8% -a. Minden egyes sikeres ciklusnál az ismétlődő algoritmus növeli a maximális ismétlési időt az azonos számmal. Ezért az első nyolc csatlakozási kísérlet újraindítási ideje a következő:

8%, 8%, 16%, 16%, 24%, 24%, 32%, 32%

Az ismétlési időt az alábbi képlet segítségével számítjuk ki:

ahol a PreviousRetryTime kezdetben 0.

Például, ha a bejelentkezési időtúllépés 15 másodpercig a LoginTimeout = 15 értéket használja. Ebben az esetben az első három körhöz rendelt újrapróbálkozási idő a következő lesz:

Az alábbi ábra mutatja a sikeres kapcsolódási kísérletek újrapróbálkozási periódusait, amelyek várakozási ideje minden egyes lejáratra.

Az ügyfelek összekapcsolása egy adatbázis-tükrözési munkamenethez (sql-kiszolgáló)

Az alapértelmezett bejelentkezés alapértelmezett időtúllépési ideje esetén az első három csatlakozási kísérlethez rendelt maximális idő 14,4 másodperc. Ha minden próbálkozás az összes hozzárendelt időpontot használta, akkor csak 0,6 másodperccel lett volna a belépési idő lejárta előtt. Ebben az esetben a negyedik ciklus lerövidül, és csak az utolsó gyors kapcsolat kísérletet tesz lehetővé a forrás résztvevő nevével. Azonban a csatlakozási kísérlet sikertelen lehet az újrapróbálkozási idő alatt, kevesebb, mint az ütemezett, különösen a következő ciklusokban. Például egy hálózati hiba megpróbálhatja leállítani az újrapróbálkozási idő letelte előtt. Ha az előző kísérletek sikertelenek a hálózati hiba miatt, a negyedik és esetleg további ciklusokra további idő áll rendelkezésre.

A sikertelen kísérletek másik oka egy inaktív kiszolgálópéldány, amely akkor következik be, ha egy kiszolgálópéldány erőforrást küld az adatbázisába. Ebben az esetben egy újrapróbálkozási késleltetést hajtanak végre, hogy megakadályozzák a résztvevők túlterhelését gyors kapcsolat kísérletek végrehajtásával.


Ha mindkét résztvevő neve elérhető, és a bejelentkezési időtartam végtelen, az ügyfél megpróbál folyamatosan csatlakozni a szerverekhez, átváltva az eredeti résztvevő nevéről és a failover partner nevéről.
)

Próbálja újra késlekedni az átfutás során

Ha az ügyfél egy másik forrásba költöző résztvevőhöz próbál csatlakozni, a résztvevő azonnal válaszol arra, hogy nem érhető el. Ebben az esetben a csatlakozási kísérletek minden ciklusa jelentősen rövidebb lesz, mint az ütemezett újrapróbálkozási idő. Ez azt jelenti, hogy a belépési idő lejárta előtt sok kapcsolódási kísérlet fordulhat elő. Annak elkerülése érdekében, hogy a résztvevők túl gyorsan töltsék be a kapcsolódási kísérleteket egy átfutási idő alatt, az adatátvitel-szolgáltató egy rövid újrapróbálkozási késleltetést ad minden egyes visszajátszási ciklus után. A megismételt késleltetés időtartamát az újrapróbálási késleltetési algoritmus határozza meg. Az első ciklus után a késleltetés 100 milliszekundum. A következő három forduló mindegyike után az ismétlődő késleltetés megduplázódik - 200, 400 és 800-ra. Az összes következő körben az újrapróbálási késleltetés 1 másodpercig tart, amíg a csatlakozási kísérlet vagy az idő lejárt.


Ha a kiszolgáló példánya leáll, a kapcsolatkérelem azonnal leáll.

Az alábbi ábra bemutatja, hogy a késleltetés késleltetése hogyan befolyásolja a kapcsolódási kísérleteket a kézi áttelepítés során, amikor a partnerek váltják a szerepüket. A várakozási idő 15 másodperc.

Az ügyfelek összekapcsolása egy adatbázis-tükrözési munkamenethez (sql-kiszolgáló)




Kapcsolódó cikkek