Bagikan melalui


Menjalankan Langkah-langkah Windows PowerShell di SQL Server Agent

Berlaku untuk: SQL Server Not supported. Azure SQL DatabaseAzure Synapse Analytics Analytics Platform System (PDW)

Gunakan SQL Server Agent untuk menjalankan skrip SQL Server PowerShell pada waktu yang dijadwalkan.

Catatan

Ada dua modul PowerShell SQL Server; SqlServer dan SQLPS.

Modul SqlServer adalah modul PowerShell saat ini yang akan digunakan.

Modul SQLPS disertakan dengan penginstalan SQL Server (untuk kompatibilitas mundur) tetapi tidak lagi diperbarui.

Modul SqlServer berisi versi cmdlet yang diperbarui di SQLPS dan menyertakan cmdlet baru untuk mendukung fitur SQL terbaru.

Instal modul SqlServer dari Galeri PowerShell.

Untuk informasi selengkapnya, lihat SQL Server PowerShell.

Dimulai dengan SQL Server 2019, Anda dapat menonaktifkan SQLPS. Pada baris pertama langkah pekerjaan jenis PowerShell, Anda dapat menambahkan #NOSQLPS, yang menghentikan Agen SQL memuat otomatis modul SQLPS. Sekarang Pekerjaan Agen SQL Anda menjalankan versi PowerShell yang diinstal pada komputer, lalu Anda dapat menggunakan modul PowerShell lainnya yang Anda suka.

Untuk menggunakan modul SqlServer di langkah Pekerjaan Agen SQL, Anda dapat menempatkan kode ini pada dua baris pertama skrip Anda.

#NOSQLPS
Import-Module -Name SqlServer

Menjalankan PowerShell dari SQL Server Agent

Ada beberapa jenis langkah pekerjaan SQL Server Agent. Setiap jenis dikaitkan dengan subsistem yang mengimplementasikan lingkungan tertentu, seperti agen replikasi atau lingkungan prompt perintah. Anda dapat membuat kode skrip Windows PowerShell, lalu menggunakan SQL Server Agent untuk menyertakan skrip dalam pekerjaan yang berjalan pada waktu terjadwal atau sebagai respons terhadap peristiwa SQL Server. Skrip Windows PowerShell dapat dijalankan menggunakan langkah pekerjaan prompt perintah atau langkah pekerjaan PowerShell.

  • Gunakan langkah pekerjaan PowerShell agar subsistem SQL Server Agent menjalankan utilitas sqlps , yang meluncurkan PowerShell dan mengimpor modul sqlps . Jika Anda menjalankan SQL Server 2019 atau yang lebih baru, sebaiknya gunakan modul SqlServer di langkah Pekerjaan Agen SQL Anda.

  • Gunakan langkah pekerjaan prompt perintah untuk menjalankan PowerShell.exe, dan tentukan skrip yang mengimpor modul sqlps .

Perhatian tentang konsumsi memori

Setiap langkah pekerjaan SQL Server Agent yang menjalankan PowerShell dengan modul sqlps meluncurkan proses, yang mengonsumsi sekitar 20 MB memori. Menjalankan sejumlah besar langkah pekerjaan Windows PowerShell bersamaan dapat berdampak buruk pada performa.

Membuat Langkah Pekerjaan PowerShell

Membuat langkah pekerjaan PowerShell

  1. Perluas SQL Server Agent, buat pekerjaan baru atau klik kanan pekerjaan yang sudah ada, lalu pilih Properti. Untuk informasi selengkapnya tentang membuat pekerjaan, lihat Membuat Pekerjaan.

  2. Dalam dialog Properti Pekerjaan, pilih halaman Langkah-langkah, lalu pilih Baru.

  3. Dalam dialog Langkah Pekerjaan Baru, ketik nama Langkah pekerjaan.

  4. Di daftar Jenis, pilih PowerShell.

  5. Di daftar Jalankan sebagai, pilih akun proksi dengan kredensial yang akan digunakan pekerjaan.

  6. Dalam kotak Perintah , masukkan sintaks skrip PowerShell yang akan dijalankan untuk langkah pekerjaan. Secara bergantian, pilih Buka dan pilih file yang berisi sintaks skrip.

  7. Pilih halaman Tingkat Lanjut untuk mengatur opsi langkah pekerjaan berikut: tindakan apa yang harus diambil jika langkah pekerjaan berhasil atau gagal, berapa kali Agen SQL Server harus mencoba menjalankan langkah pekerjaan, dan seberapa sering upaya coba lagi harus dilakukan.

Membuat Langkah Pekerjaan Prompt Perintah

Membuat langkah pekerjaan CmdExec

  1. Perluas SQL Server Agent, buat pekerjaan baru atau klik kanan pekerjaan yang sudah ada, lalu pilih Properti. Untuk informasi selengkapnya tentang membuat pekerjaan, lihat Membuat Pekerjaan.

  2. Dalam dialog Properti Pekerjaan, pilih halaman Langkah-langkah, lalu pilih Baru.

  3. Dalam dialog Langkah Pekerjaan Baru, ketik nama Langkah pekerjaan.

  4. Di daftar Jenis, pilih Sistem operasi (CmdExec).

  5. Di Jalankan sebagai daftar, pilih akun proksi dengan kredensial yang akan digunakan pekerjaan. Secara default, langkah-langkah pekerjaan CmdExec berjalan di bawah konteks akun layanan SQL Server Agent.

  6. Dalam kotak Kode keluar proses dari perintah yang berhasil, masukkan nilai dari 0 hingga 999999.

  7. Dalam kotak Perintah , masukkan perintah yang dimulai dengan PowerShell.exe dengan parameter yang menentukan skrip PowerShell yang akan dijalankan. Contoh ini mirip dengan sintaks untuk menjalankan perintah PowerShell dari prompt perintah Windows. PowerShell.exe -? Lihat untuk semua opsi sintaks yang mungkin.

    • Contoh 1: Menjalankan cmdlet sederhana.
         PowerShell.exe -Command "Get-Date"
      
    • Contoh 2: Menjalankan kueri melalui SQLCmd.exe terhadap server saat ini (contohnya menggunakan penggantian token SQL Agent).
         PowerShell.exe -Command "sqlcmd.exe -S $(ESCAPE_NONE(SRVR)) -Q 'SELECT @@VERSION'"
      
    • Contoh 3: Menjalankan skrip PowerShell (menggunakan pwsh.exe, nama yang dapat dieksekusi di PowerShell 7.0, yang harus diinstal di server). Perhatikan bahwa jalur ke skrip bersifat lokal ke server tempat Agen SQL berjalan.
         PWSH.exe -ExecutionPolicy RemoteSigned -File X:\MyScripts\script001.ps1 
      
  8. Pilih halaman Tingkat Lanjut untuk mengatur opsi langkah pekerjaan, seperti: tindakan apa yang harus diambil jika langkah pekerjaan berhasil atau gagal, berapa kali Agen SQL Server harus mencoba menjalankan langkah pekerjaan, dan file tempat Agen SQL Server dapat menulis output langkah pekerjaan. Hanya anggota peran server tetap sysadmin yang dapat menulis output langkah pekerjaan ke file sistem operasi.

Lihat Juga