ਪੱਚੀ ਮਿੰਟ ਦਾ ਲਾਹੇਵੰਦ ਡੇਟਾਬੇਸ ਕੰਮ ਲਗਭਗ ਕੋਈ ਆਊਟਪੁੱਟ ਨਹੀਂ ਦਿੰਦਾ, ਅਤੇ ਰਾਹ ਦੇ ਹਰ ਡਿਵਾਈਸ ਤੋਂ ਉਹ ਪ੍ਰਵਾਹ ਨਿਸ਼ਕਿਰਿਆ ਦਿਸਦਾ ਹੈ। ਨਿਸ਼ਕਿਰਿਆ ਹਾਲਤ ਹੀ ਉਹ ਚੀਜ਼ ਹੈ ਜੋ ਇਕੱਠੀ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਬਾਅਦ ਦੀ ਰਿਪੋਰਟ ਹਮੇਸ਼ਾ ਇੱਕੋ ਸ਼ਕਲ ਦੀ ਹੁੰਦੀ ਹੈ: ਕੁਐਰੀ ਚੱਲ ਰਹੀ ਸੀ, ਫਿਰ ਸੈਸ਼ਨ ਗਾਇਬ ਹੋ ਗਿਆ, ਅਤੇ ਨਤੀਜਾ ਕਦੇ ਨਹੀਂ ਪਹੁੰਚਿਆ।

ਚਾਰ ਜਾਂਚਾਂ ਤੈਅ ਕਰਦੀਆਂ ਹਨ ਕਿ ਸ਼ਾਂਤ ਸੈਸ਼ਨ ਬਚੇਗਾ ਜਾਂ ਨਹੀਂ, ਅਤੇ ਉਹ ਸਾਕਟ ਤੋਂ ਬਾਹਰ ਵੱਲ ਜਾਂਦੀਆਂ ਹਨ। ਇਨ੍ਹਾਂ ਨੂੰ ਕ੍ਰਮ ਵਿੱਚ ਕਰੋ, ਕਿਉਂਕਿ ਹਰ ਇੱਕ ਮੰਨਦੀ ਹੈ ਕਿ ਪਿਛਲੀ ਪਰਤ ਆਪਣਾ ਕੰਮ ਕਰ ਰਹੀ ਹੈ।

ਕਿਹੜਾ ਪ੍ਰਵਾਹ ਸ਼ਾਂਤ ਹੁੰਦਾ ਹੈ

ਮਹੱਤਵਪੂਰਨ ਕਨੈਕਸ਼ਨ ਉਹ ਹੈ ਜੋ ਡੇਟਾਬੇਸ ਟ੍ਰੈਫ਼ਿਕ ਢੋਂਦਾ ਹੈ, ਜੋ ਆਪਣੇ ਹੀ ਪਤਿਆਂ ਅਤੇ ਪੋਰਟਾਂ ਨਾਲ ਪਛਾਣਿਆ ਜਾਂਦਾ ਹੈ। ਹੋਰ ਕੁਝ ਵੀ ਇਸ ਨੂੰ ਤਾਜ਼ਾ ਨਹੀਂ ਕਰਦਾ। ਗੇਟਵੇ ਨੂੰ ਪਿੰਗ, ਉਸੇ ਹੋਸਟ ਤੋਂ ਦੂਜਾ 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 ਕੋਈ ਸ਼ਡਿਊਲਰ ਨਹੀਂ।

ਸੰਬੰਧਿਤ ਲੇਖ