Oracle sessiyası VPN üzərindən düşdü? Keepalive qatlarını yoxlayın
Sakit verilənlər bazası işi qeyri-aktiv şəbəkə axınından uzun yaşaya bilər. Soket açarını, nüvənin standart dəyərlərini və Oracle Net parametrini düzgün ardıcıllıqla nəzərdən keçirin.
İyirmi beş dəqiqəlik faydalı verilənlər bazası işi demək olar ki, heç bir çıxış vermir və yoldakı hər cihazdan bu axın qeyri-aktiv görünür. Məhz qeyri-aktiv vəziyyət yığılır. Sonrakı hesabat həmişə eyni formada olur: sorğu işləyirdi, sonra sessiya yox oldu və nəticə heç vaxt gəlmədi.
Dörd yoxlama sakit sessiyanın yaşayıb-yaşamadığını həll edir və onlar soketdən bayıra doğru gedir. Onları sıra ilə edin, çünki hər biri əvvəlki qatın öz işini gördüyünü fərz edir.
Hansı axın səssizləşir
Vacib olan verilənlər bazası trafikini daşıyan bağlantıdır, öz ünvanları və portları ilə tanınır. Onu başqa heç nə yeniləmir. Şlüzə ping, eyni hostdan ikinci SQL bağlantısı və tunelin öz döyüntüsü ayrı-ayrı axınlardır və onları izləyən hər cihazda ayrı vəziyyəti var.
ss -tio dst 10.60.4.20
sysctl net.ipv4.tcp_keepalive_time net.ipv4.tcp_keepalive_intvl net.ipv4.tcp_keepalive_probes
Soket siyahısı canlı bağlantının taymerlərini və növbə vəziyyətini göstərir, bu isə əlçatanlıq testindən daha məlumatlıdır. sysctl dəyərləri keepalive davranışı üçün nüvənin standart dəyərləridir və növbəti bölmə onların sessiyanıza heç vaxt tətbiq olunmamasının səbəbini izah edir. Heç vaxt işə düşməyən standart dəyəri heç bir standart dəyərin olmamasından ayırmaq mümkün deyil.
Bağlantının istifadə etdiyi ünvanları, portları və interfeysi yazın. Sessiya öləndə məhz bu detallar düzgün cihazdan nə etdiyini soruşmağa imkan verir, şəbəkənin işlək olub-olmadığını soruşmaq əvəzinə.
Boşdurma siyasəti bitir, yoxsa məhdudlaşdırır
İki siyasət eyni simptom yaradır və əks reaksiya tələb edir. Boşdurma taym-autu keyfiyyətli trafikin yeniləyə biləcəyi vəziyyəti silir və keepalive bunun qarşısını ala bilər. Mütləq sessiya limiti axını aktivlikdən asılı olmayaraq sabit müddətdən sonra silir və heç bir keepalive bunu dəyişmir.
Hər vasitəçinin sahibindən ikisindən hansını tətbiq etdiyini soruşun. Firewall, NAT cihazı, yük balanslaşdırıcısı və bulud şlüzü hamısı vəziyyət saxlaya bilər və onların razılaşması vacib deyil. Ən dar olanı aşmalı olduğunuz müddəti müəyyən edir.
Bu fərq həm də nə vaxt tənzimləməni dayandırmağı deyir. Əgər siyasət mütləq limitdirsə, düzgün həll daha qısa iş vahidi, davam etdirilə bilən tapşırıq və ya təsdiqlənmiş istisnadır və aşağıdakı yoxlama yalnız keepalive-lərin heç nəyi dəyişmədiyini təsdiqləyəcək.
Linux standart dəyərlərinin arxasındakı soket açarı
Keepalive hər soket üçün seçimlidir. Nüvənin standart dəyərləri soket mexanizmi aktivləşdirdikdən sonra zondların necə davrandığını təsvir edir və mövcud bağlantılar üçün onu aktivləşdirmir. Heç vaxt istəməyən tətbiq heç bir zond almır, sysctl dəyərləri nə deyirsə desin.
Buna görə yalnız rəqəmləri artırmaq verilənlər bazası klienti üçün heç nəyi dəyişmir. Mexanizmi klient kitabxanası və ya tətbiq aktivləşdirməlidir və stack bağlantı üzrə idarəetmə təklif etdiyi yerdə məhdud parametr əlaqəsiz xidmətlərə təsir edən bütün host üçün dəyişiklikdən üstündür.
İlk zonda qədər interval da sorğu taym-autu deyil. Sağlam bağlantı zondlar arasında səssiz qalır və ölü tərəf zond intervalı və sayı ilə tanınır. Bu üç dəyəri bir taym-aut kimi oxumaq nasazlığı ya çox gec, ya çox tələsik aşkar edən parametrlərə gətirir. Onlar aşkarlamaya nəzarət edir, tətbiqin səbrinə deyil.
EXPIRE_TIME verilənlər bazası parametridir, şəbəkə düzəlişi deyil
Oracle Net öz canlılıq mexanizmini təklif edir, o, proses üçün effektiv profildə konfiqurasiya olunur, təsadüfən oxşar adı olan ixtiyari faylda deyil. Dəyər dəqiqələrlə ifadə olunur.
SQLNET.EXPIRE_TIME = 5
Onun əsas məqsədi server tərəfində ölü bağlantıların aşkarlanmasıdır və təkmilləşdirilmiş modeli dəstəkləyən platformalarda bu bağlantılar üçün TCP keepalive davranışını da tənzimləyir. Bu faydalı xüsusiyyətdir: verilənlər bazası qatı klient tətbiqindən dəyişiklik istəmədən zondları təşkil edə bilər.
Yuxarıdakı nümunə dəyər ehtimal edilən müddətə qarşı əlaqələndirilmiş seçimdir, tövsiyə deyil. Sənədləşdirilmiş ümumi tövsiyə daha uzun intervaldır və düzgün rəqəm quraşdırılmış tətbiqdən, qəbul etdiyiniz zond xərcindən və yoldakı faktiki yeniləmə qaydalarından asılıdır. Parametri müvafiq prosesin oxuduğu profilə qoyun və prosesin onu götürdüyünü təsdiqləyin. Oracle profil yerlərini və aşkarlama davranışını öz parametr arayışında sənədləşdirir.
Səssiz intervalı sınaqdan keçirin, sonra bərpanı planlaşdırın
Yeni icazəli bağlantını aşmağa çalışdığınız müddətdən daha uzun səssiz dövrdən keçirin və canlılıq trafikini və tətbiqin nəticəsini izləyin. Ehtiyacınız olmayan faydalı yük məzmununu tutmayın; taymerlər və bağlantı vəziyyəti suala cavab verir.
ss -tio dst 10.60.4.20
# after the quiet interval, same command
ls -l "$ORACLE_HOME/network/admin/sqlnet.ora"
Sessiya hələ də yox olursa, müddət hələ soruşmadığınız cihaza aiddir və ya siyasət mütləq limitdir. Əgər o yaşayırsa, hansı qatın dəyişdiyini qeyd edin ki, növbəti sakit əməliyyat araşdırmanı təkrar etməsin.
Nəhayət, bağlantı həqiqətən düşəndə nə olacağını qərarlaşdırın, çünki canlılıq yoxlamaları tezliyi azaldır və imkanı heç vaxt aradan qaldırmır. Verilənlər bazası əməliyyatının qeydə alınmış nəticəsini yenidən göndərməzdən əvvəl müəyyən edin: cavabın itməsi işin təsdiqləndiyinə dair heç nə sübut etmir. Noutbuk bağlananda və ya tunel yenidən başlayanda yaşamalı olan hər şey üçün serverə məxsus, nəticəsi davamlı iş daha güclü dizayndır və keepalive planlaşdırıcı deyil.