Oracle seansi VPN orqali uzildimi? Keepalive qatlamlarini tekshiring
Ma’lumotlar bazasi bilan tinch ish nofaol tarmoq oqimidan omon qolishi mumkin. Soket kaliti, yadro standart qiymatlari va Oracle Net sozlamasini to‘g‘ri tartibda ko‘rib chiqing.
Yigirma besh daqiqa foydali ma’lumotlar bazasi ishi deyarli hech qanday chiqish bermaydi va yo‘ldagi har bir qurilma uchun bu oqim nofaol ko‘rinadi. Aynan nofaol holat yig‘iladi. Keyingi hisobot doim bir xil shaklda bo‘ladi: so‘rov ishlayotgan edi, keyin seans yo‘qoldi va natija hech qachon kelmadi.
To‘rtta tekshiruv tinch seans omon qolishini hal qiladi va ular soketdan tashqariga qarab boradi. Ularni tartib bilan bajaring, chunki har biri oldingi qatlam o‘z ishini qilyapti deb hisoblaydi.
Qaysi oqim jim bo‘ladi
Muhimi — ma’lumotlar bazasi trafigini tashuvchi ulanish, u o‘z manzillari va portlari bilan aniqlanadi. Uni boshqa hech narsa yangilamaydi. Shlyuzga ping, o‘sha xostdan ikkinchi SQL ulanishi va tunnelning o‘z urishi alohida oqimlardir va ularni kuzatadigan har bir qurilmada alohida holatga ega.
ss -tio dst 10.60.4.20
sysctl net.ipv4.tcp_keepalive_time net.ipv4.tcp_keepalive_intvl net.ipv4.tcp_keepalive_probes
Soketlar ro‘yxati tirik ulanishning taymerlari va navbat holatini ko‘rsatadi, bu esa yetib borish testidan ko‘ra ko‘proq ma’lumot beradi. sysctl qiymatlari keepalive xatti-harakati uchun yadro standart qiymatlari va keyingi bo‘lim ular sizning seansingizga hech qachon qo‘llanmasligi mumkinligini tushuntiradi. Hech qachon ishga tushmaydigan standart qiymatni umuman standart qiymat yo‘qligidan ajratib bo‘lmaydi.
Ulanish ishlatadigan manzillar, portlar va interfeysni yozib oling. Seans o‘lganda, aynan shu tafsilotlar to‘g‘ri qurilmadan nima qilganini so‘rashga imkon beradi, tarmoq ishlayotganmi deb so‘rash o‘rniga.
Bo‘sh turish siyosati tugaydimi yoki cheklaydimi
Ikki siyosat bir xil simptom beradi va qarama-qarshi javoblarni talab qiladi. Bo‘sh turish taym-auti malakali trafik yangilashi mumkin bo‘lgan holatni o‘chiradi va keepalive buni oldini olishi mumkin. Mutlaq seans chegarasi oqimni faollikdan qat’i nazar belgilangan muddatdan keyin o‘chiradi va hech qanday keepalive buni o‘zgartirmaydi.
Har bir vositachining egasidan ikkisidan qaysinisini qo‘llashini so‘rang. Xavfsizlik devori, NAT qurilmasi, yuk balanslagichi va bulut shlyuzi holat saqlashi mumkin va ular kelishishi shart emas. Eng tori siz yengishingiz kerak bo‘lgan muddatni belgilaydi.
Bu farq qachon sozlashni to‘xtatishni ham aytadi. Agar siyosat mutlaq chegara bo‘lsa, to‘g‘ri yechim qisqaroq ish birligi, davom ettiriladigan vazifa yoki tasdiqlangan istisna bo‘ladi va quyidagi tekshiruv keepalive hech narsani o‘zgartirmaganini tasdiqlaydi xolos.
Linux standart qiymatlari orqasidagi soket kaliti
Keepalive har bir soket uchun ixtiyoriy. Yadro standart qiymatlari soket mexanizmni yoqqandan keyin zondlar qanday ishlashini tavsiflaydi va mavjud ulanishlar uchun uni yoqmaydi. Hech qachon so‘ramaydigan dastur hech qanday zond olmaydi, sysctl qiymatlari nima desa ham.
Shuning uchun faqat raqamlarni oshirish ma’lumotlar bazasi mijozi uchun hech narsani o‘zgartirmaydi. Mexanizmni mijoz kutubxonasi yoki dastur yoqishi kerak va stek ulanish bo‘yicha boshqaruvni taklif qiladigan joyda cheklangan sozlama aloqasiz xizmatlarga ta’sir qiladigan butun xost uchun o‘zgarishdan afzal.
Birinchi zondgacha bo‘lgan interval ham so‘rov taym-auti emas. Sog‘lom ulanish zondlar orasida jim turadi va o‘lik sherik zond oralig‘i va soni bo‘yicha taniladi. Bu uchta qiymatni bitta taym-aut sifatida o‘qish nosozlikni juda kech yoki juda shoshqaloq aniqlaydigan sozlamalarga olib keladi. Ular aniqlashni boshqaradi, dasturning sabrini emas.
EXPIRE_TIME — ma’lumotlar bazasi sozlamasi, tarmoq tuzatishi emas
Oracle Net o‘zining hayotchanlik mexanizmini taklif qiladi, u jarayon uchun samarali profilda sozlanadi, tasodifan o‘xshash nomga ega ixtiyoriy faylda emas. Qiymat daqiqalarda ifodalanadi.
SQLNET.EXPIRE_TIME = 5
Uning asosiy maqsadi server tomonida o‘lik ulanishlarni aniqlash va kengaytirilgan modelni qo‘llab-quvvatlaydigan platformalarda bu ulanishlar uchun TCP keepalive xatti-harakatini ham sozlaydi. Bu foydali xususiyat: ma’lumotlar bazasi qatlami mijoz dasturidan o‘zgarish so‘ramasdan zondlarni tashkil qilishi mumkin.
Yuqoridagi misol qiymat taxmin qilingan muddatga qarshi kelishilgan tanlov, tavsiya emas. Hujjatlashtirilgan umumiy tavsiya uzoqroq interval va to‘g‘ri raqam o‘rnatilgan amalga oshirishga, qabul qiladigan zond xarajatiga va yo‘ldagi haqiqiy yangilash qoidalariga bog‘liq. Sozlamani tegishli jarayon o‘qiydigan profilga qo‘ying va jarayon uni qabul qilganini tasdiqlang. Oracle profil joylari va aniqlash xatti-harakatini o‘zining parametr ma’lumotnomasida hujjatlashtiradi.
Jim intervalni sinab ko‘ring, keyin tiklashni rejalashtiring
Yangi ruxsat etilgan ulanishni yengishga urinayotgan muddatdan uzoqroq jim davrdan o‘tkazing va hayotchanlik trafigi hamda dastur natijasini kuzating. Sizga kerak bo‘lmagan foydali yuk tarkibini yozib olmang; taymerlar va ulanish holati savolga javob beradi.
ss -tio dst 10.60.4.20
# after the quiet interval, same command
ls -l "$ORACLE_HOME/network/admin/sqlnet.ora"
Agar seans baribir yo‘qolsa, muddat siz hali so‘ramagan qurilmaga tegishli yoki siyosat mutlaq chegara. Agar u omon qolsa, qaysi qatlam o‘zgarganini qayd eting, keyingi jim operatsiya tekshiruvni takrorlamasin.
Nihoyat, ulanish haqiqatan uzilganda nima bo‘lishini hal qiling, chunki hayotchanlik tekshiruvlari chastotani kamaytiradi va imkoniyatni hech qachon yo‘q qilmaydi. Ma’lumotlar bazasi operatsiyasining yozilgan natijasini uni qayta yuborishdan oldin aniqlang: javobning yo‘qolishi ish tasdiqlanganmi-yo‘qmi degani haqida hech narsani isbotlamaydi. Noutbuk yopilganda yoki tunnel qayta ishga tushganda omon qolishi kerak bo‘lgan hamma narsa uchun serverga tegishli, natijasi uzoq saqlanadigan ish kuchliroq dizayn va keepalive rejalashtiruvchi emas.