Menginstal Ekstensi Bahasa Java SQL Server di Windows

Berlaku untuk: SQL Server 2019 (15.x) dan versi yang lebih baru

Pelajari cara menginstal komponen Ekstensi Bahasa Java untuk SQL Server di Windows. Ekstensi Bahasa Java adalah bagian dari Ekstensi Bahasa SQL Server.

Catatan

Artikel ini untuk penginstalan Ekstensi Bahasa Java untuk SQL Server di Windows. Untuk Linux, lihat Menginstal Ekstensi Bahasa Java SQL Server di Linux.

Prasyarat

Catatan

Kemampuan fitur dan opsi penginstalan bervariasi di antara versi SQL Server. Gunakan daftar dropdown pemilih versi untuk memilih versi SQL Server yang sesuai.

  • Penyiapan SQL Server diperlukan jika Anda ingin menginstal dukungan untuk Ekstensi Bahasa Java.

  • Anda dapat mengunduh dan menginstal runtime Java apa pun sesuai keinginan, termasuk Microsoft Build of OpenJDK terbaru atau runtime Java berlisensi resmi. Di SQL Server 2022 (16.x) dan versi yang lebih baru, runtime Java tidak diinstal oleh Penyiapan SQL Server.

  • Instans Mesin Database diperlukan. Anda tidak dapat menginstal hanya fitur Ekstensi Bahasa Java, meskipun Anda dapat menambahkannya secara bertahap ke instans yang ada.

  • Untuk kelangsungan bisnis, grup ketersediaan AlwaysOn didukung untuk Ekstensi Bahasa. Anda harus menginstal ekstensi bahasa, dan mengonfigurasi paket, pada setiap simpul. Menginstal Ekstensi Bahasa Java juga didukung pada instans kluster failover di SQL Server.

  • Jangan instal Ekstensi Bahasa SQL Server atau Ekstensi Bahasa Java pada pengendali domain. Bagian Ekstensi Bahasa dari penyetelan gagal.

  • Ekstensi Bahasa dan Layanan Pembelajaran Mesin diinstal secara default pada Kluster Big Data SQL Server. Jika Anda menggunakan Kluster Big Data, Anda tidak perlu mengikuti langkah-langkah dalam artikel ini. Untuk informasi selengkapnya, lihat Menjalankan skrip Python dan R dengan Pembelajaran Mesin Services di Kluster Big Data SQL Server 2019.

Penting

Setelah penyiapan selesai, pastikan untuk menyelesaikan langkah-langkah pasca-konfigurasi yang dijelaskan dalam artikel ini. Langkah-langkah ini termasuk mengaktifkan SQL Server untuk menggunakan kode eksternal, dan menambahkan akun yang diperlukan SQL Server untuk menjalankan kode Java atas nama Anda. Perubahan konfigurasi umumnya memerlukan mulai ulang instans, atau menghidupkan ulang layanan Launchpad.

Java JRE atau JDK

Catatan

Kemampuan fitur dan opsi penginstalan bervariasi di antara versi SQL Server. Gunakan daftar dropdown pemilih versi untuk memilih versi SQL Server yang sesuai.

Dengan SQL Server 2022 (16.x), Anda dapat mengunduh dan menginstal runtime Java apa pun, termasuk Microsoft Build of OpenJDK terbaru atau runtime Java berlisensi resmi.

Java 11 saat ini adalah versi yang didukung di Windows. Java Runtime Environment (JRE) adalah persyaratan minimum, tetapi Java Development Kit (JDK) berguna jika Anda memerlukan kompilator Java dan paket pengembangan. Karena JDK semuanya inklusif, jika Anda menginstal JDK, JRE tidak diperlukan. Di Windows, sebaiknya instal JDK di bawah folder default /Program Files/ jika memungkinkan. Jika tidak, konfigurasi tambahan diperlukan untuk memberikan izin ke executable. Untuk informasi selengkapnya, lihat bagian memberikan izin (Windows) dalam dokumen ini.

