Kikao cha Oracle kimekatika kupitia VPN? Angalia tabaka za keepalive
Kazi tulivu ya hifadhidata inaweza kuishi zaidi ya mtiririko wa mtandao usio hai. Pitia swichi ya soketi, chaguo-msingi za kernel na mpangilio wa Oracle Net kwa mpangilio sahihi.
Dakika ishirini na tano za kazi muhimu ya hifadhidata hazitoi karibu chochote, na kutoka kwa kila kifaa kwenye njia mtiririko huo unaonekana haufanyi kazi. Hali isiyo hai ndiyo hasa inayokusanywa. Ripoti ya baadaye huwa na umbo lilelile: swali lilikuwa likiendeshwa, kisha kikao kilitoweka, na matokeo hayakuwahi kufika.
Ukaguzi nne huamua kama kikao tulivu kinaendelea kuishi, na huanza kutoka soketi kwenda nje. Zifanye kwa mpangilio, kwa sababu kila moja huchukulia kuwa tabaka lililopita linafanya kazi yake.
Mtiririko upi hunyamaza
Muunganisho muhimu ni ule unaobeba trafiki ya hifadhidata, unaotambulika kwa anwani na bandari zake. Hakuna kingine kinachouisasa. Ping kwa lango, muunganisho wa pili wa SQL kutoka mwenyeji yuleyule na mapigo ya moyo ya handaki yenyewe ni mitiririko tofauti yenye hali tofauti kwenye kila kifaa kinachofuatilia.
ss -tio dst 10.60.4.20
sysctl net.ipv4.tcp_keepalive_time net.ipv4.tcp_keepalive_intvl net.ipv4.tcp_keepalive_probes
Orodha ya soketi inaonyesha vipima muda na hali ya foleni ya muunganisho hai, jambo ambalo hutoa taarifa zaidi kuliko jaribio la ufikivu. Thamani za sysctl ni chaguo-msingi za kernel kwa tabia ya keepalive, na sehemu inayofuata inaeleza kwa nini huenda zisitumike kamwe kwa kikao chako. Chaguo-msingi ambalo haliwaki kamwe haliwezi kutofautishwa na kutokuwepo kwa chaguo-msingi kabisa.
Andika anwani, bandari na kiolesura ambavyo muunganisho hutumia. Kikao kinapokufa, maelezo hayo ndiyo yanayokuwezesha kumuuliza kifaa sahihi kilichofanya, badala ya kuuliza kama mtandao ulikuwa hai.
Sera ya kutokuwa hai inaisha au inapunguza
Sera mbili huzalisha dalili moja na zinahitaji majibu kinyume. Muda wa kutokuwa hai huondoa hali ambayo trafiki inayostahili ingeweza kuisasisha, na keepalive inaweza kuzuia hilo. Kikomo kamili cha kikao huondoa mtiririko baada ya muda maalum bila kujali shughuli, na hakuna keepalive inayobadilisha hilo.
Muulize mmiliki wa kila mpatanishi ni ipi kati ya mbili anayotekeleza. Firewall, kifaa cha NAT, kisawazisha mzigo na lango la wingu zote zinaweza kuhifadhi hali, na hazihitaji kukubaliana. Kilicho chembamba zaidi huweka tarehe ya mwisho unayopaswa kuishinda.
Tofauti hiyo pia inakuambia lini kuacha kurekebisha. Ikiwa sera ni kikomo kamili, suluhisho sahihi ni kitengo kifupi cha kazi, kazi inayoweza kuendelea au msamaha ulioidhinishwa, na ukaguzi wa chini utathibitisha tu kuwa keepalive hazikubadilisha chochote.
Swichi ya soketi nyuma ya chaguo-msingi za Linux
Keepalive ni hiari kwa kila soketi. Chaguo-msingi za kernel hufafanua jinsi uchunguzi unavyofanya kazi baada ya soketi kuwezesha utaratibu, na haziziweshi kwa miunganisho iliyopo. Programu ambayo haiwahi kuomba haipati uchunguzi wowote, vyovyote vinavyosema thamani za sysctl.
Ndiyo sababu kuongeza nambari pekee hakubadilishi chochote kwa mteja wa hifadhidata. Maktaba ya mteja au programu lazima iwezeshe utaratibu, na ambapo staki inatoa vidhibiti kwa kila muunganisho, mpangilio uliowekewa mipaka ni bora kuliko mabadiliko ya mwenyeji mzima yanayoathiri huduma zisizohusiana.
Muda hadi uchunguzi wa kwanza pia si muda wa kuisha wa swali. Muunganisho mzuri hubaki kimya kati ya uchunguzi, na mwenza aliyekufa hutambulika kwa muda na idadi ya uchunguzi. Kusoma thamani hizo tatu kama muda mmoja wa kuisha hupelekea watu kwenye mipangilio inayogundua hitilafu ama akiwa amechelewa sana au kwa shauku kupita kiasi. Zinadhibiti ugunduzi, si uvumilivu wa programu.
EXPIRE_TIME ni mpangilio wa hifadhidata, si marekebisho ya mtandao
Oracle Net hutoa utaratibu wake wa uhai, uliosanidiwa katika profaili inayofaa kwa mchakato badala ya faili ya kiholela ambayo kwa bahati ina jina linalofanana. Thamani huonyeshwa kwa dakika.
SQLNET.EXPIRE_TIME = 5
Madhumuni yake makuu ni kugundua miunganisho iliyokufa upande wa seva, na kwenye majukwaa yanayotumia modeli iliyoboreshwa pia hurekebisha tabia ya keepalive ya TCP kwa miunganisho hiyo. Hiyo ni sifa muhimu: tabaka la hifadhidata linaweza kupanga uchunguzi bila kumwomba programu mteja ibadilike.
Thamani ya mfano hapo juu ni chaguo lililoratibiwa dhidi ya tarehe ya mwisho inayodhaniwa, si pendekezo. Mwongozo wa jumla ulioandikwa ni muda mrefu zaidi, na nambari sahihi inategemea utekelezaji uliosakinishwa, gharama ya uchunguzi unayokubali na kanuni halisi za uasishaji kwenye njia. Weka mpangilio katika profaili ambayo mchakato husika husoma, na uthibitishe kuwa mchakato umeichukua. Oracle huandika maeneo ya profaili na tabia ya ugunduzi katika marejeleo yake ya vigezo.
Jaribu muda tulivu, kisha panga urejeshaji
Pitisha muunganisho mpya ulioruhusiwa katika kipindi tulivu kilicho kirefu kuliko tarehe ya mwisho unayojaribu kuishinda, na uangalie trafiki ya uhai na matokeo ya programu. Usinase maudhui ya mzigo usiyohitaji; vipima muda na hali ya muunganisho hujibu swali.
ss -tio dst 10.60.4.20
# after the quiet interval, same command
ls -l "$ORACLE_HOME/network/admin/sqlnet.ora"
Kama kikao bado kinatoweka, tarehe ya mwisho ni ya kifaa ambacho hujajauliza bado, au sera ni kikomo kamili. Kama kinaendelea kuishi, andika tabaka lipi lililobadilika ili operesheni tulivu inayofuata isirudie uchunguzi.
Mwishowe, amua nini hufanyika muunganisho unaposhuka kweli, kwa sababu ukaguzi wa uhai hupunguza mara na kamwe hauondoi uwezekano. Thibitisha matokeo yaliyorekodiwa ya operesheni ya hifadhidata kabla ya kuituma tena: kupoteza jibu hakuthibitishi chochote kuhusu kama kazi ilithibitishwa. Kwa kitu chochote kinachopaswa kuishi kompyuta mpakato kufungwa au handaki kuanzishwa upya, kazi inayomilikiwa na seva yenye matokeo ya kudumu ni muundo imara zaidi, na keepalive si kipanga ratiba.