Divdesmit piecas minūtes lietderīga datu bāzes darba gandrīz neko neizvada, un no katras ceļa ierīces šī plūsma izskatās neaktīva. Tieši neaktīvais stāvoklis tiek savākts. Pēc tam ziņojumam vienmēr ir tāda pati forma: vaicājums darbojās, tad sesija pazuda, un rezultāts nekad netika saņemts.

Četras pārbaudes izlemj, vai klusa sesija izdzīvos, un tās virzās no ligzdas uz āru. Veiciet tās pēc kārtas, jo katra pieņem, ka iepriekšējais slānis dara savu darbu.

Kura plūsma apklust

Svarīgais savienojums ir tas, kas pārvada datu bāzes trafiku, atpazīstams pēc savām adresēm un portiem. Nekas cits to neatjauno. Ping uz vārteju, otrs SQL savienojums no tā paša resursdatora un paša tuneļa pulss ir atsevišķas plūsmas ar atsevišķu stāvokli katrā ierīcē, kas tās izseko.

ss -tio dst 10.60.4.20
sysctl net.ipv4.tcp_keepalive_time net.ipv4.tcp_keepalive_intvl net.ipv4.tcp_keepalive_probes

Ligzdu saraksts rāda dzīvā savienojuma taimerus un rindas stāvokli, kas ir informatīvāk par sasniedzamības testu. sysctl vērtības ir kodola noklusējumi keepalive uzvedībai, un nākamā sadaļa skaidro, kāpēc tās var nekad neattiekties uz jūsu sesiju. Noklusējums, kas nekad neiedarbojas, nav atšķirams no tā, ka noklusējuma vispār nav.

Pierakstiet adreses, portus un interfeisu, ko izmanto savienojums. Kad sesija mirst, tieši šīs detaļas ļauj pajautāt īstajai ierīcei, ko tā darīja, nevis jautāt, vai tīkls darbojās.

Vai dīkstāves politika beidzas, vai ierobežo

Divas politikas rada vienu un to pašu simptomu un prasa pretējas atbildes. Dīkstāves taimauts noņem stāvokli, ko kvalificējošs trafiks būtu varējis atjaunot, un keepalive to var novērst. Absolūtais sesijas limits noņem plūsmu pēc fiksēta ilguma neatkarīgi no aktivitātes, un neviens keepalive to nemaina.

Pajautājiet katra starpnieka īpašniekam, kuru no abām tas īsteno. Ugunsmūris, NAT ierīce, slodzes balansētājs un mākoņa vārteja visas var glabāt stāvokli, un tām nav jāsaskan. Šaurākais nosaka termiņu, kas jums jāpārspēj.

Šī atšķirība arī pasaka, kad pārtraukt regulēšanu. Ja politika ir absolūts limits, pareizais risinājums ir īsāka darba vienība, atsākams darbs vai apstiprināts izņēmums, un zemāk esošā pārbaude tikai apstiprinās, ka keepalive neko nemainīja.

Ligzdas slēdzis aiz Linux noklusējumiem

Keepalive ir izvēles iespēja katrai ligzdai. Kodola noklusējumi apraksta, kā zondes uzvedas pēc tam, kad ligzda ir ieslēgusi mehānismu, un tie neieslēdz to esošajiem savienojumiem. Programma, kas nekad to neprasa, nesaņem zondes, lai ko teiktu sysctl vērtības.

Tāpēc tikai skaitļu palielināšana neko nemaina datu bāzes klientam. Mehānisms ir jāieslēdz klienta bibliotēkai vai programmai, un tur, kur steks piedāvā vadību katrai saistībai, ierobežots iestatījums ir labāks par izmaiņu visam resursdatoram, kas skar nesaistītus pakalpojumus.

Intervāls līdz pirmajai zondei arī nav vaicājuma taimauts. Veselīgs savienojums paliek kluss starp zondēm, un miris partneris tiek atpazīts pēc zondes intervāla un skaita. Šo trīs vērtību lasīšana kā viena taimauta noved pie iestatījumiem, kas kļūmi atklāj vai nu daudz par vēlu, vai daudz par agru. Tās vada atklāšanu, nevis programmas pacietību.

EXPIRE_TIME ir datu bāzes iestatījums, nevis tīkla labojums

Oracle Net piedāvā savu dzīvotspējas mehānismu, kas konfigurēts procesa efektīvajā profilā, nevis patvaļīgā failā, kuram nejauši ir līdzīgs nosaukums. Vērtību izsaka minūtēs.

SQLNET.EXPIRE_TIME = 5

Tā galvenais mērķis ir mirušu savienojumu atklāšana servera pusē, un platformās, kas atbalsta uzlaboto modeli, tas arī regulē šo savienojumu TCP keepalive uzvedību. Tā ir noderīga īpašība: datu bāzes slānis var sarīkot zondes, neprasot klienta programmai mainīties.

Iepriekš minētā ilustratīvā vērtība ir saskaņota izvēle pret pieņemtu termiņu, nevis ieteikums. Dokumentētā vispārējā vadlīnija ir garāks intervāls, un pareizais skaitlis ir atkarīgs no instalētās realizācijas, pieņemtajām zondes izmaksām un faktiskajiem atjaunošanas noteikumiem ceļā. Ievietojiet iestatījumu profilā, ko nolasa attiecīgais process, un apstipriniet, ka process to ir pārņēmis. Oracle dokumentē profilu atrašanās vietas un atklāšanas uzvedību savā parametru uzziņā.

Pārbaudiet kluso intervālu, tad plānojiet atjaunošanu

Laidiet jaunu atļautu savienojumu caur klusu periodu, kas ir garāks par termiņu, kuru mēģināt pārspēt, un vērojiet dzīvotspējas trafiku un programmas rezultātu. Neierakstiet lietderīgās kravas saturu, kas jums nav vajadzīgs; taimeri un savienojuma stāvoklis atbild uz jautājumu.

ss -tio dst 10.60.4.20
# after the quiet interval, same command
ls -l "$ORACLE_HOME/network/admin/sqlnet.ora"

Ja sesija tomēr pazūd, termiņš pieder ierīcei, kuru vēl neesat pajautājis, vai arī politika ir absolūts limits. Ja tā izdzīvo, atzīmējiet, kurš slānis mainījās, lai nākamā klusā operācija neatkārtotu izmeklēšanu.

Visbeidzot izlemiet, kas notiek, kad savienojums tiešām pārtrūkst, jo dzīvotspējas pārbaudes samazina biežumu un nekad neizslēdz iespēju. Nosakiet ierakstīto datu bāzes operācijas iznākumu pirms tās atkārtotas nosūtīšanas: atbildes zaudēšana neko nepierāda par to, vai darbs tika apstiprināts. Visam, kam jāpārdzīvo klēpjdatora aizvēršana vai tuneļa restartēšana, serverim piederošs darbs ar ilgstošu rezultātu ir stiprāks dizains, un keepalive nav plānotājs.

Saistītie raksti