Delen via


PowerShell in Windows gebruiken om SQL Server op Linux te beheren

Van toepassing op:SQL Server - Linux

In dit artikel maakt u kennis met SQL Server PowerShell en doorloopt u een aantal voorbeelden van het gebruik ervan met SQL Server in Linux. PowerShell-ondersteuning voor SQL Server is momenteel beschikbaar in Windows, macOS en Linux. Dit artikel helpt u bij het gebruik van een Windows-computer om verbinding te maken met een extern SQL Server-exemplaar in Linux.

De nieuwste versie van SQL PowerShell installeren in Windows

De SQL Server PowerShell-module in Windows wordt onderhouden in de PowerShell Gallery. Wanneer u met SQL Server werkt, moet u altijd de meest recente versie van de SqlServer PowerShell-module gebruiken.

Voordat u begint

Lees de bekende problemen voor SQL Server in Linux.

PowerShell starten en de sqlserver module importeren

Laten we beginnen met het starten van PowerShell in Windows. Gebruik Win+R op uw Windows-computer en typ PowerShell om een nieuwe Windows PowerShell-sessie te starten.

SQL Server biedt een PowerShell-module met de naam SqlServer. U kunt de module SqlServer gebruiken om de SQL Server-onderdelen (SQL Server-provider en cmdlets) te importeren in een PowerShell-omgeving of -script.

Kopieer en plak de volgende opdracht in de PowerShell-prompt om de SqlServer-module te importeren in uw huidige PowerShell-sessie:

Import-Module SqlServer

Typ de volgende opdracht in de PowerShell-prompt om te controleren of de SqlServer--module correct is geïmporteerd:

Get-Module -Name SqlServer

PowerShell moet informatie weergeven die vergelijkbaar is met de volgende uitvoer:

ModuleType Version    Name          ExportedCommands
---------- -------    ----          ----------------
Script     21.1.18102 SqlServer     {Add-SqlAvailabilityDatabase, Add-SqlAvailabilityGroupList...

Verbinding maken met SQL Server en servergegevens ophalen

We gaan PowerShell in Windows gebruiken om verbinding te maken met uw SQL Server-exemplaar in Linux en een aantal servereigenschappen weer te geven.

Kopieer en plak de volgende opdrachten bij de PowerShell-prompt. Wanneer u deze opdrachten uitvoert, doet PowerShell het volgende:

  • Een dialoogvenster weergeven waarin u wordt gevraagd om de hostnaam of het IP-adres op te geven van uw exemplaar
  • Het dialoogvenster windows PowerShell-referentieaanvraag weergeven, waarin u om de referenties wordt gevraagd. U kunt uw SQL-gebruikersnaam en SQL-wachtwoord gebruiken om verbinding te maken met uw SQL Server-exemplaar in Linux
  • Gebruik de cmdlet Get-SqlInstance om verbinding te maken met de Server- en enkele eigenschappen weer te geven

U kunt desgewenst de $serverInstance variabele vervangen door het IP-adres of de hostnaam van uw SQL Server-exemplaar.

# 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 moet informatie weergeven die vergelijkbaar is met de volgende uitvoer:

Instance Name                   Version    ProductLevel UpdateLevel  HostPlatform HostDistribution
-------------                   -------    ------------ -----------  ------------ ----------------
your_server_instance            14.0.3048  RTM          CU13         Linux        Ubuntu

Opmerking

Als er niets wordt weergegeven voor deze waarden, is de verbinding met het SQL Server-doelexemplaar waarschijnlijk mislukt. Zorg ervoor dat u dezelfde verbindingsgegevens kunt gebruiken om verbinding te maken vanuit SQL Server Management Studio. Bekijk vervolgens de aanbevelingen voor het oplossen van verbindingsproblemen.

De SQL Server PowerShell-provider gebruiken

Een andere optie voor het maken van verbinding met uw SQL Server-exemplaar is het gebruik van de SQL Server PowerShell Provider. Met deze provider kunt u door een SQL Server-exemplaar navigeren, vergelijkbaar met het navigeren in de boomstructuur van Objectverkenner, maar dan op de opdrachtregel. Deze provider wordt standaard weergegeven als een PSDrive-naam SQLSERVER:\, die u kunt gebruiken om verbinding te maken en door SQL Server-exemplaren te navigeren waartoe uw domeinaccount toegang heeft. Zie Configuratiestappen voor meer informatie over het instellen van Active Directory-verificatie voor SQL Server in Linux.

U kunt ook SQL-verificatie gebruiken met de SQL Server PowerShell-provider. Gebruik hiervoor de New-PSDrive cmdlet om een nieuwe PSDrive te maken en de juiste referenties op te geven om verbinding te maken.

In dit voorbeeld hieronder ziet u een voorbeeld van het maken van een nieuwe PSDrive met behulp van SQL-verificatie.

# 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

U kunt bevestigen dat het station is aangemaakt door de cmdlet Get-PSDrive uit te voeren.

Get-PSDrive

Nadat u uw nieuwe PSDrive hebt gemaakt, kunt u beginnen met navigeren.

dir SQLonDocker:\Databases

Hier ziet u hoe de uitvoer eruit kan zien. Mogelijk ziet u dat de uitvoer vergelijkbaar is met wat in SQL Server Management Studio (SSMS) wordt weergegeven in het knooppunt Databases. De gebruikersdatabases worden weergegeven, maar niet de systeemdatabases.

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

Als u alle databases in uw exemplaar wilt zien, kunt u de Cmdlet Get-SqlDatabase gebruiken.

Foutenlogboeken van SQL Server onderzoeken

In de volgende stappen wordt PowerShell in Windows gebruikt om foutenlogboeken te onderzoeken die verbinding maken met uw SQL Server-exemplaar in Linux. We gebruiken ook de cmdlet Out-GridView om informatie uit de foutenlogboeken in een rasterweergave weer te geven.

Kopieer en plak de volgende opdrachten bij de PowerShell-prompt. Het kan enkele minuten duren voordat ze zijn afgerond. Deze opdrachten doen het volgende:

  • Een dialoogvenster weergeven waarin u wordt gevraagd om de hostnaam of het IP-adres op te geven van uw exemplaar
  • Het dialoogvenster windows PowerShell-referentieaanvraag weergeven, waarin u om de referenties wordt gevraagd. U kunt uw SQL-gebruikersnaam en SQL-wachtwoord gebruiken om verbinding te maken met uw SQL Server-exemplaar in Linux
  • Gebruik de cmdlet Get-SqlErrorLog om verbinding te maken met het SQL Server-exemplaar in Linux en foutenlogboeken op te halen sinds Gisteren
  • De uitvoer doorsluisen naar de Out-GridView-cmdlet

U kunt de variabele $serverInstance desgewenst vervangen door het IP-adres of de hostnaam van uw SQL Server-exemplaar.

# 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