Använda PowerShell i Windows för att hantera SQL Server i Linux
gäller för:SQL Server – Linux
Den här artikeln beskriver SQL Server PowerShell- och beskriver några exempel på hur du använder den med SQL Server i Linux. PowerShell-stöd för SQL Server är för närvarande tillgängligt i Windows, macOS & Linux. Den här artikeln beskriver hur du använder en Windows-dator för att ansluta till en sql server-fjärrinstans i Linux.
Installera den senaste versionen av SQL PowerShell i Windows
Modulen SQL Server PowerShell i Windows finns i PowerShell-galleriet. När du arbetar med SQL Server bör du alltid använda den senaste versionen av SqlServer PowerShell-modulen.
Innan du börjar
Läs Kända problem för SQL Server i Linux.
Starta PowerShell och importera modulen sqlserver
Vi börjar med att starta PowerShell i Windows. Använd Win+Rpå din Windows-dator och skriv PowerShell- för att starta en ny Windows PowerShell-session.
SQL Server tillhandahåller en PowerShell-modul med namnet SqlServer. Du kan använda modulen SqlServer för att importera SQL Server-komponenterna (SQL Server-providern och cmdletarna) till en PowerShell-miljö eller ett PowerShell-skript.
Kopiera och klistra in följande kommando i PowerShell-prompten för att importera modulen SqlServer till din aktuella PowerShell-session:
Import-Module SqlServer
Skriv följande kommando i PowerShell-prompten för att kontrollera att modulen SqlServer importerades korrekt:
Get-Module -Name SqlServer
PowerShell bör visa information som liknar följande utdata:
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 21.1.18102 SqlServer {Add-SqlAvailabilityDatabase, Add-SqlAvailabilityGroupList...
Ansluta till SQL Server och hämta serverinformation
Nu ska vi använda PowerShell i Windows för att ansluta till SQL Server-instansen i Linux och visa ett par serveregenskaper.
Kopiera och klistra in följande kommandon i PowerShell-prompten. När du kör de här kommandona gör PowerShell följande:
- Visa en dialogruta som uppmanar dig att ange värdnamnet eller IP-adressen för din instans
- Visa dialogrutan Windows PowerShell-begäran om autentiseringsuppgifter, som uppmanar dig att ange autentiseringsuppgifterna. Du kan använda ditt SQL-användarnamn och SQL-lösenord för att ansluta till SQL Server-instansen i Linux
- Använd cmdleten Get-SqlInstance för att ansluta till Server- och visa några egenskaper
Du kan också ersätta variabeln $serverInstance
med IP-adressen eller värdnamnet för SQL Server-instansen.
# Prompt for instance & credentials to login into SQL Server
$serverInstance = Read-Host "Enter the name of your instance"
$credential = Get-Credential
# Connect to the Server and get a few properties
Get-SqlInstance -ServerInstance $serverInstance -Credential $credential
# done
PowerShell bör visa information som liknar följande utdata:
Instance Name Version ProductLevel UpdateLevel HostPlatform HostDistribution
------------- ------- ------------ ----------- ------------ ----------------
your_server_instance 14.0.3048 RTM CU13 Linux Ubuntu
Obs
Om inget visas för dessa värden misslyckades troligen anslutningen till SQL Server-målinstansen. Kontrollera att du kan använda samma anslutningsinformation för att ansluta från SQL Server Management Studio. Granska sedan felsökningsrekommendationerna för anslutning.
Använda SQL Server PowerShell-providern
Ett annat alternativ för att ansluta till SQL Server-instansen är att använda SQL Server PowerShell-providern. Med den här providern kan du navigera i SQL Server-instansen på liknande sätt som om du navigerade i trädstrukturen i Object Explorer, men på cmdline. Som standard visas den här providern som en PSDrive med namnet SQLSERVER:\
, som du kan använda för att ansluta och navigera i SQL Server-instanser som ditt domänkonto har åtkomst till. Mer information om hur du konfigurerar Active Directory-autentisering för SQL Server i Linux finns i Konfigurationssteg.
Du kan också använda SQL-autentisering med SQL Server PowerShell-providern. Det gör du genom att använda cmdleten New-PSDrive
för att skapa en ny PSDrive och ange rätt autentiseringsuppgifter för att ansluta.
I det här exemplet nedan visas ett exempel på hur du skapar en ny PSDrive med SQL-autentisering.
# NOTE: We are reusing the values saved in the $credential variable from the above example.
New-PSDrive -Name SQLonDocker -PSProvider SqlServer -Root 'SQLSERVER:\SQL\localhost,10002\Default\' -Credential $credential
Du kan bekräfta att enheten skapades genom att köra kommando-cmdleten Get-PSDrive
.
Get-PSDrive
När du har skapat din nya PSDrive kan du börja navigera i den.
dir SQLonDocker:\Databases
Så här kan utdata se ut. Du kanske märker att utdata liknar vad SQL Server Management Studio (SSMS) kommer att visa på noden Databaser. Den visar användardatabaserna, men inte systemdatabaserna.
Name Status Size Space Recovery Compat. Owner
Available Model Level
---- ------ ---- ---------- -------- ------- -----
AdventureWorks2022 Normal 209.63 MB 1.31 MB Simple 130 sa
AdventureWorksDW2022 Normal 167.00 MB 32.47 MB Simple 110 sa
AdventureWorksDW2022 Normal 188.00 MB 78.10 MB Simple 120 sa
AdventureWorksDW2022 Normal 172.00 MB 74.76 MB Simple 130 sa
AdventureWorksDW2022 Normal 208.00 MB 40.57 MB Simple 140 sa
Om du behöver se alla databaser på din instans är ett alternativ att använda cmdleten Get-SqlDatabase.
Granska SQL Server-felloggar
Följande steg använder PowerShell i Windows för att undersöka felloggar genom att ansluta till din SQL Server-instans på Linux. Vi använder även cmdleten Out-GridView för att visa information från felloggarna i en rutnätsvy.
Kopiera och klistra in följande kommandon i PowerShell-prompten. Det kan ta några minuter att köra dem. Dessa kommandon gör följande:
- Visa en dialogruta som uppmanar dig att ange värdnamnet eller IP-adressen för din instans
- Visa dialogrutan Windows PowerShell-begäran om autentiseringsuppgifter, som uppmanar dig att ange autentiseringsuppgifterna. Du kan använda ditt SQL-användarnamn och SQL-lösenord för att ansluta till SQL Server-instansen i Linux
- Använd cmdleten Get-SqlErrorLog för att ansluta till SQL Server-instansen i Linux och hämta felloggar sedan Igår
- Skicka utdata till cmdleten Out-GridView
Du kan också ersätta variabeln $serverInstance
med IP-adressen eller värdnamnet för SQL Server-instansen.
# Prompt for instance & credentials to login into SQL Server
$serverInstance = Read-Host "Enter the name of your instance"
$credential = Get-Credential
# Retrieve error logs since yesterday
Get-SqlErrorLog -ServerInstance $serverInstance -Credential $credential -Since Yesterday | Out-GridView
# done