Menginstal Ekstensi Bahasa Java SQL Server di Linux

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

Pelajari cara menginstal komponen Ekstensi Bahasa Java untuk SQL Server di Linux. Ekstensi Bahasa Java adalah bagian dari Ekstensi Bahasa SQL Server dan add-on ke Mesin Database.

Meskipun Anda dapat menginstal Mesin Database dan Ekstensi Bahasa secara bersamaan, ini adalah praktik terbaik untuk menginstal dan mengonfigurasi Mesin Database SQL Server terlebih dahulu sehingga Anda dapat menyelesaikan masalah apa pun sebelum menambahkan lebih banyak komponen.

Prasyarat

  • Lokasi paket untuk ekstensi Java ada di repositori sumber SQL Server Linux. Jika Anda sudah mengonfigurasi repositori sumber untuk penginstalan Mesin Database, Anda dapat menjalankan mssql-server-extensibility-java perintah penginstalan paket menggunakan pendaftaran repositori yang sama.

Daftar paket

Pada perangkat yang terhubung ke internet, paket diunduh dan diinstal secara independen dari Mesin Database menggunakan alat penginstal paket untuk setiap sistem operasi. Tabel berikut ini menjelaskan semua paket yang tersedia.

Nama paket Terapkan-ke Deskripsi
mssql-server-extensibility Semua bahasa Kerangka kerja ekstensibilitas yang digunakan untuk ekstensi bahasa Java
mssql-server-extensibility-java Java Berlaku untuk: SQL Server 2019 (15.x) hanya di Linux

Kerangka kerja ekstensibilitas yang digunakan untuk ekstensi bahasa Java dan menyertakan runtime Bahasa Umum Java yang didukung

Menginstal ekstensi bahasa Java

Anda dapat menginstal Ekstensi Bahasa dan Java di Linux dengan menginstal mssql-server-extensibility-java. Saat Anda menginstal mssql-server-extensibility-java, paket secara otomatis menginstal JRE 11 jika belum diinstal. Ini juga menambahkan jalur JVM ke variabel lingkungan yang disebut JRE_HOME.

Untuk mengaktifkan Ekstensi Bahasa Java, buat biner kustom dengan mengikuti instruksi dari halaman Ekstensi Bahasa Java di GitHub.

Catatan

Pada server yang terhubung ke internet, dependensi paket diunduh dan diinstal sebagai bagian dari penginstalan paket utama. Jika server Anda tidak tersambung ke internet, lihat detail selengkapnya dalam penyetelan offline.

Anda dapat mengunduh dan menginstal runtime Java apa pun sesuai keinginan, termasuk Microsoft Build of OpenJDK terbaru atau runtime Java berlisensi resmi. Dimulai dengan SQL Server 2022 (16.x), Penyiapan SQL Server tidak menginstal runtime Java.

Untuk mengaktifkan Ekstensi Bahasa Java, buat biner kustom dengan mengikuti instruksi dari halaman Ekstensi Bahasa Java di GitHub.

Perintah penginstalan Red Hat

Anda dapat menginstal Ekstensi Bahasa untuk Java di Red Hat menggunakan perintah berikut.

Tip

Jika memungkinkan, jalankan yum clean all untuk menyegarkan paket pada sistem sebelum penginstalan.

# Install as root or sudo
sudo yum install mssql-server-extensibility-java

Perintah penginstalan Ubuntu

Anda dapat menginstal Ekstensi Bahasa untuk Java di Ubuntu menggunakan perintah berikut.

Tip

Jika memungkinkan, jalankan apt-get update untuk menyegarkan paket pada sistem sebelum penginstalan. Selain itu, beberapa gambar docker Ubuntu mungkin tidak memiliki opsi transportasi apt https. Untuk menginstalnya, gunakan apt-get install apt-transport-https.

# Install as root or sudo
sudo apt-get install mssql-server-extensibility-java

Perintah penginstalan SUSE

Anda dapat menginstal Ekstensi Bahasa untuk Java di SUSE menggunakan perintah berikut.

# Install as root or sudo
sudo zypper install mssql-server-extensibility-java

Konfigurasi pasca-instal (diperlukan)

  1. Memberikan izin di Linux

    Anda tidak perlu melakukan langkah ini jika Anda menggunakan pustaka eksternal. Cara kerja yang direkomendasikan adalah menggunakan pustaka eksternal. Untuk bantuan dalam membuat pustaka eksternal dari file Anda jar , lihat MEMBUAT PUSTAKA EKSTERNAL

    Jika Anda tidak menggunakan pustaka eksternal, Anda perlu memberikan izin kepada SQL Server untuk menjalankan kelas Java di Anda jar.

    Untuk memberikan akses baca dan jalankan ke jar file, jalankan perintah chmod berikut pada jar file. Sebaiknya selalu masukkan file jar kelas Anda saat Anda bekerja dengan SQL Server. Untuk bantuan dalam membuat jar, lihat Membuat file jar Java dari file kelas.

    chmod ug+rx <MyJarFile.jar>
    

    Anda juga perlu memberikan mssql_satellite izin file jar untuk dibaca/dijalankan.

    chown mssql_satellite:mssql_satellite <MyJarFile.jar>
    

    Konfigurasi tambahan terutama melalui alat mssql-conf.

  2. Tambahkan akun pengguna yang mssql digunakan untuk menjalankan layanan SQL Server. Ini diperlukan jika Anda belum menjalankan penyiapan sebelumnya.

    sudo /opt/mssql/bin/mssql-conf setup
    
  3. Aktifkan akses jaringan keluar. Akses jaringan keluar dinonaktifkan secara default. Untuk mengaktifkan permintaan keluar, atur outboundnetworkaccess properti Boolean menggunakan alat mssql-conf . Untuk informasi selengkapnya, lihat Mengonfigurasi SQL Server di Linux dengan mssql-conf.

    # Run as SUDO or root
    # Enable outbound requests over the network
    sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1
    
  4. Mulai ulang layanan Launchpad SQL Server dan instans Mesin Database untuk membaca nilai yang diperbarui dari file INI. Pesan hidupkan ulang mengingatkan Anda setiap kali pengaturan terkait ekstensibilitas dimodifikasi.

    systemctl restart mssql-launchpadd
    systemctl restart mssql-server.service
    
  5. Aktifkan eksekusi skrip eksternal menggunakan Azure Data Studio, atau alat lain seperti SQL Server Management Studio (khusus Windows), yang menjalankan T-SQL.

    EXEC sp_configure 'external scripts enabled', 1;
    RECONFIGURE WITH OVERRIDE;
    
  6. mssql-launchpadd Mulai ulang layanan lagi.

  7. Untuk setiap database yang ingin Anda gunakan ekstensi bahasa, Anda perlu mendaftarkan bahasa eksternal dengan CREATE EXTERNAL LANGUAGE. Lihat langkah-langkah di bagian berikutnya.

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 Linux.

CREATE EXTERNAL LANGUAGE Java
FROM (CONTENT = N'/opt/mssql-extensibility/lib/java-lang-extension.tar.gz',
    FILE_NAME = 'javaextension.so',
    ENVIRONMENT_VARIABLES = N'{"JRE_HOME":"/opt/mssql/lib/zulu-jre-11"}');

Untuk ekstensi Java, variabel JRE_HOME lingkungan digunakan untuk menentukan jalur untuk menemukan dan menginisialisasi JVM.

CREATE EXTERNAL LANGUAGE DDL menyediakan parameter (ENVIRONMENT_VARIABLES) untuk mengatur variabel lingkungan khusus untuk proses yang menghosting ekstensi. Proses ini adalah cara yang direkomendasikan dan paling efektif untuk mengatur variabel lingkungan yang diperlukan oleh ekstensi bahasa eksternal.

Untuk informasi selengkapnya, lihat MEMBUAT BAHASA EKSTERNAL.

Verifikasi penginstalan

Integrasi fitur Java tidak menyertakan pustaka, tetapi Anda dapat menjalankan grep -r JRE_HOME /etc untuk mengonfirmasi pembuatan JAVA_HOME variabel lingkungan.

Untuk memvalidasi penginstalan, jalankan skrip T-SQL yang menjalankan prosedur tersimpan sistem yang memanggil Java. Anda memerlukan alat kueri untuk tugas ini. Azure Data Studio adalah pilihan yang baik. Alat lain yang umum digunakan seperti SQL Server Management Studio hanya untuk Windows. Jika Anda memiliki komputer Windows dengan alat-alat ini, gunakan untuk menyambungkan ke penginstalan Linux Mesin Database Anda.

Penginstalan penuh SQL Server dan Ekstensi Bahasa Java

Anda dapat menginstal dan mengonfigurasi Mesin Database dan Ekstensi Bahasa Java dalam satu prosedur dengan menambahkan paket dan parameter Java pada perintah yang menginstal Mesin Database.

  1. Berikan baris perintah yang menyertakan Mesin Database, ditambah fitur ekstensi bahasa.

    Anda dapat menambahkan ekstensibilitas Java ke penginstalan Mesin Database.

    sudo yum install -y mssql-server mssql-server-extensibility-java
    
  2. Terima perjanjian lisensi dan selesaikan konfigurasi pasca-instal. Gunakan alat mssql-conf untuk tugas ini.

    sudo /opt/mssql/bin/mssql-conf setup
    

    Langkah ini meminta Anda untuk menerima perjanjian lisensi untuk Mesin Database, memilih edisi, dan mengatur kata sandi administrator.

  3. Mulai ulang layanan, jika diminta untuk melakukannya.

    sudo systemctl restart mssql-server.service
    

Penginstalan tanpa pengawasan

Gunakan penginstalan tanpa pengawas untuk Mesin Database dan tambahkan paket untuk mssql-server-extensibility-java.

Penginstalan offline

Ikuti petunjuk penginstalan Offline untuk langkah-langkah penginstalan paket. Temukan situs unduhan Anda, lalu unduh paket tertentu menggunakan daftar paket nanti di bagian ini.

Tip

Beberapa alat manajemen paket menyediakan perintah yang dapat membantu Anda menentukan dependensi paket. Untuk yum, gunakan sudo yum deplist [package]. Untuk Ubuntu, gunakan sudo apt-get install --reinstall --download-only [package name] diikuti oleh dpkg -I [package name].deb.

Unduh situs

Anda dapat mengunduh paket dari https://packages.microsoft.com/. Semua paket untuk Java dikolokasikan dengan paket Mesin Database.

Jalur unduhan

Paket Distribusi Lokasi unduhan
mssql/extensibility-java packages Red Hat 8 https://packages.microsoft.com/rhel/8/mssql-server-2019/
mssql/extensibility-java packages SUSE v15 https://packages.microsoft.com/sles/15/mssql-server-2019/
mssql/extensibility-java packages Ubuntu 20.04 https://packages.microsoft.com/ubuntu/20.04/mssql-server-2019/pool/main/m/

Daftar paket

Bergantung pada ekstensi mana yang ingin Anda gunakan, unduh paket yang diperlukan untuk bahasa tertentu. Nama file yang tepat menyertakan informasi platform dalam akhiran, tetapi nama file berikut akan membantu Anda menentukan file mana yang akan didapatkan.

  • Paket inti

    • mssql-server-15.0.1000
    • mssql-server-extensibility-15.0.1000
  • Java

    • mssql-server-extensibility-java-15.0.1000

Pembatasan

Autentikasi tersirat saat ini tidak tersedia di Linux saat ini, yang berarti Anda tidak dapat terhubung kembali ke server dari Java yang sedang berlangsung untuk mengakses data atau sumber daya lainnya.

Tata kelola sumber daya

Ada paritas antara Linux dan Windows untuk tata kelola Sumber Daya untuk kumpulan sumber daya eksternal, tetapi statistik untuk sys.dm_resource_governor_external_resource_pools saat ini memiliki unit yang berbeda di Linux.

Catatan

Statistik dalam tabel berikut bersumber dari subsistem Grup Kontrol (cgroup) yang ditentukan.

Nama kolom Deskripsi Nilai di Linux
peak_memory_kb Jumlah maksimum memori yang digunakan untuk kumpulan sumber daya. Di Linux, statistik ini bersumber dari memory subsistem, di mana nilainya memory.max_usage_in_bytes
write_io_count Total IO tulis yang dikeluarkan sejak statistik Resource Governor diatur ulang. Di Linux, statistik ini bersumber dari blkio subsistem, di mana nilai pada baris tulis adalah blkio.throttle.io_serviced
read_io_count Total IO baca yang dikeluarkan sejak statistik Resource Governor diatur ulang. Di Linux, statistik ini bersumber dari blkio subsistem, di mana nilai pada baris baca adalah blkio.throttle.io_serviced
total_cpu_kernel_ms Waktu kernel pengguna CPU kumulatif dalam milidetik karena statistik Resource Governor direset. Di Linux, statistik ini bersumber dari cpuacct subsistem, di mana nilai pada baris pengguna adalah cpuacct.stat
total_cpu_user_ms Waktu pengguna CPU kumulatif dalam milidetik karena statistik Resource Governor diatur ulang. Di Linux, statistik ini bersumber dari cpuacct subsistem, di mana nilai pada nilai baris sistem adalah cpuacct.stat
active_processes_count Jumlah proses eksternal yang berjalan pada saat permintaan. Di Linux, statistik ini bersumber dari pids subsistem, di mana nilainya pids.current