Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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 Studio
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:
- A PowerShell telepítése Windows rendszeren
- A PowerShell telepítése Linuxon
- A PowerShell telepítése macOS rendszeren
- A PowerShell telepítése ARM-processzorokra
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-SqlInstanceA parancsmaggal csatlakozhat aServerparancsmaghoz, é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-SqlErrorLogA 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