Ada dua cara untuk menginstal dan menggunakan Java dengan SQL Server 2019 (15.x) dan versi yang lebih baru:

  1. Gunakan runtime Java default, yang disertakan dengan penginstalan SQL Server.

    Tabel berikut ini mencantumkan versi default Java yang disertakan dalam penyiapan:

    Versi SQL Server Versi Java default
    SQL Server 2019 (15.x) CU 23 dan versi yang lebih baru Microsoft Build of OpenJDK 11.0.19
    SQL Server 2019 (15.x) RTM - CU22 Azul Zulu JRE 11.0.3
  2. Gunakan distribusi Java pilihan Anda alih-alih runtime Java default.

    Java 11 saat ini adalah versi yang didukung di Windows. Java Runtime Environment (JRE) adalah persyaratan minimum, tetapi Java Development Kit (JDK) berguna jika Anda memerlukan kompilator Java dan paket pengembangan. Karena JDK semuanya inklusif, jika Anda menginstal JDK, JRE tidak diperlukan. Di Windows, sebaiknya instal JDK di bawah folder default /Program Files/ jika memungkinkan. Jika tidak, konfigurasi tambahan diperlukan untuk memberikan izin ke executable. Untuk informasi selengkapnya, lihat bagian memberikan izin (Windows) dalam dokumen ini.

Catatan

Mengingat Java kompatibel mundur, versi sebelumnya mungkin berfungsi, tetapi versi yang didukung dan diuji untuk SQL Server 2019 (15.x) adalah Java 11.

Mendapatkan media penginstalan

Lokasi unduhan untuk SQL Server tergantung pada edisi:

  • Edisi SQL Server Enterprise, Standard, dan Express. Edisi ini dilisensikan untuk penggunaan produksi. Untuk edisi Enterprise dan Standard, hubungi vendor perangkat lunak Anda untuk media penginstalan. Anda dapat menemukan informasi pembelian dan direktori mitra Microsoft di situs web pembelian Microsoft.
  • Edisi gratis terbaru.

Jalankan Penyetelan

Untuk penginstalan lokal, Anda harus menjalankan Penyetelan sebagai administrator. Jika Anda menginstal SQL Server dari berbagi jarak jauh, Anda harus menggunakan akun domain yang memiliki izin baca dan jalankan pada berbagi jarak jauh.

  1. Mulai wizard penyetelan untuk SQL Server.

  2. Pada tab Penginstalan , pilih Penginstalan mandiri SQL Server baru atau tambahkan fitur ke penginstalan yang sudah ada.

  1. Pada halaman Pilihan Fitur, pilih opsi ini:

    Layanan Mesin Database: Untuk menggunakan Ekstensi Bahasa dengan SQL Server, Anda harus menginstal instans Mesin Database. Anda dapat menggunakan instans default atau bernama.

    Pembelajaran Mesin Layanan dan Ekstensi Bahasa: Opsi ini menginstal komponen Ekstensi Bahasa yang mendukung eksekusi kode Java.

    • Jika Anda ingin menginstal runtime Java default, pilih Pembelajaran Mesin Services dan Language Extensions dan Java.

    • Jika Anda ingin menggunakan runtime Java Anda sendiri, pilih Pembelajaran Mesin Services dan Language Extensions. Jangan pilih Java.

    • Jika Anda ingin menggunakan R dan Python, lihat Menginstal SQL Server Pembelajaran Mesin Services (Python dan R) di Windows.

    Screenshot of the Feature options for Language Extensions.

    1. Jika Anda memilih Java di langkah sebelumnya untuk menginstal runtime Java default, halaman Lokasi Penginstalan Java ditampilkan.

      Instal Java default yang disertakan dengan penginstalan ini. Opsi untuk Menyediakan lokasi versi berbeda yang telah diinstal pada komputer ini tidak digunakan untuk Ekstensi Bahasa.

      Screenshot of the Java install location.

  1. Pada halaman Pilihan Fitur, pilih opsi ini:

    Layanan Mesin Database: Untuk menggunakan Ekstensi Bahasa dengan SQL Server, Anda harus menginstal instans Mesin Database. Anda dapat menggunakan instans default atau bernama.

    Pembelajaran Mesin Layanan dan Ekstensi Bahasa: Opsi ini menginstal komponen Ekstensi Bahasa yang mendukung eksekusi kode Java.

    Screenshot of instance features.

  1. Pada halaman Siap Diinstal , verifikasi bahwa pilihan ini disertakan, dan pilih Instal.

    • Mengelola Database Engine Services
    • Layanan Pembelajaran Mesin dan Ekstensi Bahasa

    Perhatikan lokasi folder di bawah jalur ..\Setup Bootstrap\Log tempat file konfigurasi disimpan. Setelah penyiapan selesai, Anda dapat meninjau komponen yang diinstal dalam file Ringkasan.

  2. Setelah penyetelan selesai, jika Anda diinstruksikan untuk memulai ulang komputer, lakukan sekarang. Penting untuk membaca pesan dari Wizard Penginstalan saat Anda selesai dengan Penyetelan. Untuk informasi selengkapnya, lihat Menampilkan dan Membaca File Log Penyetelan SQL Server.

Menambahkan variabel JRE_HOME

JRE_HOME adalah variabel lingkungan sistem yang menentukan lokasi penerjemah Java. Dalam langkah ini, buat variabel lingkungan sistem untuk itu di Windows.

  1. Temukan dan salin jalur beranda JRE.

    Misalnya, jalur beranda JRE untuk runtime Java default Zulu JRE 11.0.3 adalah %ProgramFiles%\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\AZUL-OpenJDK-JRE\.

    Bergantung pada jalur penginstalan SQL Server Anda atau jika Anda memilih runtime Java lain, lokasi JDK atau JRE Anda mungkin berbeda dari jalur dalam contoh sebelumnya. Bahkan jika Anda memiliki JDK yang terinstal, Anda sering mendapatkan sub folder JRE sebagai bagian dari penginstalan tersebut, jadi arahkan ke folder JRE dalam hal ini. Ekstensi Java mencoba memuat jvm.dll dari jalur %JRE_HOME%\bin\server.

  1. Temukan dan salin jalur beranda JRE.

    Jalur ini tergantung pada runtime dan opsi penginstalan.

    Ekstensi Java mencoba memuat jvm.dll dari jalur %JRE_HOME%\bin\server.

  1. Di Panel Kontrol, buka Sistem dan Keamanan, buka Sistem, dan pilih Properti Sistem Tingkat Lanjut.

  2. Pilih Variabel Lingkungan.

  3. Buat variabel sistem baru untuk JRE_HOME dengan nilai jalur JDK/JRE (ditemukan di langkah 1).

  1. Mulai ulang Launchpad.

    1. Buka Pengelola Konfigurasi SQL Server.

    2. Di bawah Layanan SQL Server, klik kanan Launchpad SQL Server dan pilih Mulai Ulang.

  1. Mendaftarkan ekstensi bahasa. Ikuti langkah-langkah ini untuk mengunduh dan mendaftarkan ekstensi bahasa Java, yang digunakan untuk runtime kustom Java.

    1. java-lang-extension-windows-release.zip Unduh file dari ekstensi bahasa Java untuk repositori GitHub SQL Server. Unduh file Windows java-lang-extension-windows.zip terbaru. Jika Anda belum menginstal Java default dari Penyiapan SQL Server, pastikan versi JRE cocok dengan yang diunduh dari GitHub. Jika Anda lebih suka menggunakan versi JRE yang diinstal sendiri, Anda mungkin perlu mengkompilasi java-lang-extension dari kode sumber GitHub.

    2. Gunakan Azure Data Studio untuk menyambungkan ke instans SQL Server Anda dan jalankan perintah T-SQL berikut untuk mendaftarkan ekstensi bahasa Java dengan CREATE EXTERNAL LANGUAGE.

    3. Ubah jalur dalam pernyataan ini untuk mencerminkan lokasi file zip ekstensi bahasa yang diunduh (java-lang-extension-windows-release.zip) dan lokasi penginstalan Java kustom Anda (%ProgramFiles%\Python).

    CREATE EXTERNAL LANGUAGE [Java]
    FROM (CONTENT = N'C:\path\to\java-lang-extension-windows-release.zip',
        FILE_NAME = 'javaextension.dll',
        ENVIRONMENT_VARIABLES = N'{"JAVAHOME": "C:\\Program Files\\Java"}');
    GO
    
  2. Mulai ulang Launchpad.

    1. Buka Pengelola Konfigurasi SQL Server.

    2. Di bawah Layanan SQL Server, klik kanan Launchpad SQL Server dan pilih Mulai Ulang.

