Skrifbiðtíminn stökk eftir að afrit var flutt á hinn staðinn, og göngin eru nýjasta íhluturinn, svo þau fá sökina. Göngin geta verið saklaus: innan framboðshóps með samstilltri festingu getur aðalafritið ekki staðfest festingu fyrr en fjarlægri logskrifu er lokið, svo hver færsla borgar fram og til baka sama hve margir megabitar tengingin getur borið. Afköst mæla bæti á sekúndu, biðtími mælir hversu lengi ein skipti taka, og festing þarf aðeins eitt lítið skipti til að klárast. Ein tala ræður úr deilunni: tímalengd festingar lítillar færslu, mæld inni í framboðsgagnagrunninum og svo aftur á móti staðbundinni töflu á sama tilviki.

Hvað aðalafritið bíður í raun eftir

Við samstillta festingu heldur aðalafritið staðfestingu festingarinnar þar til félaginn staðfestir að logfærslur hans séu hertar. Hert þýðir varanlega skrifað í færslulog aukaafritsins, ekki endurtekið í gagnasíður þess. Redo getur dregist minútum á eftir án þess að bæta einni millisekúndu við festingu aðalafritsins.

Skjöl Microsoft um framboðsstillingar fara í gegnum það handaband og lýsa því hvað kerfið gerir þegar félagi dettur út. Afrit merkt sem samstillt er regla um að bíða, ekki varanlegt loforð um að heil fjarlæg eftirmynd sé til fyrir hverja festingu. Aftengda leiðin er skilgreind sér, og það er ekki einfaldlega að festingin mistakist.

Svo biðin sem þú sérð er summa: logflutningur, röðun á báðum hýslum og skrif í fjarlæga geymslu. Aukaafrit með mettað logmagn bætir við tíma sem engin hraðaprófun sýnir. Þessi diskur er sjaldan mældur þegar kvörtunin nefnir VPN.

Bandbreidd er ekki biðtími fram og til baka

Hraðaprófun flæðir yfir leiðina stutta stund og tilkynnir hraða. Festing biður um eitthvað þrengra: hversu lengi lítil skilaboð taka að ná hinum endanum, vera varðveitt og koma aftur. Lengd leiðarinnar, biðraðir og pakkatap ákvarða þá tölu, og ekkert þeirra batnar þegar þjónustuveitandinn hækkar þakið.

Þess vegna geta «hröð» göng bætt sýnilegri refsingu við skrifþunga vinnslu sem byggð er á mörgum litlum samhliða færslum. Sama heildarbætatala deilt á þúsund festingar borgar ferðina fram og til baka þúsund sinnum; ein fjöldflutningur borgar hana einu sinni.

Biddu eiganda netsins um bið og tap mæld á leið afritsins sjálfrar undir dæmigerðu álagi. Ping frá skrifstofutölvu að VPN-hliðinu, eða hraðaprófun að nálægum hnút, eignar næstum engu leiðinni sem logið fer í raun. Láttu mælingargluggann skarast við klukkustundirnar þegar skrif er hægt.

Lestu ástand afritsins áður en þú breytir nokkru

Byrjaðu á því sem tilvikin segja um sjálf sig, því hliðarnar geta verið ósammála um hversu heilbrigt samstarfið er og meðaltal mælaborðsins felur hvaða biðröð hreyfist. Fyrirspurnirnar hér að neðan svara mismunandi spurningum: ein les endurgerðarstöðu fyrir hvern gagnagrunn, hin les hvernig hvert afrit er stillt. Keyrðu báðar áður en þú snertir stillingu.

SELECT ag.name AS ag_name, drs.database_id, drs.synchronization_state_desc,
       drs.log_send_queue_size, drs.redo_queue_size, drs.secondary_lag_seconds
FROM sys.dm_hadr_database_replica_states AS drs
JOIN sys.availability_groups AS ag ON ag.group_id = drs.group_id;

SELECT ar.replica_server_name, ar.availability_mode_desc, ar.failover_mode_desc
FROM sys.availability_replicas AS ar;

Fyrsta niðurstaðan aðskilur logflutning frá redo. log_send_queue_size að hækka á meðan redo_queue_size stendur flatt þýðir að logið er ekki komið; hið gagnstæða þýðir að það kom og að endurspilun er á eftir. Aðeins fyrra tilfellið situr á festingarleiðinni.

