VPN ಮೂಲಕ Oracle ಸೆಷನ್ ಕಡಿತಗೊಂಡಿದೆಯೇ? keepalive ಪದರಗಳನ್ನು ಪರಿಶೀಲಿಸಿ
ಡೇಟಾಬೇಸ್ನಲ್ಲಿ ಶಾಂತ ಕೆಲಸ ನಿಷ್ಕ್ರಿಯ ನೆಟ್ವರ್ಕ್ ಹರಿವನ್ನು ಮೀರಿ ಉಳಿಯಬಹುದು. ಸಾಕೆಟ್ ಸ್ವಿಚ್, ಕರ್ನಲ್ ಡೀಫಾಲ್ಟ್ಗಳು ಮತ್ತು Oracle Net ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಸರಿಯಾದ ಕ್ರಮದಲ್ಲಿ ನೋಡಿ.
ಇಪ್ಪತ್ತೈದು ನಿಮಿಷಗಳ ಉಪಯುಕ್ತ ಡೇಟಾಬೇಸ್ ಕೆಲಸ ಬಹುತೇಕ ಯಾವುದೇ ಔಟ್ಪುಟ್ ಕೊಡುವುದಿಲ್ಲ, ಮತ್ತು ಮಾರ್ಗದ ಪ್ರತಿ ಸಾಧನದಿಂದ ಆ ಹರಿವು ನಿಷ್ಕ್ರಿಯವಾಗಿ ಕಾಣುತ್ತದೆ. ನಿಷ್ಕ್ರಿಯ ಸ್ಥಿತಿಯನ್ನೇ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ. ನಂತರದ ವರದಿ ಯಾವಾಗಲೂ ಒಂದೇ ಆಕಾರ: ಪ್ರಶ್ನೆ ಚಾಲನೆಯಲ್ಲಿತ್ತು, ನಂತರ ಸೆಷನ್ ಕಣ್ಮರೆಯಾಯಿತು, ಫಲಿತಾಂಶ ಎಂದೂ ಬರಲಿಲ್ಲ.
ನಾಲ್ಕು ಪರಿಶೀಲನೆಗಳು ಶಾಂತ ಸೆಷನ್ ಉಳಿಯುತ್ತದೆಯೇ ಎಂದು ನಿರ್ಧರಿಸುತ್ತವೆ, ಅವು ಸಾಕೆಟ್ನಿಂದ ಹೊರಕ್ಕೆ ಹೋಗುತ್ತವೆ. ಅವನ್ನು ಕ್ರಮವಾಗಿ ಮಾಡಿ, ಏಕೆಂದರೆ ಪ್ರತಿಯೊಂದೂ ಹಿಂದಿನ ಪದರ ತನ್ನ ಕೆಲಸ ಮಾಡುತ್ತಿದೆ ಎಂದು ಊಹಿಸುತ್ತದೆ.
ಯಾವ ಹರಿವು ಶಾಂತವಾಗುತ್ತದೆ
ಮುಖ್ಯ ಸಂಪರ್ಕ ಡೇಟಾಬೇಸ್ ಟ್ರಾಫಿಕ್ ಸಾಗಿಸುವುದು, ಅದರ ಸ್ವಂತ ವಿಳಾಸಗಳು ಮತ್ತು ಪೋರ್ಟ್ಗಳಿಂದ ಗುರುತಿಸಲ್ಪಡುತ್ತದೆ. ಬೇರೆ ಯಾವುದೂ ಅದನ್ನು ಹೊಸದಾಗಿಸುವುದಿಲ್ಲ. ಗೇಟ್ವೇಗೆ ಪಿಂಗ್, ಅದೇ ಹೋಸ್ಟ್ನಿಂದ ಎರಡನೇ 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 ಯಾವುದೇ ಶೆಡ್ಯೂಲರ್ ಅಲ್ಲ.