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
Versi Linux harus didukung oleh SQL Server, tetapi tidak menyertakan Mesin Docker. Versi yang didukung meliputi:
Anda harus memiliki alat untuk menjalankan perintah Transact-SQL (T-SQL). Editor kueri diperlukan untuk konfigurasi dan validasi pasca-instal. Kami merekomendasikan Azure Data Studio, unduhan gratis yang berjalan di Linux.
- 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.
Ekstensi Bahasa juga didukung pada kontainer Linux. Kami tidak menyediakan kontainer bawaan dengan Ekstensi Bahasa, tetapi Anda dapat membuatnya dari kontainer SQL Server menggunakan contoh templat yang tersedia di GitHub.
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.
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)
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 EKSTERNALJika 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 padajar
file. Sebaiknya selalu masukkan filejar
kelas Anda saat Anda bekerja dengan SQL Server. Untuk bantuan dalam membuatjar
, lihat Membuat file jar Java dari file kelas.chmod ug+rx <MyJarFile.jar>
Anda juga perlu memberikan
mssql_satellite
izin filejar
untuk dibaca/dijalankan.chown mssql_satellite:mssql_satellite <MyJarFile.jar>
Konfigurasi tambahan terutama melalui alat mssql-conf.
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
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
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
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;
mssql-launchpadd
Mulai ulang layanan lagi.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.
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
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.
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
Batasan
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 |