Dela via


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