Önnur niðurstaðan staðfestir hvaða afrit eru í raun stillt eins og þú gerir ráð fyrir, því stilling sem breytt var í fyrri atviki hefur tilhneigingu til að vera áfram breytt og óskjalfest. Lestu röðina sem þig varðar í stað sjálfgefins gildis hópsins: availability_mode_desc og failover_mode_desc eru fyrir hvert afrit. secondary_lag_seconds er aðeins til á SQL Server 2016 og nýrri, svo eldri útgáfa skilur þig eftir með aðeins dálkana fyrir sendingarbiðröð og redo.

Mældu þá dæmigert skrif í stað þess að treysta meðaltali mælaborðsins. Keyrðu blokkina hér að neðan í framboðsgagnagrunninum og keyrðu hana svo aftur á móti sömu töflumynd í gagnagrunni utan hópsins á sama tilviki. Bilið milli tveggja tímalengda er gróft verð fyrir fjarlæga logið, og í rökræðum við netteymið stendur það sig mun betur en línurit. Breyttu síðan einni breytu í einu, annars hættir bilið að þýða eitthvað.

IF OBJECT_ID('dbo.CommitProbe') IS NULL
    CREATE TABLE dbo.CommitProbe (probe_id int PRIMARY KEY, touched_at datetime2(3));
IF NOT EXISTS (SELECT 1 FROM dbo.CommitProbe WHERE probe_id = 1)
    INSERT INTO dbo.CommitProbe (probe_id) VALUES (1);
SET STATISTICS TIME ON;
BEGIN TRANSACTION;
UPDATE dbo.CommitProbe SET touched_at = SYSUTCDATETIME() WHERE probe_id = 1;
COMMIT TRANSACTION;
SET STATISTICS TIME OFF;

Hvað asynchron festing kaupir og hvað hún kostar

Með asynchron festingu hættir aðalafritið að bíða eftir staðfestingu fjarlægrar hertar, svo ferðin fram og til baka fer af festingarleiðinni. Festingarbiðtíminn lækkar og aukaafritið er frjálst að dragast á eftir um magn sem enginn stjórnar. Það er raunveruleg lagfæring á biðinni og raunveruleg breyting á loforðinu.

Verðið er ákvörðun um endurheimtupunkt. Ef aðalafritið deyr áður en logið nær failover-marki sem þú getur raunverulega notað, hendir flutningur þjónustunnar á asynchron eftirmynd færslum sem forritið hafði þegar tilkynnt sem festar. Enginn stillingargluggi setur það þannig fram, því það er viðskiptaspurning um ásættanlegt tap, ekki afkastastilling. Skrifaðu ásættanlega tapgluggann niður fyrir atvikið, ekki meðan á því stendur.

Semdu um stillinguna við þann sem á gögnin, skriflega, ásamt failover-aðferðinni fyrir tilfellið þegar æskilega markið er ekki tiltækt. Samstillt í hönnunarskjali er ekki rekstrarhandbók, og asynchron er ekki leyfi til að hætta að fylgjast með biðröðunum.

Veldu lagfæringu sem þú getur varið síðar

Það eru fjórir heiðarlegir valkostir. Klipptu af óþarfa festingarferðum fram og til baka þar sem merking forritsins leyfir hópvinnslu; lagaðu mælda flutnings- eða geymsluflöskuháls, sem gæti þýtt hraðara logmagn á aukaafritinu í stað stærri pípu; færðu afritið nær svo ferðin fram og til baka minnki; eða slakaðu á verndarstefnunni og samþykktu breiðari tapglugga. Hver kaupir biðtíma með því að eyða einhverju öðru, og sá fjórði eyðir varanleika. Nefndu eyðsluna áður en þú velur.

Ákveddu með biðtímamark vinnslunnar og varanleikakröfu hennar fyrir þér á sama tíma, því að hagræða öðru eyðir hinu hljóðlega. Keyrðu síðan sömu færsluna aftur sem þú mældir fyrir breytinguna. Lagfæring sem getur ekki hreyft þá tölu er giska með breytingamiða.

Geymdu lestrana fyrir og eftir í breytingaskránni. Annars endurtekur næsta manneskja sem sér hæg skrif rannsóknina frá byrjun og byrjar aftur að kenna göngunum um.

Tengdir greinar