Menggunakan PowerShell di Windows untuk mengelola SQL Server di Linux

Berlaku untuk:SQL Server - Linux

Artikel ini memperkenalkan SQL Server PowerShell dan memancang Anda melalui beberapa contoh tentang cara menggunakannya dengan SQL Server di Linux. Dukungan PowerShell untuk SQL Server saat ini tersedia di Windows, macOS, & Linux. Artikel ini memanah Anda menggunakan komputer Windows untuk menyambungkan ke instans SQL Server jarak jauh di Linux.

Menginstal versi terbaru SQL PowerShell di Windows

Modul PowerShell SQL Server di Windows dipertahankan di Galeri PowerShell. Saat bekerja dengan SQL Server, Anda harus selalu menggunakan versi terbaru modul SqlServer PowerShell.

Sebelum Anda mulai

Baca Masalah yang diketahui untuk SQL Server di Linux.

Luncurkan PowerShell dan impor modul sqlserver

Mari kita mulai dengan meluncurkan PowerShell di Windows. Gunakan Win+R, di komputer Windows Anda, dan ketik PowerShell untuk meluncurkan sesi Windows PowerShell baru.

SQL Server menyediakan modul PowerShell bernama SqlServer. Anda dapat menggunakan modul SqlServer untuk mengimpor komponen SQL Server (penyedia dan cmdlet SQL Server) ke lingkungan atau skrip PowerShell.

Salin dan tempel perintah berikut pada prompt PowerShell untuk mengimpor modul SqlServer ke sesi PowerShell Anda saat ini:

Import-Module SqlServer

Ketik perintah berikut pada perintah PowerShell untuk memverifikasi bahwa modul SqlServer diimpor dengan benar:

Get-Module -Name SqlServer

PowerShell harus menampilkan informasi yang mirip dengan output berikut:

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

Koneksi ke SQL Server dan dapatkan informasi server

Mari kita gunakan PowerShell di Windows untuk menyambungkan ke instans SQL Server Anda di Linux dan menampilkan beberapa properti server.

Salin dan tempel perintah berikut ini di prompt PowerShell. Saat Anda menjalankan perintah ini, PowerShell akan:

  • Menampilkan dialog yang meminta nama host atau alamat IP instans Anda
  • Tampilkan dialog permintaan kredensial Windows PowerShell, yang meminta kredensial kepada Anda. Anda dapat menggunakan nama pengguna SQL dan kata sandi SQL Anda untuk menyambungkan ke instans SQL Server Anda di Linux
  • Gunakan cmdlet Get-SqlInstance untuk menyambungkan ke Server dan menampilkan beberapa properti

Secara opsional, Anda hanya dapat mengganti $serverInstance variabel dengan alamat IP atau nama host instans SQL Server Anda.

# 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 harus menampilkan informasi yang mirip dengan output berikut:

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

Catatan

Jika tidak ada yang ditampilkan untuk nilai-nilai ini, koneksi ke instans SQL Server target kemungkinan besar gagal. Pastikan Anda dapat menggunakan informasi koneksi yang sama untuk menyambungkan dari SQL Server Management Studio. Kemudian tinjau rekomendasi pemecahan masalah koneksi.

Menggunakan Penyedia PowerShell SQL Server

Opsi lain untuk menyambungkan ke instans SQL Server Anda adalah menggunakan Penyedia PowerShell SQL Server. Penyedia ini memungkinkan Anda menavigasi instans SQL Server yang mirip dengan seolah-olah Anda menavigasi struktur pohon di Object Explorer, tetapi di cmdline. Secara default, penyedia ini disajikan sebagai PSDrive bernama SQLSERVER:\, yang dapat Anda gunakan untuk menyambungkan dan menavigasi instans SQL Server yang dapat diakses akun domain Anda. Untuk informasi selengkapnya tentang cara menyiapkan autentikasi Direktori Aktif untuk SQL Server di Linux, lihat Langkah konfigurasi.

Anda juga dapat menggunakan autentikasi SQL dengan Penyedia PowerShell SQL Server. Untuk melakukan ini, gunakan New-PSDrive cmdlet untuk membuat PSDrive baru dan berikan kredensial yang tepat untuk menyambungkan.

Dalam contoh di bawah ini, Anda akan melihat salah satu contoh cara membuat PSDrive baru menggunakan autentikasi 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

Anda dapat mengonfirmasi bahwa drive dibuat dengan menjalankan Get-PSDrive cmdlet.

Get-PSDrive

Setelah membuat PSDrive baru, Anda bisa mulai menavigasinya.

dir SQLonDocker:\Databases

Berikut tampilan outputnya. Anda mungkin melihat outputnya mirip dengan apa yang akan ditampilkan SQL Server Management Studio (SSMS) di simpul Database. Ini menampilkan database pengguna, tetapi bukan database sistem.

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

Jika Anda perlu melihat semua database pada instans Anda, salah satu opsinya adalah menggunakan cmdlet Get-SqlDatabase .

Memeriksa log kesalahan SQL Server

Langkah-langkah berikut menggunakan PowerShell di Windows untuk memeriksa log kesalahan yang terhubung pada instans SQL Server Anda di Linux. Kami juga akan menggunakan cmdlet Out-GridView untuk menampilkan informasi dari log kesalahan dalam tampilan tampilan kisi.

Salin dan tempel perintah berikut ini di prompt PowerShell. Mungkin perlu waktu beberapa menit untuk dijalankan. Perintah ini melakukan hal berikut:

  • Menampilkan dialog yang meminta nama host atau alamat IP instans Anda
  • Tampilkan dialog permintaan kredensial Windows PowerShell, yang meminta kredensial kepada Anda. Anda dapat menggunakan nama pengguna SQL dan kata sandi SQL Anda untuk menyambungkan ke instans SQL Server Anda di Linux
  • Gunakan cmdlet Get-SqlErrorLog untuk menyambungkan ke instans SQL Server di Linux dan mengambil log kesalahan sejak Kemarin
  • Pipa output ke cmdlet Out-GridView

Secara opsional, Anda dapat mengganti $serverInstance variabel dengan alamat IP atau nama host instans SQL Server Anda.

# 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