Verwenden von PowerShell unter Windows zum Verwalten von SQL Server für Linux
Gilt für: SQL Server – Linux
In diesem Artikel werden SQL Server PowerShell und einige Beispiele zur Verwendung mit SQL Server für Linux vorgestellt. PowerShell für SQL Server wird derzeit unter Windows, macOS und Linux unterstützt. In diesem Artikel werden die Schritte zur Verwendung eines Windows-Computers zum Herstellen einer Verbindung mit einer SQL Server-Remoteinstanz unter Linux beschrieben.
Installieren der neuesten Version von SQL PowerShell für Windows
Das SQL PowerShell-Module für Windows wird im PowerShell-Katalog verwaltet. Wenn Sie mit SQL Server arbeiten, sollten Sie immer die neueste Version der PowerShell-Moduls „SqlServer“ verwenden.
Voraussetzungen
Informieren Sie sich über die bekannten Probleme von SQL Server für Linux.
Starten Sie PowerShell, und importieren Sie das Modul SqlServer.
Starten Sie zunächst PowerShell unter Windows. Drücken Sie auf Ihrem Windows-Computer WINDOWS+R, und geben Sie PowerShell ein, um eine neue Windows PowerShell-Sitzung zu starten.
SQL Server stellt ein PowerShell-Modul namens SqlServer bereit. Sie können das Modul SqlServer verwenden, um die SQL Server-Komponenten (SQL Server-Anbieter und -Cmdlets) in eine PowerShell-Umgebung oder ein PowerShell-Skript zu importieren.
Kopieren Sie den folgenden Befehl in die PowerShell-Eingabeaufforderung, um das Modul SqlServer in Ihre aktuelle PowerShell-Sitzung zu importieren:
Import-Module SqlServer
Geben Sie den folgenden Befehl in die PowerShell-Eingabeaufforderung ein, um zu überprüfen, ob das SqlServer-Modul ordnungsgemäß importiert wurde:
Get-Module -Name SqlServer
PowerShell sollte Informationen ähnlich der folgenden Ausgabe anzeigen:
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 21.1.18102 SqlServer {Add-SqlAvailabilityDatabase, Add-SqlAvailabilityGroupList...
Herstellen einer Verbindung mit SQL Server und Abrufen von Serverinformationen
Im Folgenden verwenden Sie PowerShell unter Windows, um eine Verbindung mit Ihrer SQL Server-Instanz unter Linux herzustellen und einige Servereigenschaften anzuzeigen.
Kopieren Sie die folgenden Befehle in die PowerShell-Eingabeaufforderung. Wenn Sie diese Befehle ausführen, führt PowerShell Folgendes aus:
- Ein Dialogfeld wird angezeigt, das Sie auffordert, den Hostnamen oder die IP-Adresse Ihrer Instanz einzugeben.
- Das Dialogfeld Bei Windows PowerShell anmelden wird angezeigt, das Sie auffordert, die Anmeldeinformationen einzugeben. Sie können Ihren SQL-Benutzernamen und Ihr SQL-Kennwort verwenden, um eine Verbindung mit Ihrer SQL Server-Instanz unter Linux herzustellen.
- Das Cmdlet Get-SqlInstance wird verwendet, um eine Verbindung mit dem Server herzustellen und einige Eigenschaften anzuzeigen.
Optional können Sie einfach die $serverInstance
-Variable durch die IP-Adresse oder den Hostnamen Ihrer SQL Server-Instanz ersetzen.
# 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 sollte Informationen ähnlich der folgenden Ausgabe anzeigen:
Instance Name Version ProductLevel UpdateLevel HostPlatform HostDistribution
------------- ------- ------------ ----------- ------------ ----------------
your_server_instance 14.0.3048 RTM CU13 Linux Ubuntu
Hinweis
Wenn für diese Werte nichts angezeigt wird, ist beim Herstellen einer Verbindung mit der SQL Server-Zielinstanz höchstwahrscheinlich ein Fehler aufgetreten. Stellen Sie sicher, dass Sie dieselben Verbindungsinformationen verwenden können, um eine Verbindung über SQL Server Management Studio herzustellen. Überprüfen Sie anschließend die Empfehlungen zur Verbindungsproblembehandlung.
Verwenden des SQL Server PowerShell-Anbieters
Die Verwendung des SQL Server PowerShell-Anbieters ist eine weitere Option zum Herstellen einer Verbindung mit Ihrer SQL Server-Instanz. Dieser Anbieter ermöglicht Ihnen die Navigation Ihrer SQL Server-Instanz über die Befehlszeile, als würden Sie in der Struktur im Objekt-Explorer navigieren. Dieser Anbieter wird standardmäßig als PSDrive (PowerShell-Laufwerk) namens SQLSERVER:\
dargestellt, das Sie verwenden können, um Verbindungen mit den für Ihr Domänenkonto zugänglichen SQL Server-Instanzen herzustellen und in diesen zu navigieren. Weitere Informationen zum Einrichten der Active Directory-Authentifizierung für SQL Server für Linux finden Sie in den Konfigurationsschritten.
Für den SQL Server PowerShell-Anbieter können Sie auch die SQL-Authentifizierung verwenden. Verwenden Sie hierzu das Cmdlet New-PSDrive
, um einen neuen PSDrive zu erstellen und die entsprechenden Anmeldeinformationen zum Herstellen einer Verbindung bereitzustellen.
Im folgenden Beispiel wird veranschaulicht, wie ein neues PSDrive mithilfe der SQL-Authentifizierung erstellt wird.
# 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
Sie können überprüfen, ob das Laufwerk erstellt wurde, indem Sie das Cmdlet Get-PSDrive
ausführen.
Get-PSDrive
Sobald Sie das neue PSDrive erstellt haben, können Sie darin navigieren.
dir SQLonDocker:\Databases
Nachstehend ist eine Beispielausgabe aufgeführt. Möglicherweise stellen Sie fest, dass die Ausgabe der Anzeige von SQL Server Management Studio (SSMS) im Datenbankknoten ähnelt. Es werden die Benutzerdatenbanken angezeigt, aber nicht die Systemdatenbanken.
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
Wenn Sie alle Datenbanken in Ihrer Instanz anzeigen müssen, bietet sich beispielsweise das Cmdlet Get-SqlDatabase an.
Untersuchen von SQL Server-Fehlerprotokollen
In den folgenden Schritten wird PowerShell unter Windows zum Untersuchen von Fehlerprotokollen zu Ihrer SQL Server-Instanz verwendet. Außerdem wird das Cmdlet Out-GridView verwendet, um Informationen aus den Fehlerprotokollen in einer Rasteransicht darzustellen.
Kopieren Sie die folgenden Befehle in die PowerShell-Eingabeaufforderung. Die Ausführung dieser Befehle kann einige Minuten dauern. Diese Befehle bewirken Folgendes:
- Ein Dialogfeld wird angezeigt, das Sie auffordert, den Hostnamen oder die IP-Adresse Ihrer Instanz einzugeben.
- Das Dialogfeld Bei Windows PowerShell anmelden wird angezeigt, das Sie auffordert, die Anmeldeinformationen einzugeben. Sie können Ihren SQL-Benutzernamen und Ihr SQL-Kennwort verwenden, um eine Verbindung mit Ihrer SQL Server-Instanz unter Linux herzustellen.
- Das Cmdlet Get-SqlErrorLog wird verwendet, um eine Verbindung mit der SQL Server-Instanz unter Linux herzustellen und die Fehlerprotokolle abzurufen, die seit gestern (Yesterday) aufgetreten sind.
- Die Ausgabe wird an das Cmdlet Out-GridView übergeben.
Alternativ dazu können Sie die $serverInstance
-Variable durch die IP-Adresse oder den Hostnamen Ihrer SQL Server-Instanz ersetzen.
# 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