Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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