Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server 2019 (15.x) di 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
Distribusi Linux Anda harus didukung oleh SQL Server. Wadah ditutup secara terpisah dalam peluru yang lebih baru. Distribusi yang didukung meliputi:
Anda membutuhkan editor kueri untuk menjalankan perintah Transact-SQL (T-SQL) untuk konfigurasi dan validasi pasca-instalasi. Kami merekomendasikan ekstensi MSSQL untuk Visual Studio Code. Ini adalah unduhan gratis yang berjalan di Linux.
- Paket ekstensi Java ada di repositori sumber SQL Server Linux. Jika Anda sudah mengonfigurasi repositori sumber untuk instalasi Database Engine, jalankan
mssql-server-extensibility-javaperintah instalasi paket dengan menggunakan registrasi repo yang sama.
Ekstensi Bahasa juga didukung pada kontainer Linux. Kontainer bawaan dengan Ekstensi Bahasa tidak tersedia, tetapi Anda dapat membuatnya dari kontainer SQL Server dengan menggunakan template contoh 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.
Daftar paket
Pada perangkat yang terhubung internet, Anda mengunduh dan menginstal paket secara independen dari Database Engine dengan menggunakan installer paket untuk setiap sistem operasi. Tabel berikut ini menjelaskan semua paket yang tersedia.
| Nama paket | Berlaku pada | Deskripsi |
|---|---|---|
mssql-server-extensibility |
Semua bahasa | Kerangka kerja ekstensibilitas yang digunakan untuk ekstensi bahasa Java |
mssql-server-extensibility-java |
Java | Kerangka kerja ekstensibilitas yang digunakan untuk ekstensi bahasa Java dan mencakup runtime Java yang didukung. Berlaku untuk: SQL Server 2019 (15.x) hanya di Linux |
Menginstal ekstensi bahasa Java
Untuk menginstal Language Extensions dan Java di Linux, instal mssql-server-extensibility-java paketnya. Paket secara otomatis menginstal JRE 11 (jika belum terpasang) dan 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.
Note
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, termasuk Microsoft Build di OpenJDK terbaru atau runtime Java berlisensi resmi. Mulai dari SQL Server 2022 (16.x), Setup 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
Untuk menginstal Language Extensions for Java di Red Hat, gunakan 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
Untuk menginstal Language Extensions for Java di Ubuntu, gunakan perintah berikut.
Tip
Jika memungkinkan, jalankan apt-get update untuk menyegarkan paket pada sistem sebelum penginstalan. Beberapa gambar Ubuntu Docker tidak menyertakan apt-transport-https paketnya. Untuk menginstalnya, jalankan apt-get install apt-transport-https.
# Install as root or sudo
sudo apt-get install mssql-server-extensibility-java
Perintah penginstalan SUSE
Untuk menginstal Language Extensions for Java di SUSE, gunakan perintah berikut.
# Install as root or sudo
sudo zypper install mssql-server-extensibility-java
Konfigurasi pasca-instalasi (wajib)
Memberikan izin di Linux
Anda tidak perlu melakukan langkah ini jika Anda menggunakan pustaka eksternal. Perpustakaan eksternal adalah pendekatan yang direkomendasikan. Untuk bantuan membuat pustaka eksternal dari file Anda
jar, lihat CREATE EXTERNAL LIBRARY.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 eksekusi ke
jarsebuah file, jalankan perintah berikutchmodpada file tersebutjar. Selalu masukkan file kelas Anda ke dalam ajarsaat 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_satelliteizin untuk membaca dan menjalankanjarfile.chown mssql_satellite:mssql_satellite <MyJarFile.jar>Konfigurasi tambahan terutama melalui alat mssql-conf.
Tambahkan akun pengguna yang
mssqldigunakan untuk menjalankan layanan SQL Server. Langkah ini diperlukan jika Anda belum menjalankan setup sebelumnya.sudo /opt/mssql/bin/mssql-conf setupAktifkan akses jaringan keluar. Akses jaringan keluar dinonaktifkan secara default. Untuk mengaktifkan permintaan keluar, atur
outboundnetworkaccessproperti Boolean dengan alat inimssql-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 1Mulai ulang layanan Launchpad SQL Server dan instans Mesin Database untuk membaca nilai yang diperbarui dari file INI. Pesan restart mengingatkan Anda setiap kali Anda mengubah pengaturan terkait ekstensibilitas.
systemctl restart mssql-launchpadd systemctl restart mssql-server.serviceAktifkan eksekusi skrip eksternal. Anda dapat terhubung ke instans SQL Server menggunakan alat klien SQL Server yang sudah dikenal, seperti sqlcmd, SQL Server Management Studio (SSMS), atau ekstensi MSSQL untuk Visual Studio Code.
EXECUTE sp_configure 'external scripts enabled', 1; RECONFIGURE WITH OVERRIDE;mssql-launchpaddMulai ulang layanan lagi.Untuk setiap database tempat Anda ingin menggunakan ekstensi bahasa, daftarkan bahasa eksternal tersebut dengan CREATE EXTERNAL LANGUAGE. Lihat bagian berikutnya untuk langkah-langkah.
Mendaftarkan bahasa eksternal
Untuk setiap database tempat Anda ingin menggunakan ekstensi bahasa, daftarkan bahasa eksternal tersebut 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 menentukan jalur untuk menemukan dan menginisialisasi JVM.
CREATE EXTERNAL LANGUAGE DDL menyediakan ENVIRONMENT_VARIABLES parameter untuk mengatur variabel lingkungan bagi proses yang menjadi host ekstensi. Gunakan parameter ini untuk mengatur variabel lingkungan yang dibutuhkan ekstensi bahasa eksternal.
Untuk informasi selengkapnya, lihat CREATE EXTERNAL LANGUAGE .
Verifikasi penginstalan
Integrasi fitur Java tidak menyertakan pustaka, tetapi Anda dapat menjalankan grep -r JRE_HOME /etc untuk memastikan JRE_HOME variabel lingkungan itu ada.
Untuk memvalidasi penginstalan, jalankan skrip T-SQL yang menjalankan prosedur tersimpan sistem yang memanggil Java. Anda memerlukan alat kueri untuk tugas ini. Anda dapat terhubung ke instans SQL Server menggunakan alat klien SQL Server yang sudah dikenal, seperti sqlcmd, SQL Server Management Studio (SSMS), atau ekstensi MSSQL untuk Visual Studio Code.
Penginstalan penuh SQL Server dan Ekstensi Bahasa Java
Untuk menginstal dan mengonfigurasi Database Engine dan Java Language Extension dalam satu prosedur, tambahkan paket dan parameter Java ke perintah yang menginstal Database Engine.
Berikan baris perintah yang menyertakan Mesin Database, ditambah fitur ekstensi bahasa.
Perintah berikut menambahkan ekstensibilitas Java ke instalasi Database Engine.
sudo yum install -y mssql-server mssql-server-extensibility-javaTerima perjanjian lisensi dan selesaikan konfigurasi pasca-instal. Gunakan alatnya
mssql-conf.sudo /opt/mssql/bin/mssql-conf setupLangkah ini meminta Anda untuk menerima perjanjian lisensi untuk Mesin Database, memilih edisi, dan mengatur kata sandi administrator.
Restart layanan jika diminta.
sudo systemctl restart mssql-server.service
Penginstalan tanpa pengawasan
Gunakan instalasi otomatis untuk Mesin Database dan tambahkan paket untuk mssql-server-extensibility-java.
Penginstalan offline
Untuk menginstal paket, ikuti petunjuk instalasi Offline . Temukan situs unduhan Anda, lalu unduh paket spesifik yang tercantum di bagian ini.
Tip
Beberapa alat manajemen paket menyediakan perintah yang membantu Anda menentukan ketergantungan 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
Unduh paket dari https://packages.microsoft.com/. Situs ini menampung semua paket Java bersama dengan paket Database Engine.
Jalur unduhan
| Package | Distribution | Lokasi unduhan |
|---|---|---|
mssql/extensibility-java packages |
Topi Merah 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 membantu Anda menentukan file mana yang harus diambil.
Paket inti
mssql-server-15.0.1000mssql-server-extensibility-15.0.1000
Java
mssql-server-extensibility-java-15.0.1000
Keterbatasan
Autentikasi tersirat tidak tersedia di Linux. Kode Java yang berjalan di proses eksternal tidak dapat terhubung kembali ke server untuk mengakses data atau sumber daya lain.
Tata kelola sumber daya
Linux dan Windows memiliki paritas untuk tata kelola sumber daya untuk pool sumber daya eksternal, tetapi statistik untuk sys.dm_resource_governor_external_resource_pools saat ini memiliki unit yang berbeda di Linux.
Note
Statistik dalam tabel berikut bersumber dari subsistem Control Groups (cgroups) yang ditentukan.
| Nama kolom | Deskripsi | Nilai di Linux |
|---|---|---|
peak_memory_kb |
Memori maksimum yang digunakan oleh resource pool. | Di Linux, statistik ini bersumber dari memory subsistem, di mana nilainya memory.max_usage_in_bytes |
write_io_count |
Total write IO yang diterbitkan sejak reset statistik Resource Governor terakhir. | Di Linux, statistik ini bersumber dari blkio subsistem, di mana nilai pada baris tulis adalah blkio.throttle.io_serviced |
read_io_count |
Total IO yang dibaca yang dikeluarkan sejak reset statistik Resource Governor terakhir. | Di Linux, statistik ini berasal 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 sejak reset statistik Resource Governor terakhir. | Di Linux, statistik ini bersumber dari cpuacct subsistem, di mana nilai pada baris pengguna adalah cpuacct.stat |
total_cpu_user_ms |
Waktu kumulatif pengguna CPU dalam milidetik sejak reset statistik Resource Governor terakhir. | Di Linux, statistik ini berasal dari cpuacct subsistem, di mana nilai pada 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 |