SQLShack (Dansk)

Denne artikel er nyttig for en nybegynder i SQL Server-administration og giver indsigt i SQL Server-porte, metoderne til at identificere aktuelt konfigurerede porte.

Introduktion

Vi kan definere porten som et slutpunkt for tjenesten til kommunikationsformål. Det kan binde sig til en bestemt applikation eller tjeneste. Når vi har installeret SQL Server, konfigurerer den standardporte til SQL Server-tjenester. Hver klientapplikation bruger kombinationen af IP-adresser og portnummer til at oprette forbindelse til SQL Server.

Vi kan have to slags SQL Server-porte i SQL Server.

  1. Statisk port : En statisk port er altid bundet til en tjeneste eller applikation. Det ændres ikke på grund af en tjeneste eller genstart af systemet. Som standard bruger SQL Server statisk TCP-portnummer 1433 til standardinstansen MSSQLSERVER. Hvis du konfigurerer SQL Server til at bruge en anden statisk port end standardporten, skal du kommunikere den til klienterne eller applikationsejere, der skal angives i forbindelsesstrengen
  2. Dynamisk port: Du kan konfigurere SQL Server til at bruge en dynamisk port. Hvis du bruger dynamisk portallokering, angiver du portnummer nul i netværkskonfigurationen. Når SQL Service genstartes, anmoder den om et gratis portnummer fra operativsystemet og tildeler den port til SQL Server.

    Som du ved, bruger applikationen en kombination af SQL Server IP-adresse og portnummer. Du kan måske tænke på et spørgsmål – Hvordan vil en applikation kende portnummeret til at oprette forbindelse til SQL Server?

Når operativsystemet tildeler en dynamisk SQL Server-port til SQL Server, skriver det portnummeret i Windows-registreringsdatabasen. SQL Server Browser-tjeneste bruger UDP-statisk port 1434. Den læser registreringsdatabasen for den tildelte TCP-port. SQL Server-klientbibliotek forbinder og sender en UDP-besked ved hjælp af port 1434. SQL Server Browser-tjenesten giver portnummeret for en bestemt forekomst tilbage. Et program kan oprette forbindelse til SQL Server ved hjælp af den dynamiske SQL Server-port. SQL Server-standardinstans bruger den statiske port; Derfor returnerer SQL Server Browser ikke port til standardforekomsten.

I de fleste tilfælde bruger SQL Server den samme dynamik som SQL Server Port ved genstart af SQL Service. Antag at du stoppede SQL Services og operativsystem tildelte det dynamiske portnummer (tidligere tildelt til SQL) til en anden tjeneste, SQL Server får en anden dynamisk port tildelt det.

SQL Browser-service er vigtig for de navngivne forekomster med dynamisk portallokering . Det skal være i kørende status, så applikationen kan spørge og få portoplysningerne.

Kontroller SQL Server-portnummer

I dette afsnit kontrollerer vi en anden metode for at kontrollere SQL Server-portnummeret.

Metode 1: SQL Server Configuration Manager:

Det er den mest almindelige metode at finde SQL Server-portnummeret.

  • Trin 1:

    Åbn SQL Server Configuration Manager fra startmenuen. Hvis du har flere SQL Server-versioner, får du muligvis en fejlmeddelelse, mens du åbner SQL Server Configuration Manager:

    Kan ikke oprette forbindelse til WMI-udbyderen. Du har ikke tilladelse, eller serveren kan ikke nås

    For at rette det skal du åbne den administrative kommandoprompt og udføre følgende kommando

    1

    > mofcomp “% programfiler (x86 )% \ Microsoft SQL Server \ 150 \ Shared \ sqlmgmproviderxpsp2up.mof “

    I denne kommando skal du ændre SQL Server-versionen

    • SQL 2008 – 100
    • SQL 2012 – 110
    • SQL 2014 – 120
    • SQL2016 – 130
    • SQL 2017 – 140
    • SQL 2019 – 150

  • Trin 2:

    Gå til Netværkskonfiguration, klik på den SQL-forekomst, som du vil kontrollere SQL-port for

  • Trin 3:

    Det åbner listen over protokoller. Højreklik på TCP / IP og egenskaber

  • Trin 4: Klik på IP-adresser og rul ned til IPAll gruppe. Du kan se TCP dynamiske SQL-porte og TCP-port i det følgende skærmbillede.

    TCP dynamiske porteværdi viser, at vi bruger konfiguration af dynamisk porte. Den nuværende tildelte TCP dynamiske SQL-port er 51688.

    Hvis vi vil bruge en statisk port, skal du fjerne den dynamiske portværdi og angive en statisk port i TCP-porten. Dette portnummer skal være entydigt og bruges ikke af andre applikationer. Du skal genstarte SQL Services for at gøre denne ændring effektiv

    • Bemærk: Du skal kun ændre SQL Server Port-konfigurationen ved hjælp af SQL Server Configuration Manager.

