Għaliex il-commit SQL sinkroniku tiegħek jistenna l-vjaġġ lura u 'l quddiem tal-VPN
Commit sinkroniku fi grupp ta' disponibilità jinkludi l-imwebbes tal-log remot. Kejjel dak il-passaġġ qabel ma tagħti l-ħtija lill-bandwidth jew tbiddel il-mod.
Il-latenza tal-kitba qabżet wara li replika tmexxiet għat-tieni sit, u l-mina hija l-aktar komponent ġdid, għalhekk tieħu l-ħtija. Il-mina tista' tkun innoċenti: fi grupp ta' disponibilità b'commit sinkroniku l-primarja ma tistax tikkonferma commit sakemm titlesta kitba remota tal-log, għalhekk kull tranżazzjoni tħallas vjaġġ lura u 'l quddiem kemm-il megabit li l-konnessjoni tista' ġġorr. It-throughput ikejjel bytes kull sekonda, il-latenza tkejjel kemm iddum skambju wieħed, u commit jeħtieġ biss skambju żgħir wieħed biex jispiċċa. Numru wieħed jaqta' d-diskussjoni: it-tul tal-commit ta' tranżazzjoni żgħira, imkejjel fil-bażi tad-data tad-disponibilità u mbagħad mill-ġdid kontra tabella lokali fl-istess istanza.
Għal xiex tistenna verament il-primarja
Taħt commit sinkroniku l-primarja żżomm l-acknowledgement tal-commit sakemm is-sieħeb jikkonferma li r-rekords tal-log tiegħu huma mwebbsin. Imwebbes ifisser miktub b'mod dejjiemi fil-log tat-tranżazzjonijiet tas-sekondarja, mhux imreġa' eżegwit fil-paġni tad-data tagħha. Redo jista' jibqa' lura bil-minuti mingħajr ma jżid millisekonda waħda mal-commit tal-primarja.
Id-dokumentazzjoni ta' Microsoft dwar il-modi tad-disponibilità tispjega dak il-handshake u tiddeskrivi x'jagħmel il-pjattaforma meta sieħeb jaqa' barra. Replika mmarkata bħala sinkronika hija regola dwar l-istennija, mhux wegħda permanenti li teżisti kopja remota sana għal kull commit. Il-passaġġ skonnettjat huwa definit separatament, u mhuwiex sempliċement li l-commit ifalli.
Allura l-istennija li taraw hija somma: trasport tal-log, skedar fuq iż-żewġ hosts u kitba fil-ħażna remota. Sekondarja b'volum tal-log saturat iżżid ħin li ebda test tal-veloċità mhu se juri. Dak id-diska rari titkejjel meta l-ilment isemmi l-VPN.
Il-bandwidth mhuwiex dewmien tal-vjaġġ lura u 'l quddiem
Test tal-veloċità jgħarraq il-passaġġ għal żmien qasir u jirrapporta rata. Commit jitlob xi ħaġa idjaq: kemm iddum messaġġ żgħir biex jasal in-naħa l-oħra, jiġi ppersistit u jerġa' lura. It-tul tal-passaġġ, il-kjuwijiet u t-telf tal-pakketti jiddeterminaw dak in-numru, u ebda wieħed minnhom ma jitjieb meta l-fornitur jerfa' s-saqaf.
Għalhekk mina «mgħaġġla» tista' żżid penalità viżibbli ma' xogħol tqil fil-kitba mibni minn ħafna tranżazzjonijiet żgħar sekwenzjali. L-istess total ta' bytes maqsum fuq elf commit iħallas il-vjaġġ lura u 'l quddiem elf darba; trasferiment bulk wieħed iħallsu darba.
Itlob lis-sid tan-netwerk dewmien u telf imkejla fuq ir-rotta tar-replika stess taħt tagħbija rappreżentattiva. Ping minn laptop tal-uffiċċju għall-gateway tal-VPN, jew test tal-veloċità lejn nod qrib, kważi ma jattribwixxi xejn lir-rotta li l-log fil-fatt jivvjaġġa fiha. Kun żgur li t-tieqa tal-kejl tikkoinċidi mas-sigħat meta l-kitba hija bil-mod.
Aqra l-istat tar-replika qabel ma tbiddel xi ħaġa
Ibda minn dak li l-istanzi jirrapportaw dwarhom infushom, għax iż-żewġ naħat jistgħu ma jaqblux dwar kemm is-sħubija hija sana u medja tad-dashboard taħbi liema kju qed jiċċaqlaq. Il-mistoqsijiet hawn taħt iwieġbu mistoqsijiet differenti: waħda taqra l-istat tar-replikazzjoni għal kull bażi tad-data, l-oħra taqra kif hija kkonfigurata kull replika. Mexxi t-tnejn qabel ma tmiss mod.
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;
L-ewwel riżultat jifred it-trasport tal-log mir-redo. log_send_queue_size jogħla waqt li redo_queue_size jibqa' ċatt ifisser li l-log ma wasalx; bil-kontra jfisser li wasal u li l-playback qed jibqa' lura. Huwa biss l-ewwel każ li joqgħod fuq il-passaġġ tal-commit.
It-tieni riżultat jikkonferma liema repliki huma verament ikkonfigurati kif tassumi, għax mod mibdul waqt inċident preċedenti għandu tendenza li jibqa' mibdul u mhux dokumentat. Aqra r-ringiela li tinteressak minflok id-default tal-grupp: availability_mode_desc u failover_mode_desc huma għal kull replika. secondary_lag_seconds jeżisti biss fuq SQL Server 2016 u aktar ġdid, għalhekk build anzjan iħallik biss il-kolonni tal-kju tal-bgħit u tar-redo.
Imbagħad kejjel kitba rappreżentattiva minflok ma tafda fil-medja tad-dashboard. Mexxi l-blokk hawn taħt fil-bażi tad-data tad-disponibilità, imbagħad erġa' mexxtu kontra l-istess forma ta' tabella f'bażi tad-data barra mill-grupp fl-istess istanza. Il-vojt bejn iż-żewġ tulijiet huwa prezz approssimattiv tal-log remot, u f'dibattitu mat-tim tan-netwerk iżomm ferm aħjar minn graff. Wara dan ibdel varjabbli wieħed kull darba, inkella l-vojt ma jfissirx aktar xejn.
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;
X'jixtri commit asinkroniku, u x'jiswa
B'commit asinkroniku l-primarja tieqaf tistenna l-konferma tal-imwebbes remot, għalhekk il-vjaġġ lura u 'l quddiem joħroġ mill-passaġġ tal-commit. Il-latenza tal-commit tinżel u s-sekondarja hija ħielsa li tibqa' lura b'ammont li ħadd ma jikkontrolla. Dan huwa tiswija reali għall-istennija u bidla reali fil-wegħda.
Il-prezz huwa deċiżjoni dwar il-punt ta' rkupru. Jekk il-primarja tmut qabel ma l-log tagħha jasal għal mira ta' failover li verament tista' tuża, iċ-ċaqliq tas-servizz għall-kopja asinkronika jarmi tranżazzjonijiet li l-applikazzjoni kienet diġà rrappurtat bħala commit. Ebda dialog ta' konfigurazzjoni ma jippreżentah hekk, għax hija kwistjoni tan-negozju dwar telf aċċettabbli, mhux setting tal-prestazzjoni. Ikteb it-tieqa tat-telf tollerata qabel l-inċident, mhux waqt.
Aqbel dwar il-mod ma' min jippossjedi d-data, bil-miktub, flimkien mal-proċedura ta' failover għall-każ li l-mira preferuta mhijiex disponibbli. Sinkroniku f'dokument tad-disinn mhuwiex manwal operattiv, u asinkroniku mhuwiex liċenzja biex tieqaf tosserva l-kjuwijiet.
Agħżel tiswija li tista' tiddefendi wara
Hemm erba' għażliet onesti. Aqta' vjaġġi tal-commit lura u 'l quddiem li jistgħu jiġu evitati fejn is-semantika tal-applikazzjoni tippermetti l-batching; sewwi konġestjoni tat-trasport jew tal-ħażna li kejjilt, li tista' tfisser volum tal-log aktar mgħaġġel fuq is-sekondarja minflok pajp akbar; qarreb ir-replika biex il-vjaġġ lura u 'l quddiem jonqos; jew illaxka l-politika tal-protezzjoni u aċċetta tieqa tat-telf aktar wiesgħa. Kull waħda tixtri latenza billi tonfoq xi ħaġa oħra, u r-raba' tonfoq id-durabbiltà. Semmi l-infiq qabel tagħżel.
Iddeċiedi bil-mira tal-latenza tax-xogħol u r-rekwiżit tad-durabbiltà tiegħu quddiemek fl-istess ħin, għax l-ottimizzazzjoni ta' waħda tonfoq lill-oħra bil-kwiet. Imbagħad erġa' mexxi l-istess tranżazzjoni li kejjilt qabel il-bidla. Tiswija li ma tistax iċċaqlaq dak in-numru hija raden li jilbes biljett tal-bidla.
Żomm il-qari ta' qabel u wara fir-rekord tal-bidla. Inkella l-persuna li jmiss li tara kitbiet bil-mod terġa' tagħmel l-investigazzjoni mill-bidu u tibda terġa' tagħti l-ħtija lill-mina.