Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server - Linux
Bu makalede SQL Server PowerShell tanıtılmaktadır ve macOS ve Linux üzerinde PowerShell ile nasıl kullanılacağına ilişkin birkaç örnek verilmiştir. PowerShell artık GitHub'da açık kaynak bir projedir.
Windows PowerShell hakkında daha fazla bilgi için bkz. Windows PowerShell nedir?
Platformlar arası düzenleyici seçenekleri
PowerShell için aşağıdaki adımların tümü normal bir terminalde çalışır veya bunları Visual Studio Code veya Azure Data Studio'daki bir terminalden çalıştırabilirsiniz. Hem VS Code hem de Azure Data Studio macOS ve Linux'ta kullanılabilir. Azure Data Studio hakkında daha fazla bilgi için bkz. Hızlı Başlangıç: SQL Serverbağlanmak ve sorgulamak için Azure Data Studio'yu kullanma. Azure Data Studio içinPowerShell Düzenleyicisi Desteği'ni de kullanmayı düşünebilirsiniz.
PowerShell yükleme
PowerShell'i desteklenen çeşitli ve deneysel platformlara yükleme hakkında daha fazla bilgi için aşağıdaki makalelere bakın:
- Windows'da PowerShell'i yükleme
- Linux'ta PowerShell'i yükleme
- macOS'ta PowerShell'i yükleme
- ARM işlemcilerine PowerShell yükleme
SqlServer modülünü yükleme
SqlServer modülü, PowerShell Galerisi'de tutulur. SQL Server ile çalışırken her zaman PowerShell modülünün SqlServer en son sürümünü kullanmanız gerekir.
Modülü yüklemek SqlServer için bir PowerShell oturumu açın ve aşağıdaki kodu çalıştırın:
Install-Module -Name SqlServer
Modülü PowerShell Galerisi'nden yükleme SqlServer hakkında daha fazla bilgi için bkz. SQL Server PowerShell modülünü yükleme.
SqlServer modülünü kullanma
PowerShell'i başlatarak başlayalım. macOS veya Linux kullanıyorsanız, bilgisayarınızda bir terminal oturumu açın ve yeni bir PowerShell oturumu başlatmak için yazın pwsh . Windows'da Win+R tuşlarına basın ve yeni bir PowerShell oturumu başlatmak için pwsh yazın.
pwsh
SQL Server adlı SqlServerbir PowerShell modülü sağlar. SQL Server bileşenlerini (SQL Server sağlayıcısı ve cmdlet'leri) bir PowerShell ortamına veya betiğine aktarmak için modülünü kullanabilirsiniz SqlServer .
Modülü geçerli PowerShell oturumunuza aktarmak için aşağıdaki komutu kopyalayıp PowerShell istemine SqlServer yapıştırın:
Import-Module SqlServer
Modülün doğru içeri aktarıldığını doğrulamak için PowerShell istemine SqlServer aşağıdaki komutu yazın:
Get-Module -Name SqlServer
PowerShell aşağıdaki çıkışa benzer bilgiler görüntülemelidir:
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 21.1.18102 SqlServer {Add-SqlAvailabilityDatabase, Add-SqlAvailabilityGroupList...
SQL Server'a bağlanma ve sunucu bilgilerini alma
Aşağıdaki adımlarda, Linux üzerinde SQL Server örneğine bağlanmak ve birkaç sunucu özelliğini görüntülemek için PowerShell kullanılır.
Aşağıdaki komutları kopyalayıp PowerShell istemine yapıştırın. Bu komutları çalıştırdığınızda PowerShell şunları yapacaktır:
- Örneğinizin ana bilgisayar adını veya IP adresini isteyen bir iletişim kutusu görüntüleme
- Kimlik bilgilerini girmenizi isteyen PowerShell kimlik bilgisi isteği iletişim kutusunu görüntüleyin. Linux'ta SQL Server örneğine bağlanmak için SQL kullanıcı adı ve SQL parola kullanabilirsiniz
-
Get-SqlInstancecmdlet'ini kullanarakServer'e bağlanın ve birkaç özelliği görüntüleyin.
İsteğe bağlı olarak, yalnızca $serverInstance değişkenini SQL Server örneğinizin IP adresi veya ana bilgisayar adıyla değiştirebilirsiniz.
# 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
PowerShell aşağıdaki çıkışa benzer bilgiler görüntülemelidir:
Instance Name Version ProductLevel UpdateLevel HostPlatform HostDistribution
------------- ------- ------------ ----------- ------------ ----------------
your_server_instance 14.0.3048 RTM CU13 Linux Ubuntu
Not
Bu değerler için hiçbir şey görüntülenmezse, hedef SQL Server örneğine bağlantı büyük olasılıkla başarısız olur. SQL Server Management Studio'dan bağlanmak için aynı bağlantı bilgilerini kullanabileceğinizden emin olun. Ardından bağlantı sorunlarını giderme önerilerinigözden geçirin.
SQL Server PowerShell Sağlayıcısı'nı kullanma
SQL Server örneğine bağlanmak için bir diğer seçenek de SQL Server PowerShell Sağlayıcısıkullanmaktır. Sağlayıcıyı kullanmak, Nesne Gezgini'nde ağaç yapısında gezinir gibi, ancak komut satırında SQL Server örneğinde gezinmenize olanak tanır. Varsayılan olarak bu sağlayıcı, etki alanı hesabınızın erişimi olan SQL Server örneklerine bağlanmak & gezinmek için kullanabileceğiniz SQLSERVER:\adlı bir PSDrive olarak sunulur. Linux üzerinde SQL Server için Active Directory kimlik doğrulamasını ayarlama hakkında bilgi için bkz. Yapılandırma adımları.
SQL Server PowerShell Sağlayıcısı ile SQL kimlik doğrulamasını da kullanabilirsiniz. Bunu yapmak için cmdlet'ini New-PSDrive kullanarak yeni bir PSDrive oluşturun ve bağlanmak için uygun kimlik bilgilerini sağlayın.
Aşağıdaki örnekte, SQL kimlik doğrulaması kullanarak yeni bir PSDrive oluşturma örneği görürsünüz.
# 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
Get-PSDrive cmdlet'ini çalıştırarak sürücünün oluşturulduğunu onaylayabilirsiniz.
Get-PSDrive
Yeni PSDrive'ınızı oluşturduktan sonra gezinmeye başlayabilirsiniz.
dir SQLonDocker:\Databases
Çıktı aşağıdaki gibi görünebilir. Bu çıkışın, SQL Server Management Studio'nun (SSMS) Veritabanları düğümünde görüntülediğine benzer olduğunu fark edebilirsiniz. Kullanıcı veritabanlarını görüntüler, ancak sistem veritabanlarını görüntülemez.
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
Örneğinizdeki tüm veritabanlarını görmeniz gerekiyorsa, bir seçenek Get-SqlDatabase cmdlet'ini kullanmaktır.
Veritabanlarını Alma
Bilinmesi gereken önemli bir cmdlet Get-SqlDatabase'dır. Bir veritabanını veya veritabanındaki nesneleri içeren birçok işlem için Get-SqlDatabase cmdlet'i kullanılabilir. Hem -ServerInstance hem de -Database parametreleri için değerler sağlarsanız, yalnızca bir veritabanı nesnesi alınır. Ancak, yalnızca -ServerInstance parametresini belirtirseniz, bu örnekteki tüm veritabanlarının tam listesi döndürülür.
# 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
Get-SqlDatabase komutunun döndürdüğüne ilişkin bir örnek aşağıda verilmişti:
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
SQL Server hata günlüklerini inceleme
Aşağıdaki adımlarda, Linux üzerinde SQL Server örneğinizin hata günlüklerini incelemek için PowerShell kullanılır.
Aşağıdaki komutları kopyalayıp PowerShell istemine yapıştırın. Çalışmaları birkaç dakika sürebilir. Bu komutlar aşağıdaki adımları uygular:
- Örneğinizin ana bilgisayar adını veya IP adresini isteyen bir iletişim kutusu görüntüleme
- Sizden kimlik bilgilerini isteyen PowerShell kimlik bilgisi isteği iletişim kutusunu görüntüleyin. Linux'ta SQL Server örneğine bağlanmak için SQL kullanıcı adı ve SQL parola kullanabilirsiniz
- Linux'ta
Get-SqlErrorLogSQL Server örneğine bağlanmak ve şu tarihten sonra hata günlüklerini almak için cmdlet'ini kullanın:Yesterday
İsteğe bağlı olarak, $serverInstance değişkenini SQL Server örneğinizin IP adresi veya ana bilgisayar adıyla değiştirebilirsiniz.
# 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
Şu anda PowerShell'de kullanılabilen cmdlet'leri keşfetme
SqlServer modülü şu anda Windows PowerShell'de 109 cmdlet'e sahip olsa da PowerShell'de 109 cmdlet'in yalnızca 62'si kullanılabilir. Şu anda 62 cmdlet'in tam listesi aşağıdadır. SqlServer modülündeki tüm cmdlet'lerin ayrıntılı belgeleri için SqlServer cmdlet referansınabakın.
Aşağıdaki komut, kullandığınız PowerShell sürümünde kullanılabilen tüm cmdlet'leri gösterir.
Get-Command -Module SqlServer -CommandType Cmdlet |
Sort-Object -Property Noun |
Select-Object Name
- ConvertFrom-EncodedSqlName
- ConvertTo-EncodedSqlName
- Get-SqlAgent
- Get-SqlAgentJob
- Get-SqlAgentJobHistory
- Get-SqlAgentJobSchedule
- Get-SqlAgentJobStep
- Get-SqlAgentSchedule
- Invoke-SqlAssessment
- Get-SqlAssessmentItem
- Remove-SqlAvailabilityDatabase
- Resume-SqlAvailabilityDatabase
- Add-SqlAvailabilityDatabase
- Suspend-SqlAvailabilityDatabase
- New-SqlAvailabilityGroup
- Set-SqlAvailabilityGroup
- Remove-SqlAvailabilityGroup
- Switch-SqlAvailabilityGroup
- Join-SqlAvailabilityGroup
- Revoke-SqlAvailabilityGroupCreateAnyDatabase
- Grant-SqlAvailabilityGroupCreateAnyDatabase
- 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
- Get-SqlColumnMasterKey
- 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
- Read-SqlViewData
- Read-SqlXEvent
- Convert-UrnToPath