Metode 2: SQL-serverfejllogfiler:

SQL Server logger en post i SQL Server-fejllogfiler ved hver genstart af SQL Tjenester. Vi kan bruge udvidet lagret procedure xp_readerrorlog til at filtrere fejlloggen ved hjælp af et bestemt nøgleord.

Den følgende forespørgsel bruger udvidet lagret procedure xp_readerrorlog til at kontrollere for serveren lytter til et nøgleord.

1
2
3

EXEC xp_ReadErrorLog 0, 1, N “Server lytter”, N “any”, NULL, NULL, “DESC”
GO

Du får detaljerne i den SQL Server-port, som den aktuelle SQL Server-instans er konfigureret på.

  • Bemærk: Hvis du regelmæssigt genbruger fejllogfiler, kan du muligvis ikke finde SQL Server-port ved hjælp af denne metode.

Metode 3: Få SQL Server-port fra registreringsdatabasen ved hjælp af xp_instance_regread:

Vi kan bruge en udvidet lagret procedure til at få SQL Port-værdien. Udfør følgende kode i SSMS for at få en dynamisk port til den aktuelt tilsluttede SQL-forekomst.

Vi kan bruge @ Value_name = TcpPort til at få detaljer om den statiske port.

Metode 4: Få SQL Server-port ved at bruge sys.dm_exec_connections DMV:

Vi kan bruge sys.dm_exec_connections DMV til at kontrollere TCP-porten for den tilsluttede SQL Server-forekomst. Vi bruger @@ SPID-variablen til at returnere den aktuelle session SP ID.

1
2
3
4

VÆLG local_tcp_port
FRA sys. dm_exec_connections
WHERE session_id = @@ SPID;
GO

Metode 5: Få SQL Server-port ved at bruge Windows Event Viewer:

Vi kan også bruge Windows Event Viewer til at kontrollere SQL Serverportoplysninger. Når vi genstarter SQL Services, får Windows Event Viewer også en post til SQL Port. Windows Event Viewer kan have et stort antal begivenheder. Det er bedre at filtrere hændelseslogfiler til hændelses-id 26022.

Gå til Kør og skriv eventvwr. Det åbner Windows Event Viewer-konsollen. Klik på – Filtrer nuværende log.

Angiv hændelses-id 26022 og klik på OK

Begivenhedsvisningen viser begivenheder for alle installerede SQL-servere på serverne. Du kan se efter en bestemt forekomst og tjekke for portnummeret.

Du kan også vælge en bestemt SQL-forekomst i rullelisten med begivenhedskilder.

I det følgende skærmbillede kan vi se en post af SQL Server Port i Windows-begivenhedsfremviser.

Konklusion

I denne artikel undersøgte vi og identificerede metoder til at kontrollere SQL Server-porte og ændre den statiske og dynamiske portkonfiguration. Hvis du har kommentarer eller spørgsmål, er du velkommen til at efterlade dem i kommentarerne nedenfor.

  • Forfatter
  • Seneste indlæg
Som MCSA-certificeret og Microsoft-certificeret træner i Gurgaon, Indien, med 13 års erfaring, arbejder Rajendra for en række store virksomheder med fokus på ydeevneoptimering, overvågning, høj tilgængelighed , og katastrofegendannelsesstrategier og implementering. Han er forfatter til hundredvis af autoritative artikler om SQL Server, Azure, MySQL, Linux, Power BI, Performance tuning, AWS / Amazon RDS, Git og relaterede teknologier, der er blevet set af over 10m læsere til dato.
Han er skaberen af en af de største gratis online samlinger af artikler om et enkelt emne med sin 50-dels serie om SQL Server Always On Availability Groups. Baseret på hans bidrag til SQL Server-samfundet er han blevet anerkendt med forskellige priser, herunder den prestigefyldte “Årets bedste forfatter” kontinuerligt i 2020 og 2021 hos SQLShack.
Raj er altid interesseret i nye udfordringer, så hvis du har brug for rådgivning hjælp til ethvert emne, der er dækket af hans skrifter, kan han nås på [email protected]
Se alle indlæg af Rajendra Gupta

Seneste indlæg af Rajendra Gupta (se alle)
  • Sessionstimeouts i SQL Server Always On Availability Groups – 8. februar 2021
  • Udførelse af mindre og større versionopgraderinger til AWS RDS SQL Server – 29. januar 2021
  • Implementering af AWS RDS PostgreSQL-forekomster – 27. januar 2021

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *