Pikk SQL-töö: hoia see käimas, kui VPN katkeb
Katkenud VPN jätab ühe küsimuse, millele kliendi viga vastata ei suuda: kas töö kinnitati? Anna pikad tööd püsivale omanikule ja võrdle enne uuesti proovimist.
VPN katkeb kakskümmend minutit pärast indeksi ümberehituse algust, sinu SQL-klient näitab katkenud ühendust ja ilmne küsimus ei leia selles veas vastust. Kas lause lõpetas, rullus tagasi või jätkas sinuta töötamist? Uuesti ühendamine ja uuesti saatmine on kolmest valikust halvim, sest see muudab ühe ebakindla tulemuse kaheks võimalikuks. Enne järgmist akent vii töö millegi juurde, millel on püsiv omanik.
Mida ühenduse viga sulle ei ütle
Kliendipoolne viga kirjeldab klienti. See teatab, et pesa suleti, mitte mida server tehinguga tegi. Lause võib veel käia, võib olla kinnitatud vahetult enne lingi surma või tagasi pööratud, kui selle sessioon puhastati. Kõik kolm annavad sinu sülearvutis sama teate.
Ainult serveri olek saab selle selgeks teha. Vaata sinna, enne kui midagi otsustad.
Anna töö serveripoolsele omanikule
Töö puhul, mis ei vaja inimest jälgima, lase andmebaasi hostil täitmist omada. SQL Server Agent käivitab töid nõudmisel või ajakava järgi ja salvestab iga käivituse, nii et töö elutsükkel on sinu VPN-sessioonist sõltumatu. Töö identiteedil peavad olema täpselt need õigused, mida ülesanne nõuab, mitte administraatori täielik interaktiivne kontekst. Seejärel sülearvuti käivitab töö ja loeb tulemusi, selle asemel et olla protsess, mis hoiab seda elus.
EXEC msdb.dbo.sp_start_job @job_name = N'nightly-customer-reindex';Agendi kättesaadavus sõltub sellest, millise väljaande ja teenuse sa juurutasid. Kasuta mehhanismi, mille sinu platvorm tegelikult pakub, selle asemel et eeldada, et see on kõikjal olemas.
Andmebaasi lähedal asuv hüppehost lühendab teed ja tasub omada, kuid ei muuda omandiküsimust. Sessioon lõpeb ikkagi siis, kui võrk lõpeb. Kasuta seda vaatlemiseks, mitte asjana, mis hoiab tööd elus.
Jäta kirje, mida järgmine sessioon saab lugeda
Kirjuta üles töö nimi või identifikaator, sihtandmebaas ja tulemus, mida ootad. Just see kirje võimaldab teisel sessioonil või teisel inimesel vastata küsimusele, millele viga ei suutnud. Ilma selleta jääb sulle ähmane mälestus uuendusest ja mitte mingit viisi seda kontrollida.
EXEC msdb.dbo.sp_help_jobhistory @job_name = N'nightly-customer-reindex';Ajalugu näitab tulemust ja aega iga sammu kohta, mis on kasulikum kui üks edu lipp. Andmeid muutvate ülesannete puhul lisa ka rakenduse enda kontroll: ridade arv, kontrollsumma või töö kirjutatud olekurida. Kaks sõltumatut kirjet teevad kordamise turvaliseks ja salvestatud tööajalugu on neist esimene.
Sovita enne uuesti saatmist
Kui vaatlev ühendus kaob, leia olemasolev käivitus, enne kui alustad uut. Loe selle sammude tulemused ja otsusta, kas töö kinnitati, osaliselt lõpetati või ei alanud kunagi. Alles siis rakenda töövoo määratud kordamise reeglit, sest pime uuesti saatmine võib laadimise dubleerida või teist korda poolel teel ebaõnnestuda.
Hoia püsiv omanik ja kontrollitav tulemus alles, ja lühike juurdepääsutõrge muutub ebamugavuseks, mitte oletuseks. See on kogu disaini eesmärk: töö peaks elama kauem kui ühendus, mis seda palus.