Použití PowerShellu ve Windows ke správě SQL Serveru v Linuxu
platí pro:SQL Server – Linux
Tento článek představuje SQL Server PowerShellu a provede vás několika příklady, jak ho používat s SQL Serverem v Linuxu. Podpora PowerShellu pro SQL Server je aktuálně dostupná ve Windows, macOS, & Linuxu. Tento článek vás provede připojením ke vzdálené instanci SQL Serveru v Linuxu pomocí počítače s Windows.
Instalace nejnovější verze SQL PowerShellu ve Windows
Modul SQL Server PowerShellu na Windows je spravován v PowerShell Gallery. Při práci s SQL Serverem byste měli vždy použít nejnovější verzi modulu SqlServer PowerShell.
Než začnete
Přečtěte si známé problémy pro SQL Server na Linuxu.
Spuštění PowerShellu a import modulu sqlserveru
Začněme spuštěním PowerShellu ve Windows. Na počítači s Windows použijte Win+Ra zadejte PowerShell, abyste spustili novou relaci Windows PowerShell.
SQL Server poskytuje modul PowerShellu s názvem SqlServer. Modul SqlServer můžete použít k importu komponent SQL Serveru (zprostředkovatele a rutiny SQL Serveru) do prostředí PowerShellu nebo skriptu.
Zkopírujte následující příkaz na příkazovém řádku PowerShellu a naimportujte modul SqlServer do aktuální relace PowerShellu:
Import-Module SqlServer
Na příkazovém řádku PowerShellu zadejte následující příkaz a ověřte, že se správně naimportoval modul SqlServer:
Get-Module -Name SqlServer
PowerShell by měl zobrazit informace podobné následujícímu výstupu:
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 21.1.18102 SqlServer {Add-SqlAvailabilityDatabase, Add-SqlAvailabilityGroupList...
Připojení k SQL Serveru a získání informací o serveru
Pojďme se pomocí PowerShellu ve Windows připojit k instanci SQL Serveru v Linuxu a zobrazit několik vlastností serveru.
Na příkazovém řádku PowerShellu zkopírujte a vložte následující příkazy. Když spustíte tyto příkazy, PowerShell:
- Zobrazení dialogového okna s výzvou k zadání názvu hostitele nebo IP adresy vaší instance
- Zobrazí dialogové okno žádosti o přihlašovací údaje windows PowerShellu, ve kterém se zobrazí výzva k zadání přihlašovacích údajů. K připojení k instanci SQL Serveru v Linuxu můžete použít uživatelské jméno SQL a heslo SQL.
- Pomocí rutiny Get-SqlInstance se připojte k Serveru a zobrazte několik vlastností.
Volitelně můžete proměnnou $serverInstance
nahradit IP adresou nebo názvem hostitele vaší instance SQL Serveru.
# 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 by měl zobrazit informace podobné následujícímu výstupu:
Instance Name Version ProductLevel UpdateLevel HostPlatform HostDistribution
------------- ------- ------------ ----------- ------------ ----------------
your_server_instance 14.0.3048 RTM CU13 Linux Ubuntu
Poznámka
Pokud se pro tyto hodnoty nezobrazí nic, připojení k cílové instanci SQL Serveru s největší pravděpodobností selhalo. Ujistěte se, že pro připojení z aplikace SQL Server Management Studio můžete použít stejné informace o připojení. Pak si projděte doporučení pro řešení potíží s připojením .
Použití zprostředkovatele PowerShellu pro SQL Server
Další možností připojení k instanci SQL Serveru je použití poskytovatele SQL Server PowerShell. Tento zprostředkovatel umožňuje procházet instanci SQL Serveru podobně jako ve stromové struktuře v Průzkumníku objektů, ale na příkazovém řádku. Ve výchozím nastavení se tento poskytovatel zobrazí jako PSDrive s názvem SQLSERVER:\
, který můžete použít pro připojení a navigaci instancí SQL Serveru, ke kterým má váš účet domény přístup. Další informace o nastavení ověřování active directory pro SQL Server v Linuxu najdete v tématu Konfigurační kroky.
Můžete také použít ověřování SQL s poskytovatelem PowerShellu pro SQL Server. K tomu použijte rutinu New-PSDrive
k vytvoření nového PSDrivu a zadání správných přihlašovacích údajů pro připojení.
V tomto příkladu níže uvidíte jeden příklad vytvoření nového PSDrivu pomocí ověřování SQL.
# 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
Můžete ověřit, že byla jednotka vytvořena, spuštěním rutiny Get-PSDrive
.
Get-PSDrive
Jakmile vytvoříte nový PSDrive, můžete ho začít procházet.
dir SQLonDocker:\Databases
Takto může výstup vypadat. Můžete si všimnout, že výstup je podobný SQL Server Management Studio (SSMS) se zobrazí v uzlu Databáze. Zobrazí uživatelské databáze, ale ne systémové databáze.
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
Pokud potřebujete zobrazit všechny databáze ve vaší instanci, jednou z možností je použít rutinu Get-SqlDatabase.
Prozkoumání protokolů chyb SQL Serveru
Následující kroky používají PowerShell ve Windows ke zkoumání protokolů chyb na instanci SQL Serveru běžící na Linuxu. K zobrazení informací z protokolů chyb v zobrazení mřížky použijeme také rutinu Out-GridView.
Na příkazovém řádku PowerShellu zkopírujte a vložte následující příkazy. Může to trvat několik minut. Tyto příkazy dělají toto:
- Zobrazení dialogového okna s výzvou k zadání názvu hostitele nebo IP adresy vaší instance
- Zobrazí dialogové okno žádosti o přihlašovací údaje Windows PowerShellu, které vás vyzve k zadání přihlašovacích údajů. K připojení k instanci SQL Serveru v Linuxu můžete použít uživatelské jméno SQL a heslo SQL.
- Pomocí rutiny Get-SqlErrorLog se připojte k instanci SQL Serveru v Linuxu a načtěte protokoly chyb od Včera
- Přesměrovat výstup do rutiny Out-GridView
Volitelně můžete proměnnou $serverInstance
nahradit IP adresou nebo názvem hostitele vaší instance SQL Serveru.
# 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
Související obsah
- SQL Server PowerShellu
- rutiny sqlserveru