Mae SQL Server yn rhwymo cyfeiriad VPN nad yw’n bodoli wrth gychwyn
Cerddwch drwy rwymiad SQL Server sydd wedi methu o’r log cychwyn i’r gwrandawr effeithiol, yna rhowch gyfeiriad preifat sefydlog i gleientiaid yn lle cyfeiriad cronfa VPN.
Darllenwch linell log SQL Server am rwymiad sydd wedi methu tra bo’r gwasanaeth yn dal i redeg, ac rydych wedi dod o hyd i ddibyniaeth ar drefn cychwyn yn hytrach na chwalfa. Y cyfuniad hwnnw yw’r cliw: cychwynnodd yr injan cyn i’r cyfeiriad y dywedwyd wrthi am wrando arno fodoli ar y peiriant. Mae addasydd VPN sy’n codi ar ôl mewngofnodi yn rhag-amod gwael ar gyfer gwasanaeth cronfa ddata heb oruchwyliaeth, felly cerddwch y methiant yn y drefn y mae’r injan yn ei gweld.
Dechreuwch yn y log cychwyn, nid gyda’r cleient
Agorwch log gwallau’r achos a darllen y cofnodion o amgylch cychwyn y rhwydwaith, nid y llinell olaf yn unig. Mae’r injan yn adrodd pa gyfeiriadau y gwnaeth gynnig arnynt a pha brotocolau a alluogwyd ganddi, ac mae’r cofnod hwnnw o flaen unrhyw gleient yn cysylltu. Nawr edrychwch ar yr hyn sy’n bodoli ar y gwesteiwr ar hyn o bryd. Os yw’r rhyngwyneb sy’n berchen ar y cyfeiriad wedi’i ffurfweddu yn ymddangos dim ond ar ôl i ddefnyddiwr fewngofnodi a dechrau cleient, roedd y cyfeiriad yn absennol wrth gychwyn ac mae’r methiant rhwymo wedi’i egluro’n llawn.
Get-NetIPAddress -AddressFamily IPv4 | Select-Object InterfaceAlias, IPAddress, PrefixOrigin
Get-Content 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\LOG\ERRORLOG' -Tail 40
Addaswch lwybr yr achos at eich gosodiad, a darllenwch y rhestr rhyngwynebau cyn dod i gasgliadau. Mae cyfeiriad sy’n bodoli ond sy’n eiddo i’r addasydd anghywir yn broblem wahanol i gyfeiriad nad yw’n bodoli eto.
Cerddwch y drefn rwymo y mae’r injan yn ei dilyn mewn gwirionedd
Mae’r injan yn darllen ei ffurfweddiad gwrandawr, yna’n gofyn i’r system weithredu rwymo. Os nad yw’r cyfeiriad yn lleol ar y foment honno, mae’r rhwymiad yn methu ar gyfer y cyfeiriad hwnnw tra gall gweddill yr achos barhau’n normal. Dyna pam y gall protocolau eraill neu gyfeiriadau eraill weithio o hyd, a dyna pam mai “mae SQL Server i lawr” yw’r crynodeb anghywir. Cadwch y pwynt terfynol union o’r log: cyfeiriad, porth a phrotocol, oherwydd mae’r atgyweiriad yn dibynnu ar ba un o’r tri sydd o’i le.
Bydd ailgychwyn y gwasanaeth ar ôl i’r addasydd ymddangos fel arfer yn gwneud i’r gwrandawr lwyddo, a dyna’n union y trap. Mae’n profi’r ddibyniaeth yn hytrach na’i dileu, ac mae’n torri pob defnyddiwr cysylltiedig bob tro y bydd y twnnel yn ailgysylltu.
Darllenwch y gwrandawr fel y mae’r injan yn ei ddarllen
Yn SQL Server Configuration Manager, agorwch briodweddau TCP/IP yr achos a nodwch y gosodiad Listen All cyn golygu cyfeiriadau unigol. Pan fo Listen All yn Yes, anwybyddir y gwerthoedd Enabled fesul cyfeiriad, felly nid yw eu golygu’n newid dim y mae’r gwrandawr yn ei ddefnyddio. Cofnodwch dri pheth yn eu trefn: y cyfeiriad rydych am ei wasanaethu, y porth, ac a yw’r gwrandawr i fod i gynnwys pob cyfeiriad neu un yn unig. Yna cymhwyswch y newid trwy’r weithdrefn ailgychwyn a gefnogir a darllenwch y log cychwyn nesaf i gadarnhau bod yr injan wedi rhwymo’r hyn y gwnaethoch ofyn amdano.
Nid rheolaeth mynediad yw gwrando ar bob cyfeiriad. Os oes gwir angen gwrandawr eang, mae angen ei benderfyniad wal dân a chymeradwyaeth cronfa ddata ei hun ar bob rhyngwyneb y gellir ei gyrraedd, gan gynnwys unrhyw ryngwyneb sy’n wynebu’r rhyngrwyd.
Rhowch gyrchfan sefydlog i’r cleient
Nid oes angen i’r cleient i westeiwr y gronfa ddata wisgo cyfeiriad cronfa. Mae dyluniad wedi’i lwybro yn gweithio gyda’r gweinydd yn gwrando ar ei gyfeiriad preifat sefydlog tra bo’r porth VPN yn anfon traffig y cleient ato ac yn cario’r ateb yn ôl.
Test-NetConnection -ComputerName 10.80.0.15 -Port 1433
tracert -d 10.80.0.15
Os yw’r cleient yn cyrraedd 10.80.0.15, mae’r llwybr wedi’i brofi a does gan y gronfa ddata ond awdurdodi’r cleient hwnnw. Os nad yw, trwsiwch y llwybro a’r DNS cyn cyffwrdd â’r gwrandawr eto, oherwydd nid problem rwymo ar y gweinydd oedd y rheswm erioed na all cleient ddod o hyd iddo. Mae ychwanegu cyfeiriad cronfa ffug at y gweinydd, neu ail borth rhagosodedig i wneud y gwrandawr yn hapus, yn creu problem rwydwaith newydd ar ben yr hen un. Cadwch gyfeiriad y gweinydd yn statig a gadewch i’r twnnel ddod â chleientiaid ato.
Gwiriwch y pwynt terfynol a ddefnyddiodd y cleient
Gorffenwch â gwiriad ar lefel cymhwysiad yn hytrach na phrawf porth. Cysylltwch o’r cleient â’r cyfrif y mae’r cymhwysiad yn ei ddefnyddio a darllenwch fanylion y cysylltiad ar ochr y gweinydd, sy’n dangos y cyfeiriad lleol y glaniodd eich sesiwn arno.
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"
Cymharwch y cyfeiriad hwnnw â’r gwrandawr a ffurfweddwyd gennych. Mae anghysondeb yn golygu ail wrandawr neu enw’n datrys yn rhywle annisgwyl, ac mae’r ddau’n werth eu gwybod cyn i’r ailgychwyn nesaf brofi eich atgyweiriad drosoch. Yna ailgychwynnwch y gwesteiwr heb unrhyw ddefnyddiwr wedi mewngofnodi a chadarnhau bod y rhwymiad yn llwyddo. Mae’r un prawf hwnnw’n wahanol rhwng gwrandawr wedi’i atgyweirio a chyfyngwaith sy’n methu ar y noson glytiau nesaf.