Seja Oracle je padla prek VPN? Preverite plasti keepalive
Tiho delo z bazo lahko preživi nedejaven omrežni tok. Pojdite skozi stikalo vtičnice, privzete vrednosti jedra in nastavitev Oracle Net v pravem vrstnem redu.
Petindvajset minut koristnega dela z bazo skoraj nič ne izpiše, in z vidika vsake naprave na poti je ta tok videti nedejaven. Nedejavno stanje je natanko tisto, kar se pospravi. Poročilo pozneje ima vedno enako obliko: poizvedba je tekla, nato je seja izginila in rezultat ni nikoli prispel.
Štiri preverjanja odločijo, ali tiha seja preživi, in gredo od vtičnice navzven. Naredite jih po vrsti, ker vsako predpostavlja, da prejšnja plast opravlja svoje delo.
Kateri tok utihne
Pomembna je povezava, ki prenaša promet baze, prepoznana po svojih naslovih in vratih. Nič drugega je ne osveži. Ping na prehod, druga povezava SQL z istega gostitelja in lasten utrip tunela so ločeni tokovi z ločenim stanjem na vsaki napravi, ki jih spremlja.
ss -tio dst 10.60.4.20
sysctl net.ipv4.tcp_keepalive_time net.ipv4.tcp_keepalive_intvl net.ipv4.tcp_keepalive_probes
Seznam vtičnic prikazuje časovnike in stanje čakalne vrste za živo povezavo, kar pove več kot preizkus dosegljivosti. Vrednosti sysctl so privzete vrednosti jedra za vedenje keepalive, naslednji razdelek pa pojasni, zakaj se za vašo sejo morda nikoli ne bodo uporabile. Privzeta vrednost, ki se nikoli ne sproži, je nerazločljiva od nobene privzete vrednosti.
Zapišite naslove, vrata in vmesnik, ki jih povezava uporablja. Ko seja umre, so te podrobnosti tiste, ki vam omogočijo, da pravo napravo vprašate, kaj je naredila, namesto da bi spraševali, ali je bilo omrežje dostopno.
Ali politika mirovanja poteče ali omejuje
Dve politiki ustvarjata enak simptom in zahtevata nasprotna odziva. Časovna omejitev mirovanja odstrani stanje, ki bi ga kvalificiran promet lahko osvežil, in keepalive lahko to prepreči. Absolutna omejitev seje odstrani tok po fiksnem trajanju ne glede na dejavnost in noben keepalive tega ne spremeni.
Vprašajte lastnika vsakega posrednika, katero od dveh izvaja. Požarni zid, naprava NAT, porazdeljevalnik obremenitve in oblačni prehod lahko vsi hranijo stanje in se jim ni treba strinjati. Najožji določi rok, ki ga morate premostiti.
Ta razlika vam pove tudi, kdaj nehati prilagajati. Če je politika absolutna omejitev, je prava rešitev krajša delovna enota, opravilo, ki ga je mogoče nadaljevati, ali odobrena izjema, in spodnje preverjanje bo samo potrdilo, da keepalive ni ničesar spremenil.
Stikalo vtičnice za privzetimi vrednostmi Linuxa
Keepalive je neobvezen za vsako vtičnico. Privzete vrednosti jedra opisujejo, kako se sonde obnašajo, ko vtičnica mehanizem že omogoči, in ga ne omogočijo za obstoječe povezave. Aplikacija, ki zanj nikoli ne zaprosi, ne dobi nobenih sond, kar koli pravijo vrednosti sysctl.
Zato samo zvišanje števil za odjemalca baze ne spremeni ničesar. Mehanizem mora omogočiti odjemalska knjižnica ali aplikacija, in kjer sklad ponuja nadzor za posamezne povezave, je omejena nastavitev boljša od spremembe za celotnega gostitelja, ki prizadene nepovezane storitve.
Interval do prve sonde tudi ni časovna omejitev poizvedbe. Zdrava povezava ostane med sondami tiha in mrtev sopotnik se prepozna po intervalu in številu sond. Branje teh treh vrednosti kot ene časovne omejitve vodi do nastavitev, ki okvaro zaznajo bodisi veliko prepozno bodisi veliko prehitro. Nadzirajo zaznavanje, ne potrpežljivosti aplikacije.
EXPIRE_TIME je nastavitev baze, ne omrežni popravek
Oracle Net ponuja lasten mehanizem živosti, nastavljen v dejanskem profilu procesa in ne v poljubni datoteki, ki ima slučajno podobno ime. Vrednost je izražena v minutah.
SQLNET.EXPIRE_TIME = 5
Njegov glavni namen je zaznavanje mrtevih povezav na strežniku, na platformah, ki podpirajo izboljšani model, pa tudi prilagaja vedenje TCP keepalive za te povezave. To je koristna lastnost: plast baze lahko poskrbi za sonde, ne da bi morala odjemalska aplikacija kaj spremeniti.
Zgornja ponazoritvena vrednost je usklajena izbira glede na predpostavljeni rok, ne priporočilo. Dokumentirano splošno priporočilo je daljši interval in prava številka je odvisna od nameščene izvedbe, sprejemljivih stroškov sond in dejanskih pravil osvežitve na poti. Nastavitev vnesite v profil, ki ga bere zadevni proces, in potrdite, da jo je proces prevzel. Oracle dokumentira mesta profilov in vedenje zaznavanja v svojem referenčnem pregledu parametrov.
Preizkusite tihi interval in nato načrtujte obnovitev
Pustite nov dovoljen povezavi, da gre skozi tiho obdobje, daljše od roka, ki ga poskušate premostiti, in opazujte promet živosti ter rezultat aplikacije. Ne zajemajte vsebine tovora, ki je ne potrebujete; časovniki in stanje povezave odgovorijo na vprašanje.
ss -tio dst 10.60.4.20
# after the quiet interval, same command
ls -l "$ORACLE_HOME/network/admin/sqlnet.ora"
Če seja še vedno izgine, rok pripada napravi, ki je še niste vprašali, ali pa je politika absolutna omejitev. Če preživi, zabeležite, katera plast se je spremenila, da naslednja tiha operacija preiskave ne bo ponovila.
Nazadnje odločite, kaj se zgodi, ko povezava res pade, ker preverjanja živosti zmanjšajo pogostnost in nikoli ne odstranijo možnosti. Ugotovite zabeleženi izid operacije baze, preden jo znova pošljete: izguba odgovora ne dokazuje ničesar o tem, ali je bilo delo potrjeno. Za vse, kar mora preživeti zaprtje prenosnika ali ponovni zagon tunela, je opravilo v lasti strežnika s trajnim rezultatom močnejša zasnova in keepalive ni razporejevalnik.