Megosztás a következőn keresztül:


A Linuxon futó PowerShell használata az SQL Server linuxos kezeléséhez

A következőkre vonatkozik:SQL Server – Linux

Ez a cikk bemutatja az SQL Server PowerShellt , és bemutat néhány példát arra, hogyan használható a MacOS-en és Linuxon futó PowerShell-lel. A PowerShell mostantól nyílt forráskódú projekt a GitHubon.

További információ a Windows PowerShellről: Mi a Windows PowerShell?

Platformfüggetlen szerkesztő beállításai

A PowerShellhez tartozó alábbi lépések mindegyike normál terminálon működik, vagy futtathatja őket a Visual Studio Code vagy az Azure Data Studio termináljáról. A VS Code és az Azure Data Studio macOS és Linux rendszeren is elérhető. További információ az Azure Data Studióról: Rövid útmutató: Az Azure Data Studio használata az SQL Servercsatlakoztatásához és lekérdezéséhez. Érdemes lehet megfontolni az Azure Data StudioPowerShell-szerkesztő támogatásának használatát is.

A PowerShell telepítése

A PowerShell különböző támogatott és kísérleti platformokon való telepítéséről az alábbi cikkekben talál további információt:

Az SqlServer modul telepítése

A SqlServer modult a PowerShell Gallerytartja karban. Az SQL Server használatakor mindig a PowerShell-modul legújabb verzióját SqlServer kell használnia.

A SqlServer modul telepítéséhez nyisson meg egy PowerShell-munkamenetet, és futtassa a következő kódot:

Install-Module -Name SqlServer

A modul PowerShell-katalógusból való telepítésével SqlServer kapcsolatos további információkért lásd az SQL Server PowerShell-modul telepítését ismertető témakört.

Az SqlServer modul használata

Kezdjük a PowerShell elindításával. Ha macOS vagy Linux rendszeren van, nyisson meg egy terminál munkamenetet a számítógépen, és írja be pwsh az új PowerShell-munkamenet elindításához. Windows rendszeren használja a Win+R-t, és írjon be pwsh egy új PowerShell-munkamenetet.

pwsh

Az SQL Server egy PowerShell-modult biztosít .SqlServer A SqlServer modul használatával importálhatja az SQL Server-összetevőket (SQL Server-szolgáltató és parancsmagok) Egy PowerShell-környezetbe vagy szkriptbe.

Másolja és illessze be a következő parancsot a PowerShell-parancssorba a SqlServer modul importálásához az aktuális PowerShell-munkamenetbe:

Import-Module SqlServer

A SqlServer modul megfelelő importálásának ellenőrzéséhez írja be a következő parancsot a PowerShell-parancssorba:

Get-Module -Name SqlServer

A PowerShellnek az alábbi kimenethez hasonló információkat kell megjelenítenie:

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

Csatlakozás az SQL Serverhez és a kiszolgáló adatainak lekérése

Az alábbi lépések a PowerShell használatával csatlakoznak a Linuxon futó SQL Server-példányhoz, és megjelenítenek néhány kiszolgálótulajdonságot.

Másolja és illessze be a következő parancsokat a PowerShell-parancssorba. A parancsok futtatásakor a PowerShell a következőt fogja:

  • Megjelenik egy párbeszédpanel, amely megkéri a példány állomásnevét vagy IP-címét.
  • A PowerShell hitelesítőadat-kérés párbeszédpanel megjelenítése, amely a hitelesítő adatok megadását kéri. A SQL-felhasználónév és SQL-jelszó használatával csatlakozhat a Linuxon futó SQL Server-példányhoz
  • Get-SqlInstance A parancsmaggal csatlakozhat a Server parancsmaghoz, és megjeleníthet néhány tulajdonságot

Igény szerint egyszerűen lecserélheti a $serverInstance változót az SQL Server-példány IP-címére vagy állomásnevére.

# 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 return a few properties
Get-SqlInstance -ServerInstance $serverInstance -Credential $credential
# done

A PowerShellnek az alábbi kimenethez hasonló információkat kell megjelenítenie:

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

Jegyzet

Ha ezekhez az értékekhez semmi sem jelenik meg, a cél SQL Server-példányhoz való kapcsolódás valószínűleg meghiúsult. Győződjön meg arról, hogy ugyanazokat a kapcsolati információkat használhatja az SQL Server Management Studióból való csatlakozáshoz. Ezután tekintse át a kapcsolat hibaelhárítási javaslatait.

Az SQL Server PowerShell-szolgáltató használata

Az SQL Server-példányhoz való csatlakozás másik lehetősége az SQL Server PowerShell-szolgáltatóhasználata. A szolgáltató használatával úgy navigálhat az SQL Server-példányon, mintha az Object Explorerben, de a parancsmagon navigálna a faszerkezeten. Alapértelmezés szerint ez a szolgáltató egy SQLSERVER:\nevű PSDrive-ként jelenik meg, amelyhez csatlakozhat, & olyan SQL Server-példányok között navigálhat, amelyekhez a tartományfiókja rendelkezik hozzáféréssel. Lásd a konfigurációs lépéseket, ahol információt talál arról, hogyan állítható be az Active Directory-hitelesítés a Linuxos SQL Serverhez.

SQL-hitelesítést az SQL Server PowerShell-szolgáltatóval is használhat. Ehhez a New-PSDrive parancsmaggal hozzon létre egy új PSDrive-t, és adja meg a megfelelő hitelesítő adatokat a csatlakozáshoz.

Az alábbi példában egy példát láthat arra, hogyan hozhat létre új PSDrive-t SQL-hitelesítéssel.

# 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

A Get-PSDrive parancsmag futtatásával ellenőrizheti, hogy a meghajtó létrejött-e.

Get-PSDrive

Miután létrehozta az új PSDrive-ot, megkezdheti a navigálást.

dir SQLonDocker:\Databases

Így nézhet ki a kimenet. Előfordulhat, hogy ez a kimenet hasonló ahhoz, amit az SQL Server Management Studio (SSMS) az Adatbázisok csomóponton jelenít meg. Megjeleníti a felhasználói adatbázisokat, a rendszeradatbázisokat azonban nem.

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

Ha az összes adatbázist látnia kell a példányon, az egyik lehetőség a Get-SqlDatabase parancsmag használata.

Adatbázisok lekérése

Fontos ismerni a Get-SqlDatabasecmdletet. Számos olyan művelethez, amely adatbázist vagy adatbázison belüli objektumokat tartalmaz, a Get-SqlDatabase parancsmag használható. Ha a -ServerInstance és -Database paraméterek értékeit is megadja, a rendszer csak azt az adatbázis-objektumot kéri le. Ha azonban csak a -ServerInstance paramétert adja meg, a rendszer visszaadja az adott példány összes adatbázisának teljes listáját.

# NOTE: We are reusing the values saved in the $credential variable from the above example.

# Connect to the Instance and retrieve all databases
Get-SqlDatabase -ServerInstance ServerB -Credential $credential

Íme egy példa a Get-SqlDatabase parancs által visszaadott eredményre:

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.88 MB Simple       130 sa
AdventureWorksDW2022 Normal      208.00 MB   40.63 MB Simple       140 sa
master               Normal        6.00 MB  600.00 KB Simple       140 sa
model                Normal       16.00 MB    5.70 MB Full         140 sa
msdb                 Normal       15.50 MB    1.14 MB Simple       140 sa
tempdb               Normal       16.00 MB    5.49 MB Simple       140 sa

AZ SQL Server hibanaplóinak vizsgálata

Az alábbi lépések a PowerShell használatával vizsgálják meg a Linuxon futó SQL Server-példányon található hibanaplókat.

Másolja és illessze be a következő parancsokat a PowerShell-parancssorba. Ez eltarthat néhány percig. Ezek a parancsok a következő lépéseket hajtják végre:

  • Megjelenik egy párbeszédpanel, amely megkéri a példány állomásnevét vagy IP-címét.
  • Az PowerShell hitelesítőadat-kérésének párbeszédpanel megjelenítése, amely a hitelesítő adatok megadását kéri. A SQL-felhasználónév és SQL-jelszó használatával csatlakozhat a Linuxon futó SQL Server-példányhoz
  • Get-SqlErrorLog A parancsmaggal csatlakozhat a Linuxon futó SQL Server-példányhoz, és lekérheti a hibanaplókat.Yesterday

Igény szerint lecserélheti a $serverInstance változót az SQL Server-példány IP-címére vagy állomásnevére.

# 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
# done

A PowerShellben jelenleg elérhető parancsmagok felfedezése

Bár az SqlServer modul jelenleg 109 parancsmaggal rendelkezik a Windows PowerShellben, a 109-ből csak 62 érhető el a PowerShellben. Az alábbiakban a jelenleg elérhető 62 parancsmag teljes listája található. Az SqlServer modul összes parancsmagjának részletes dokumentációját az SqlServer parancsmag-referenciacímű cikkben találja.

Az alábbi parancs a használt PowerShell-verzióban elérhető összes parancsmagot mutatja be.

Get-Command -Module SqlServer -CommandType Cmdlet |
Sort-Object -Property Noun |
Select-Object Name
  • ConvertFrom-EncodedSqlName
  • ConvertTo-EncodedSqlName
  • Get-SqlAgent
  • Get-SqlAgentJob
  • Get-SqlAgentJobHistory (SQL ügynök feladat történet lekérdezése)
  • Get-SqlAgentJobSchedule
  • Get-SqlAgentJobStep
  • Get-SqlAgentSchedule
  • Invoke-SqlAssessment
  • Get-SqlAssessmentItem
  • Remove-SqlAvailabilityDatabase
  • Resume-SqlAvailabilityDatabase
  • Add-SqlAvailabilityDatabase
  • Suspend-SqlAvailabilityDatabase
  • Új-SQL-ElérhetőségiCsoport
  • Set-SqlAvailabilityGroup
  • SqlElérhetőségiCsoportEltávolítása
  • Switch-SqlAvailabilityGroup
  • Join-SqlAvailabilityGroup
  • Revoke-SqlAvailabilityGroupCreateAnyDatabase
  • Grant-SqlElérhetőségiCsoportLétrehozniBármilyenAdatbázist
  • New-SqlAvailabilityGroupListener
  • Set-SqlAvailabilityGroupListener
  • Add-SqlAvailabilityGroupListenerStaticIp
  • Set-SqlAvailabilityReplica
  • Remove-SqlAvailabilityReplica
  • New-SqlAvailabilityReplica
  • Set-SqlAvailabilityReplicaRoleToSecondary
  • New-SqlBackupEncryptionOption
  • Get-SqlBackupHistory
  • Invoke-Sqlcmd
  • New-SqlCngColumnMasterKeySettings
  • Remove-SqlColumnEncryptionKey
  • Get-SqlColumnEncryptionKey
  • Remove-SqlColumnEncryptionKeyValue
  • Add-SqlColumnEncryptionKeyValue
  • SqlOszlopMesterKulcsLekérése
  • Remove-SqlColumnMasterKey
  • New-SqlColumnMasterKey
  • Get-SqlCredential
  • Set-SqlCredential
  • New-SqlCredential
  • Remove-SqlCredential
  • New-SqlCspColumnMasterKeySettings
  • Get-SqlDatabase
  • Restore-SqlDatabase
  • Backup-SqlDatabase
  • Set-SqlErrorLog
  • Get-SqlErrorLog
  • New-SqlHADREndpoint
  • Set-SqlHADREndpoint
  • Get-SqlInstance
  • Add-SqlLogin
  • Remove-SqlLogin
  • Get-SqlLogin
  • Set-SqlSmartAdmin
  • Get-SqlSmartAdmin
  • Read-SqlTableData
  • Write-SqlTableData (SQL-táblázat adatok írása)
  • Read-SqlViewData (SQL nézetadatok olvasása)
  • Read-SqlXEvent
  • Convert-UrnToPath