Oracle сесс VPN-ээр тасарсан уу? keepalive давхаргуудыг шалгаарай
Мэдээллийн сантай чимээгүй ажил идэвхгүй сүлжээний урсгалаас амьд үлдэж болно. Сокетын унтраалга, цөмийн анхдагч утгууд болон Oracle Net тохиргоог зөв дарааллаар үзээрэй.
Хорин таван минутын ашигтай мэдээллийн сангийн ажил бараг ямар ч гаралт өгөхгүй, замын бүх төхөөрөмжөөс тэр урсгал идэвхгүй харагдана. Идэвхгүй байдал нь яг цуглуулдаг зүйл юм. Дараах тайлан үргэлж ижил хэлбэртэй: асуулга ажиллаж байсан, дараа нь сесс алга болсон, үр дүн хэзээ ч ирээгүй.
Дөрвөн шалгалт чимээгүй сесс амьд үлдэх эсэхийг шийддэг бөгөөд тэд сокетоос гадагш явдаг. Тэдгээрийг дарааллаар нь хийгээрэй, учир нь тус бүр өмнөх давхарга ажлаа хийж байна гэж үздэг.
Аль урсгал чимээгүй болдог
Чухал нь мэдээллийн сангийн урсгалыг зөөдөг холболт бөгөөд өөрийн хаяг, портоор тодорхойлогдоно. Өөр юу ч үүнийг сэргээхгүй. Гарц руу ping, нэг хостоос хоёр дахь SQL холболт, туннелийн өөрийн зүрхний цохилт нь тусдаа урсгал бөгөөд тэдгээрийг хянадаг төхөөрөмж бүрт тусдаа төлөвтэй.
ss -tio dst 10.60.4.20
sysctl net.ipv4.tcp_keepalive_time net.ipv4.tcp_keepalive_intvl net.ipv4.tcp_keepalive_probes
Сокетын жагсаалт амьд холболтын таймер, дарааллын төлөвийг харуулдаг нь хүртээмжийн шалгалтаас илүү мэдээлэлтэй. sysctl утгууд нь keepalive зан төлөвийн цөмийн анхдагч утгууд бөгөөд дараагийн хэсэгт тэдгээр таны сесст хэзээ ч хамаарахгүй байж болох шалтгааныг тайлбарлана. Хэзээ ч ажилладаггүй анхдагч утгыг огт анхдагч утгагүйгээс ялгах боломжгүй.
Холболтын ашигладаг хаяг, порт, интерфэйсийг бичиж аваарай. Сесс үхэх үед эдгээр мэдээлэл нь сүлжээ ажиллаж байсан эсэхийг асуухын оронд зөв төхөөрөмжөөс юу хийснийг асуух боломж олгоно.
Сул зогсолтын бодлого дуусах уу эсвэл хязгаарлах уу
Хоёр бодлого ижил шинж тэмдэг үүсгэдэг бөгөөд эсрэг арга хэмжээ шаарддаг. Сул зогсолтын хугацааны хязгаар нь шаардлага хангасан урсгал сэргээж болох төлөвийг устгадаг бөгөөд keepalive үүнээс сэргийлж чадна. Сессийн үнэмлэхүй хязгаар нь үйл ажиллагаанаас үл хамааран тогтоосон хугацааны дараа урсгалыг устгадаг бөгөөд ямар ч keepalive үүнийг өөрчлөхгүй.
Зуучлагч бүрийн эзнээс аль хоёрыг хэрэгжүүлж байгааг асуугаарай. Галт хана, NAT төхөөрөмж, ачааллын тэнцвэржүүлэгч, үүлэн гарц бүгд төлөв хадгалж болох бөгөөд тэд заавал санал нийлэх шаардлагагүй. Хамгийн нарийн нь таны ялах ёстой хугацааг тогтоодог.
Энэ ялгаа нь тохируулгыг хэзээ зогсоохыг ч хэлнэ. Хэрэв бодлого үнэмлэхүй хязгаар бол зөв шийдэл нь богино ажлын нэгж, үргэлжлүүлэх боломжтой ажил эсвэл зөвшөөрөгдсөн үл хамаарах зүйл бөгөөд доорх шалгалт keepalive юу ч өөрчлөөгүйг л батална.
Linux анхдагч утгуудын ард байгаа сокет унтраалга
Keepalive нь сокет бүрт сонголтоор. Цөмийн анхдагч утгууд нь сокет механизмыг идэвхжүүлсний дараа шалгалтууд хэрхэн ажиллахыг тодорхойлдог бөгөөд одоо байгаа холболтуудад үүнийг идэвхжүүлдэггүй. Хэзээ ч хүсээгүй програмууд ямар ч шалгалт авдаггүй, sysctl утгууд юу ч гэсэн.
Тиймээс зөвхөн тоог өсгөх нь мэдээллийн сангийн клиентэд юу ч өөрчлөхгүй. Механизмыг клиентийн номын сан эсвэл програм идэвхжүүлэх ёстой бөгөөд стек холболт тус бүрийн хяналт санал болгодог газарт хязгаарлагдмал тохиргоо нь холбоогүй үйлчилгээнд нөлөөлдөг бүх хостын өөрчлөлтөөс илүү.
Эхний шалгалт хүртэлх завсар нь асуулгын хугацааны хязгаар биш. Эрүүл холболт шалгалтуудын хооронд чимээгүй байдаг бөгөөд үхсэн талыг шалгалтын завсар, тоогоор танина. Эдгээр гурван утгыг нэг хугацааны хязгаар гэж унших нь алдааг хэт орой эсвэл хэт яаралтай илрүүлдэг тохиргоонд хүргэдэг. Тэд илрүүлэлтийг удирддаг, програмын тэвчээрийг биш.
EXPIRE_TIME нь мэдээллийн сангийн тохиргоо, сүлжээний засвар биш
Oracle Net өөрийн амьдрах чадварын механизмыг санал болгодог бөгөөд процессийн үр дүнтэй профайлд тохируулагддаг, санамсаргүй ижил нэртэй файлд биш. Утгыг минутаар илэрхийлнэ.
SQLNET.EXPIRE_TIME = 5
Үүний гол зорилго нь сервер талд үхсэн холболтыг илрүүлэх бөгөөд сайжруулсан загварыг дэмждэг платформд эдгээр холболтын TCP keepalive зан төлөвийг мөн тохируулдаг. Энэ нь ашигтай шинж: мэдээллийн сангийн давхарга клиент програмаас өөрчлөлт шаардлахгүйгээр шалгалтыг зохион байгуулж чадна.
Дээрх жишээ утга нь таамагласан хугацааны эсрэг тохиролцсон сонголт, зөвлөмж биш. Баримтжуулсан ерөнхий зөвлөмж нь илүү урт завсар бөгөөд зөв тоо нь суулгасан хэрэгжүүлэлт, хүлээн зөвшөөрөх шалгалтын зардал, зам дээрх бодит сэргээх дүрмээс хамаарна. Тохиргоог холбогдох процесс уншдаг профайлд тавьж, процесс үүнийг авсан эсэхийг баталгаажуулаарай. Oracle профайлын байршил, илрүүлэлтийн зан төлөвийг өөрийн параметрийн лавлагаанд баримтжуулдаг.
Чимээгүй завсрыг шалгаад дараа нь сэргээх ажлыг төлөвлөөрэй
Шинэ зөвшөөрөгдсөн холболтыг ялахыг оролдож буй хугацаанаас урт чимээгүй үеээр нэвтрүүлж, амьдрах чадварын урсгал болон програмын үр дүнг ажиглаарай. Хэрэггүй ачааны агуулгыг барьж болохгүй; таймер, холболтын төлөв асуултад хариулна.
ss -tio dst 10.60.4.20
# after the quiet interval, same command
ls -l "$ORACLE_HOME/network/admin/sqlnet.ora"
Хэрэв сесс орсоор байвал хугацаа нь таны асуугаагүй төхөөрөмжид хамаарах эсвэл бодлого үнэмлэхүй хязгаар юм. Хэрэв амьд үлдвэл аль давхарга өөрчлөгдсөнийг тэмдэглээрэй, дараагийн чимээгүй үйлдэл мөрдөн шалгалтыг давтахгүйн тулд.
Эцэст нь холболт үнэхээр тасрах үед юу болохыг шийдээрэй, учир нь амьдрах чадварын шалгалтууд давтамжийг бууруулдаг бөгөөд боломжийг хэзээ ч арилгадаггүй. Мэдээллийн сангийн үйлдлийн бүртгэгдсэн үр дүнг дахин илгээхийн өмнө тогтоогоорой: хариулт алдагдсан нь ажил баталгаажсан эсэхийг юу ч нотлохгүй. Зөөврийн компьютер хаагдах эсвэл туннель дахин эхлэх үед амьд үлдэх ёстой бүхний хувьд серверийн эзэмшлийн, үр дүн нь удаан хадгалагдах ажил илүү бат бөх загвар бөгөөд keepalive нь төлөвлөгч биш.