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 пландаштыргыч эмес.