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"
ఆ చిరునామాను మీరు కాన్ఫిగర్ చేసిన శ్రోతతో పోల్చండి. సరిపోలకపోవడం అంటే రెండవ శ్రోత లేదా ఎక్కడో ఊహించని విధంగా పరిష్కరించబడే పేరు, మరియు తదుపరి రీబూట్ మీ తరఫున మీ సరిదిద్దడాన్ని పరీక్షించే ముందు రెండింటినీ తెలుసుకోవడం విలువైనది. తర్వాత ఏ వినియోగదారు సైన్-ఇన్ లేకుండా హోస్ట్ను రీబూట్ చేసి బైండింగ్ విజయవంతమైందని నిర్ధారించండి. ఆ ఒక్క పరీక్షే మరమ్మతు చేసిన శ్రోత మరియు తదుపరి ప్యాచ్ రాత్రి విఫలమయ్యే తాత్కాలిక పరిష్కారం మధ్య వ్యత్యాసం.