Sdílet prostřednictvím


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