SQL Server ಬೂಟ್ ಸಮಯದಲ್ಲಿ ಇಲ್ಲದ VPN ವಿಳಾಸಕ್ಕೆ ಬಂಧಿಸುತ್ತದೆ
ಸ್ಟಾರ್ಟ್ಅಪ್ ಲಾಗ್ನಿಂದ ಪರಿಣಾಮಕಾರಿ ಶ್ರೋತೆಗೆ ವಿಫಲ SQL Server ಬಂಧನವನ್ನು ಅನುಸರಿಸಿ, ನಂತರ ಕ್ಲೈಂಟ್ಗಳಿಗೆ VPN ಪೂಲ್ ವಿಳಾಸದ ಬದಲು ಸ್ಥಿರ ಖಾಸಗಿ ವಿಳಾಸ ನೀಡಿ.
ಸೇವೆ ಇನ್ನೂ ಚಾಲನೆಯಲ್ಲಿರುವಾಗ ವಿಫಲ ಬಂಧನದ ಬಗ್ಗೆ SQL Server ಲಾಗ್ನ ಒಂದು ಸಾಲನ್ನು ಓದಿ, ಮತ್ತು ನೀವು ಕ್ರ್ಯಾಶ್ ಅಲ್ಲ, ಬೂಟ್-ಕ್ರಮದ ಅವಲಂಬನೆಯನ್ನು ಕಂಡುಕೊಂಡಿದ್ದೀರಿ. ಆ ಸಂಯೋಜನೆಯೇ ಸುಳಿವು: ಎಂಜಿನ್ ತನಗೆ ಕೇಳಲು ಹೇಳಿದ್ದ ವಿಳಾಸವು ಯಂತ್ರದಲ್ಲಿ ಇರುವ ಮೊದಲೇ ಪ್ರಾರಂಭವಾಗಿತ್ತು. ಸೈನ್-ಇನ್ ನಂತರ ಮೇಲೆ ಬರುವ VPN ಅಡಾಪ್ಟರ್ ಮೇಲ್ವಿಚಾರಣೆ ಇಲ್ಲದ ಡೇಟಾಬೇಸ್ ಸೇವೆಗೆ ಕೆಟ್ಟ ಪೂರ್ವಶರತ್ತು, ಆದ್ದರಿಂದ ಎಂಜಿನ್ ನೋಡುವ ಕ್ರಮದಲ್ಲೇ ವೈಫಲ್ಯವನ್ನು ಅನುಸರಿಸಿ.
ಕ್ಲೈಂಟ್ನಿಂದ ಅಲ್ಲ, ಸ್ಟಾರ್ಟ್ಅಪ್ ಲಾಗ್ನಿಂದ ಪ್ರಾರಂಭಿಸಿ
ಇನ್ಸ್ಟಾನ್ಸ್ನ ದೋಷ ಲಾಗ್ ತೆರೆದು ಕೇವಲ ಕೊನೆಯ ಸಾಲನ್ನಲ್ಲ, ನೆಟ್ವರ್ಕ್ ಆರಂಭದ ಸುತ್ತಲಿನ ನಮೂದುಗಳನ್ನು ಓದಿ. ಎಂಜಿನ್ ಯಾವ ವಿಳಾಸಗಳನ್ನು ಪ್ರಯತ್ನಿಸಿತು ಮತ್ತು ಯಾವ ಪ್ರೋಟೋಕಾಲ್ಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿತು ಎಂದು ವರದಿ ಮಾಡುತ್ತದೆ, ಮತ್ತು ಆ ದಾಖಲೆ ಯಾವುದೇ ಕ್ಲೈಂಟ್ ಸಂಪರ್ಕಗೊಳ್ಳುವ ಮೊದಲಿನದು. ಈಗ ಹೋಸ್ಟ್ನಲ್ಲಿ ಈ ಕ್ಷಣ ಏನಿದೆ ಎಂದು ನೋಡಿ. ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ ವಿಳಾಸವನ್ನು ಹೊಂದಿರುವ ಇಂಟರ್ಫೇಸ್ ಬಳಕೆದಾರ ಸೈನ್-ಇನ್ ಮಾಡಿ ಕ್ಲೈಂಟ್ ಪ್ರಾರಂಭಿಸಿದ ನಂತರವೇ ಕಾಣಿಸಿಕೊಂಡರೆ, ಬೂಟ್ನಲ್ಲಿ ವಿಳಾಸ ಇರಲಿಲ್ಲ ಮತ್ತು ಬಂಧನ ವೈಫಲ್ಯ ಸಂಪೂರ್ಣವಾಗಿ ವಿವರಿಸಲ್ಪಡುತ್ತದೆ.
Get-NetIPAddress -AddressFamily IPv4 | Select-Object InterfaceAlias, IPAddress, PrefixOrigin
Get-Content 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\LOG\ERRORLOG' -Tail 40
ನಿಮ್ಮ ಸ್ಥಾಪನೆಗೆ ಅನುಗುಣವಾಗಿ ಇನ್ಸ್ಟಾನ್ಸ್ ಮಾರ್ಗವನ್ನು ಸರಿಹೊಂದಿಸಿ, ಮತ್ತು ತೀರ್ಮಾನಗಳಿಗೆ ಬರುವ ಮೊದಲು ಇಂಟರ್ಫೇಸ್ ಪಟ್ಟಿಯನ್ನು ಓದಿ. ಇರುವ ಆದರೆ ತಪ್ಪು ಅಡಾಪ್ಟರ್ನದಾದ ವಿಳಾಸವು ಇನ್ನೂ ಇಲ್ಲದ ವಿಳಾಸಕ್ಕಿಂತ ಬೇರೆ ಸಮಸ್ಯೆ.
ಎಂಜಿನ್ ನಿಜವಾಗಿ ಅನುಸರಿಸುವ ಬಂಧನ ಕ್ರಮವನ್ನು ನಡೆಯಿರಿ
ಎಂಜಿನ್ ತನ್ನ ಶ್ರೋತೆ ಸಂರಚನೆಯನ್ನು ಓದಿ ನಂತರ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ಗೆ ಬಂಧಿಸಲು ಕೇಳುತ್ತದೆ. ಆ ಕ್ಷಣ ವಿಳಾಸ ಸ್ಥಳೀಯವಾಗಿಲ್ಲದಿದ್ದರೆ ಆ ವಿಳಾಸಕ್ಕೆ ಬಂಧನ ವಿಫಲವಾಗುತ್ತದೆ, ಉಳಿದ ಇನ್ಸ್ಟಾನ್ಸ್ ಸಾಮಾನ್ಯವಾಗಿ ಮುಂದುವರಿಯಬಹುದು. ಆದ್ದರಿಂದ ಇತರ ಪ್ರೋಟೋಕಾಲ್ಗಳು ಅಥವಾ ಇತರ ವಿಳಾಸಗಳು ಇನ್ನೂ ಕೆಲಸ ಮಾಡಬಹುದು, ಮತ್ತು ಆದ್ದರಿಂದ „SQL Server ಡೌನ್ ಆಗಿದೆ“ ತಪ್ಪು ಸಾರಾಂಶ. ಲಾಗ್ನಿಂದ ನಿಖರ ಅಂತಿಮ ಬಿಂದುವನ್ನು ಉಳಿಸಿ: ವಿಳಾಸ, ಪೋರ್ಟ್ ಮತ್ತು ಪ್ರೋಟೋಕಾಲ್, ಏಕೆಂದರೆ ಸರಿಪಡಿಸುವಿಕೆ ಮೂರರಲ್ಲಿ ಯಾವುದು ತಪ್ಪು ಎಂಬುದನ್ನು ಅವಲಂಬಿಸಿದೆ.
ಅಡಾಪ್ಟರ್ ಕಾಣಿಸಿಕೊಂಡ ನಂತರ ಸೇವೆಯನ್ನು ಮರುಪ್ರಾರಂಭಿಸುವುದು ಸಾಮಾನ್ಯವಾಗಿ ಶ್ರೋತೆಯನ್ನು ಯಶಸ್ವಿಗೊಳಿಸುತ್ತದೆ, ಮತ್ತು ಅದೇ ಬಲೆ. ಅದು ಅವಲಂಬನೆಯನ್ನು ತೆಗೆದುಹಾಕುವ ಬದಲು ಸಾಬೀತುಪಡಿಸುತ್ತದೆ, ಮತ್ತು ಸುರಂಗ ಮತ್ತೆ ಸಂಪರ್ಕಗೊಳ್ಳುವ ಪ್ರತಿ ಬಾರಿಯೂ ಪ್ರತಿ ಸಂಪರ್ಕಿತ ಬಳಕೆದಾರನನ್ನು ಕಡಿತಗೊಳಿಸುತ್ತದೆ.
ಎಂಜಿನ್ ಓದುವಂತೆಯೇ ಶ್ರೋತೆಯನ್ನು ಓದಿ
SQL Server Configuration Manager ನಲ್ಲಿ ಇನ್ಸ್ಟಾನ್ಸ್ನ TCP/IP ಗುಣಲಕ್ಷಣಗಳನ್ನು ತೆರೆಯಿರಿ ಮತ್ತು ಪ್ರತ್ಯೇಕ ವಿಳಾಸಗಳನ್ನು ಸಂಪಾದಿಸುವ ಮೊದಲು Listen All ಸೆಟ್ಟಿಂಗ್ ಗಮನಿಸಿ. Listen All Yes ಆಗಿರುವಾಗ ಪ್ರತಿ ವಿಳಾಸದ Enabled ಮೌಲ್ಯಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ, ಆದ್ದರಿಂದ ಅವುಗಳನ್ನು ಸಂಪಾದಿಸುವುದು ಶ್ರೋತೆ ಬಳಸುವ ಯಾವುದನ್ನೂ ಬದಲಿಸುವುದಿಲ್ಲ. ಕ್ರಮವಾಗಿ ಮೂರು ವಿಷಯಗಳನ್ನು ದಾಖಲಿಸಿ: ನೀವು ಸೇವೆ ನೀಡಲು ಉದ್ದೇಶಿಸಿರುವ ವಿಳಾಸ, ಪೋರ್ಟ್, ಮತ್ತು ಶ್ರೋತೆ ಎಲ್ಲಾ ವಿಳಾಸಗಳನ್ನು ಅಥವಾ ಒಂದನ್ನು ಮಾತ್ರ ಆವರಿಸಬೇಕೆ. ನಂತರ ಬೆಂಬಲಿತ ಮರುಪ್ರಾರಂಭ ಕಾರ್ಯವಿಧಾನದ ಮೂಲಕ ಬದಲಾವಣೆಯನ್ನು ಅನ್ವಯಿಸಿ ಮತ್ತು ಎಂಜಿನ್ ನೀವು ಕೇಳಿದ್ದನ್ನು ಬಂಧಿಸಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಲು ಮುಂದಿನ ಸ್ಟಾರ್ಟ್ಅಪ್ ಲಾಗ್ ಓದಿ.
ಪ್ರತಿ ವಿಳಾಸದಲ್ಲಿ ಕೇಳುವುದು ಪ್ರವೇಶ ನಿಯಂತ್ರಣವಲ್ಲ. ವಿಶಾಲ ಶ್ರೋತೆ ನಿಜವಾಗಿಯೂ ಅಗತ್ಯವಿದ್ದರೆ, ಪ್ರತಿ ತಲುಪಬಹುದಾದ ಇಂಟರ್ಫೇಸ್ಗೆ ತನ್ನದೇ ಫೈರ್ವಾಲ್ ಮತ್ತು ಡೇಟಾಬೇಸ್ ಅಧಿಕಾರ ನಿರ್ಧಾರ ಬೇಕು, ಇಂಟರ್ನೆಟ್ಗೆ ಮುಖ ಮಾಡುವ ಯಾವುದೇ ಇಂಟರ್ಫೇಸ್ ಸೇರಿದಂತೆ.
ಕ್ಲೈಂಟ್ಗೆ ಸ್ಥಿರ ಗಮ್ಯಸ್ಥಾನ ನೀಡಿ
ಕ್ಲೈಂಟ್ಗೆ ಡೇಟಾಬೇಸ್ ಹೋಸ್ಟ್ ಪೂಲ್ ವಿಳಾಸ ಧರಿಸಬೇಕೆಂದು ಅಗತ್ಯವಿಲ್ಲ. ರೂಟೆಡ್ ವಿನ್ಯಾಸವು ಸರ್ವರ್ ತನ್ನ ಸ್ಥಿರ ಖಾಸಗಿ ವಿಳಾಸದಲ್ಲಿ ಕೇಳುತ್ತಿರುವಾಗ ಕೆಲಸ ಮಾಡುತ್ತದೆ, VPN ಗೇಟ್ವೇ ಕ್ಲೈಂಟ್ನ ಸಂಚಾರವನ್ನು ಅದರತ್ತ ರವಾನಿಸಿ ಉತ್ತರವನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ.
Test-NetConnection -ComputerName 10.80.0.15 -Port 1433
tracert -d 10.80.0.15
ಕ್ಲೈಂಟ್ 10.80.0.15 ತಲುಪಿದರೆ ಮಾರ್ಗ ಸಾಬೀತಾಗಿದೆ ಮತ್ತು ಡೇಟಾಬೇಸ್ ಆ ಕ್ಲೈಂಟ್ಗೆ ಮಾತ್ರ ಅಧಿಕಾರ ನೀಡಬೇಕು. ತಲುಪದಿದ್ದರೆ, ಶ್ರೋತೆಯನ್ನು ಮತ್ತೆ ಮುಟ್ಟುವ ಮೊದಲು ರೂಟಿಂಗ್ ಮತ್ತು DNS ಸರಿಪಡಿಸಿ, ಏಕೆಂದರೆ ಸರ್ವರ್ನಲ್ಲಿ ಬಂಧನ ಸಮಸ್ಯೆ ಕ್ಲೈಂಟ್ ಅದನ್ನು ಹುಡುಕಲಾಗದಿರುವ ಕಾರಣವೇ ಆಗಿರಲಿಲ್ಲ. ಸರ್ವರ್ಗೆ ನಕಲಿ ಪೂಲ್ ವಿಳಾಸ ಸೇರಿಸುವುದು, ಅಥವಾ ಶ್ರೋತೆಯನ್ನು ಸಂತೋಷಪಡಿಸಲು ಎರಡನೇ ಡಿಫಾಲ್ಟ್ ಗೇಟ್ವೇ ನೀಡುವುದು ಹಳೆಯದರ ಮೇಲೆ ಹೊಸ ನೆಟ್ವರ್ಕ್ ಸಮಸ್ಯೆ ಸೃಷ್ಟಿಸುತ್ತದೆ. ಸರ್ವರ್ನ ವಿಳಾಸೀಕರಣವನ್ನು ಸ್ಥಿರವಾಗಿಡಿ ಮತ್ತು ಸುರಂಗ ಕ್ಲೈಂಟ್ಗಳನ್ನು ಅದರತ್ತ ತರಲಿ.
ಕ್ಲೈಂಟ್ ಬಳಸಿದ ಅಂತಿಮ ಬಿಂದುವನ್ನು ಪರಿಶೀಲಿಸಿ
ಪೋರ್ಟ್ ಪರೀಕ್ಷೆಯ ಬದಲು ಅಪ್ಲಿಕೇಶನ್-ಮಟ್ಟದ ಪರಿಶೀಲನೆಯೊಂದಿಗೆ ಮುಗಿಸಿ. ಅಪ್ಲಿಕೇಶನ್ ಬಳಸುವ ಖಾತೆಯೊಂದಿಗೆ ಕ್ಲೈಂಟ್ನಿಂದ ಸಂಪರ್ಕಿಸಿ ಮತ್ತು ಸರ್ವರ್-ಬದಿಯ ಸಂಪರ್ಕ ವಿವರಗಳನ್ನು ಓದಿ, ಅವು ನಿಮ್ಮ ಸೆಷನ್ ಇಳಿದ ಸ್ಥಳೀಯ ವಿಳಾಸವನ್ನು ತೋರಿಸುತ್ತವೆ.
sqlcmd -S tcp:10.80.0.15,1433 -Q "SELECT local_net_address, local_tcp_port FROM sys.dm_exec_connections WHERE session_id = @@SPID"
ಆ ವಿಳಾಸವನ್ನು ನೀವು ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ ಶ್ರೋತೆಯೊಂದಿಗೆ ಹೋಲಿಸಿ. ಹೊಂದಿಕೆಯಾಗದಿದ್ದರೆ ಎರಡನೇ ಶ್ರೋತೆ ಅಥವಾ ಎಲ್ಲೋ ಅನಿರೀಕ್ಷಿತವಾಗಿ ಪರಿಹರಿಸಲ್ಪಡುವ ಹೆಸರು ಎಂದರ್ಥ, ಮತ್ತು ಮುಂದಿನ ರೀಬೂಟ್ ನಿಮ್ಮ ಪರವಾಗಿ ನಿಮ್ಮ ಸರಿಪಡಿಸುವಿಕೆಯನ್ನು ಪರೀಕ್ಷಿಸುವ ಮೊದಲು ಎರಡನ್ನೂ ತಿಳಿಯುವುದು ಯೋಗ್ಯ. ನಂತರ ಯಾವುದೇ ಬಳಕೆದಾರ ಸೈನ್-ಇನ್ ಇಲ್ಲದೆ ಹೋಸ್ಟ್ ರೀಬೂಟ್ ಮಾಡಿ ಮತ್ತು ಬಂಧನ ಯಶಸ್ವಿಯಾದದ್ದನ್ನು ಖಚಿತಪಡಿಸಿ. ಆ ಒಂದೇ ಪರೀಕ್ಷೆಯೇ ಸರಿಪಡಿಸಿದ ಶ್ರೋತೆ ಮತ್ತು ಮುಂದಿನ ಪ್ಯಾಚ್ ರಾತ್ರಿ ವಿಫಲವಾಗುವ ತಾತ್ಕಾಲಿಕ ಪರಿಹಾರದ ನಡುವಿನ ವ್ಯತ್ಯಾಸ.