Memberikan akses ke folder JRE non-default

Jika Anda tidak menginstal Java default yang disertakan dengan SQL Server dan tidak menginstal Java di bawah /Program Files, Anda perlu melakukan langkah-langkah berikut.

Jika Anda tidak menginstal Java di bawah file program, Anda perlu melakukan langkah-langkah berikut.

Jalankan perintah icacls dari baris yang ditinggikan untuk memberikan akses ke akun layanan SQLRUsergroup dan SQL Server (di ALL_APPLICATION_PACKAGES) untuk mengakses JRE. Perintah secara rekursif memberikan akses ke semua file dan folder di bawah jalur direktori yang diberikan.

  1. Memberikan izin SQLRUserGroup

    Untuk instans bernama, tambahkan nama instans ke SQLRUsergroup (misalnya, SQLRUsergroupINSTANCENAME).

    icacls "<PATH to JRE>" /grant "SQLRUsergroup":(OI)(CI)RX /T
    

    Anda dapat melewati langkah ini jika Anda menginstal JDK/JRE di folder default di bawah file program di Windows.

  2. Berikan izin AppContainer. Perintah ini memberikan izin ke SID S-1-15-2-1komputer , yang setara ALL APPLICATION PACKAGES dengan pada versi Bahasa Inggris Windows. Atau, Anda dapat menggunakan icacls "<PATH to JRE>" /grant "ALL APPLICATION PACKAGES":(OI)(CI)RX /T windows versi bahasa Inggris.

    icacls "<PATH to JRE>" /grant *S-1-15-2-1:(OI)(CI)RX /T
    

Mulai ulang layanan

Ketika penginstalan selesai, mulai ulang Mesin Database sebelum melanjutkan ke langkah berikutnya, mengaktifkan eksekusi skrip.

Memulai ulang layanan juga secara otomatis memulai ulang layanan Launchpad SQL Server terkait.

Anda dapat memulai ulang layanan menggunakan perintah Hidupkan ulang klik kanan untuk instans di SSMS, dengan panel Layanan di Panel Kontrol, atau dengan menggunakan Pengelola Konfigurasi SQL Server.

Aktifkan eksekusi skrip

  1. Buka SQL Server Management Studio. Koneksi ke instans tempat Anda menginstal Ekstensi Bahasa, pilih Kueri Baru untuk membuka jendela kueri, dan jalankan perintah berikut:

    EXEC sp_configure;
    

    Fitur nonaktif (value adalah 0) secara default, dan harus diaktifkan secara eksplisit oleh administrator sebelum Anda dapat menjalankan kode Java.

  2. Untuk mengaktifkan fitur pembuatan skrip eksternal, jalankan pernyataan berikut:

    EXEC sp_configure 'external scripts enabled', 1
    GO
    RECONFIGURE WITH OVERRIDE
    

    Jika Anda sudah mengaktifkan fitur untuk layanan Pembelajaran Mesin, jangan jalankan konfigurasi ulang untuk kedua kalinya untuk Ekstensi Bahasa. Platform ekstensibilitas yang mendasar mendukung keduanya.

Mendaftarkan bahasa eksternal

Untuk setiap database yang ingin Anda gunakan ekstensi bahasa, Anda perlu mendaftarkan bahasa eksternal dengan CREATE EXTERNAL LANGUAGE.

Contoh berikut menambahkan bahasa eksternal yang disebut Java ke database di SQL Server di Windows.

CREATE EXTERNAL LANGUAGE Java
FROM (CONTENT = N'<path-to-zip>', FILE_NAME = 'javaextension.dll');
GO

Untuk informasi selengkapnya, lihat MEMBUAT BAHASA EKSTERNAL.

Verifikasi penginstalan

Periksa status penginstalan instans dalam log penyiapan.

Gunakan langkah-langkah berikut untuk memverifikasi bahwa semua komponen yang digunakan untuk meluncurkan skrip eksternal sedang berjalan.

  1. Di SQL Server Management Studio atau Azure Data Studio, buka jendela kueri baru, dan jalankan pernyataan berikut:

    EXEC sp_configure 'external scripts enabled';
    

    Sekarang run_value diatur ke 1.

  2. Buka panel Layanan atau Pengelola Konfigurasi SQL Server, dan verifikasi layanan Launchpad SQL Server sedang berjalan. Anda harus memiliki satu layanan untuk setiap instans Mesin Database yang memiliki ekstensi bahasa yang terinstal. Untuk informasi selengkapnya tentang layanan ini, lihat Arsitektur ekstensibilitas di Ekstensi Bahasa SQL Server.

Konfigurasi tambahan

Jika langkah verifikasi berhasil, Anda dapat menjalankan Java Code dari SQL Server Management Studio, Azure Data Studio, Visual Studio Code, atau klien lain yang dapat mengirim pernyataan T-SQL ke server.

Jika Anda mendapatkan kesalahan saat menjalankan perintah, tinjau langkah-langkah konfigurasi tambahan di bagian ini. Anda mungkin perlu membuat konfigurasi ekstra yang sesuai ke layanan atau database.

Pada tingkat instans, konfigurasi tambahan mungkin mencakup:

Pada database, Anda mungkin memerlukan pembaruan konfigurasi berikut:

Catatan

Apakah konfigurasi tambahan diperlukan tergantung pada skema keamanan Anda, tempat Anda menginstal SQL Server, dan bagaimana Anda mengharapkan pengguna tersambung ke database dan menjalankan skrip eksternal.

Pengoptimalan yang disarankan

Setelah semuanya berfungsi, Anda mungkin juga ingin mengoptimalkan server untuk mendukung Ekstensi Bahasa Java.

Mengoptimalkan server untuk Ekstensi Bahasa Java

Pengaturan default untuk penyiapan SQL Server dimaksudkan untuk mengoptimalkan keseimbangan server untuk berbagai layanan yang didukung oleh Mesin Database, yang mungkin mencakup proses ekstrak, transformasi, dan pemuatan (ETL), pelaporan, audit, dan aplikasi yang menggunakan data SQL Server. Oleh karena itu, di bawah pengaturan default, Anda mungkin menemukan bahwa sumber daya untuk ekstensi bahasa terkadang dibatasi atau dibatasi, terutama dalam operasi intensif memori.

Untuk memastikan bahwa pekerjaan ekstensi bahasa diprioritaskan dan diprioritaskan dengan tepat, kami sarankan Anda menggunakan SQL Server Resource Governor untuk mengonfigurasi kumpulan sumber daya eksternal. Anda mungkin juga ingin mengubah jumlah memori yang dialokasikan ke Mesin Database, atau menambah jumlah akun yang berjalan di bawah layanan Launchpad SQL Server.

  • Untuk mengonfigurasi kumpulan sumber daya untuk mengelola sumber daya eksternal, lihat Membuat kumpulan sumber daya eksternal.

  • Untuk mengubah jumlah memori yang dicadangkan untuk database, lihat Opsi konfigurasi memori server.

Jika Anda menggunakan edisi Standar dan tidak memiliki Resource Governor, Anda dapat menggunakan tampilan manajemen dinamis (DMV) dan Extended Events, serta pemantauan peristiwa Windows, untuk membantu mengelola sumber daya server.

Langkah selanjutnya

Pengembang Java dapat memulai dengan beberapa contoh sederhana, dan mempelajari dasar-dasar cara kerja Java dengan SQL Server. Untuk langkah Anda berikutnya, lihat tautan berikut ini: