Linux'ta SQL Server Java Dil Uzantısı'nı yükleme

Şunlar için geçerlidir: Linux ve sonraki sürümlerde SQL Server 2019 (15.x)

Linux'ta SQL Server için Java Dil Uzantısı bileşenini yüklemeyi öğrenin. Java Dil Uzantısı , SQL Server Dil Uzantıları'nın bir parçasıdır ve Veritabanı Altyapısı eklentisidir.

Veritabanı Altyapısını ve Dil Uzantılarını eşzamanlı olarak yükleyebilmenize rağmen, daha fazla bileşen eklemeden önce sorunları çözebilmeniz için öncelikle SQL Server Veritabanı Altyapısı'nı yükleyip yapılandırmak en iyi yöntemdir.

Prerequisites

  • Java eklentileri paketi, SQL Server Linux kaynak depolarında yer almaktadır. Database Engine kurulumu için kaynak depoları zaten yapılandırdıysanız, aynı repo kaydını kullanarak paket kurulum komutlarını çalıştırınmssql-server-extensibility-java.
  • Dil Uzantıları, Linux kapsayıcılarında da desteklenir. Dil Uzantıları içeren hazır konteynerler mevcut değildir, ancak SQL Server konteynerlerinden GitHub'da bulunan örnek bir şablonu kullanarak bir tane oluşturabilirsiniz.

  • Dil Uzantıları ve Machine Learning Hizmetleri varsayılan olarak SQL Server Büyük Veri Kümelerine yüklenir. Büyük Veri Kümeleri kullanıyorsanız bu makaledeki adımları izlemeniz gerekmez.

Paket listesi

İnternete bağlı bir cihazda, her işletim sistemi için paket yükleyicisini kullanarak Database Engine'den bağımsız olarak paketleri indirip kurarsınız. Aşağıdaki tabloda tüm kullanılabilir paketler açıklanmaktadır.

Paket adı Şunlar için geçerlidir: Description
mssql-server-extensibility Tüm diller Java dil uzantısı için kullanılan genişletilebilirlik çerçevesi
mssql-server-extensibility-java Java Java dil uzantısı için kullanılan ve desteklenen bir Java çalışma zamanı içeren genişletilebilirlik çerçevesi

Geçerlidir: Sadece Linux için SQL Server 2019 (15.x)

Java dil uzantısını yükleme

Linux'a Language Extensions ve Java'yı yüklemek için paketi mssql-server-extensibility-java yükleyin. Paket, JRE 11'i otomatik olarak yükler (eğer henüz yüklenmemişse) ve JVM yolunu bir ortam değişkeni olan ' JRE_HOMEye ekler.

Java Dil Uzantısı'nı etkinleştirmek için GitHub'da Java Dil Uzantısı sayfasındaki yönergeleri izleyerek özel bir ikili dosya oluşturun.

Note

İnternet'e bağlı bir sunucuda, paket bağımlılıkları ana paket yüklemesinin bir parçası olarak indirilir ve yüklenir. Sunucunuz İnternet'e bağlı değilse çevrimdışı kurulumdaki diğer ayrıntılara bakın.

En son Microsoft Build OpenJDK veya resmi lisanslı Java çalışma zamanı da dahil olmak üzere herhangi bir Java çalışma zamanını indirip kurabilirsiniz. SQL Server 2022 (16.x) ile başlayarak, SQL Server Kurulumu java çalışma zamanı yüklemez.

Java Dil Uzantısı'nı etkinleştirmek için GitHub'da Java Dil Uzantısı sayfasındaki yönergeleri izleyerek özel bir ikili dosya oluşturun.

Red Hat install komutu

Red Hat'e Java için Dil Uzantılarını yüklemek için aşağıdaki komutu kullanın.

Tip

Mümkünse, yüklemeden önce sistemdeki paketleri yenilemek için komutunu çalıştırın yum clean all .

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

Ubuntu Kur Komutu

Ubuntu'ya Java için Dil Uzantılarını yüklemek için aşağıdaki komutu kullanın.

Tip

Mümkünse, yüklemeden önce sistemdeki paketleri yenilemek için komutunu çalıştırın apt-get update . Bazı Ubuntu Docker görselleri paketi apt-transport-https içermiyor. Yüklemek için komutunu çalıştırın apt-get install apt-transport-https.

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

SUSE yükleme komutu

SUSE'ye Java için Dil Uzantılarını yüklemek için aşağıdaki komutu kullanın.

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

Kurulum sonrası yapılandırma (zorunlu)

  1. Linux'ta izinler verme

    Dış kitaplıklar kullanıyorsanız bu adımı gerçekleştirmeniz gerekmez. Önerilen yaklaşım harici kütüphanelerdir. Dosyanızdan jar harici bir kütüphane oluşturma konusunda yardım için bkz.CREATE EXTERNAL LIBRARY

    Dış kitaplıklar kullanmıyorsanız, SQL Server'a içinde jarJava sınıflarını yürütmek için izinler sağlamanız gerekir.

    Bir jar dosyaya okuma ve yürütme erişimi vermek için dosyada jar aşağıdaki chmod komutu çalıştırın. SQL Server ile çalışırken sınıf dosyalarınızı her zaman a'ya jar koyun. jar oluşturma konusunda yardım için Sınıf dosyalarından Java .jar dosyası oluşturma konusuna bakın.

    chmod ug+rx <MyJarFile.jar>
    

    Ayrıca dosyayı okumak ve çalıştırmak jar için izinler vermeniz mssql_satellite gerekir.

    chown mssql_satellite:mssql_satellite <MyJarFile.jar>
    

    Ek yapılandırma öncelikle mssql-conf aracı aracılığıyla yapılır.

  2. mssql SQL Server hizmetini çalıştırmak için kullanılan kullanıcı hesabını ekleyin. Bu adım, kurulumu daha önce çalıştırmadıysanız gereklidir.

    sudo /opt/mssql/bin/mssql-conf setup
    
  3. Giden ağ erişimini etkinleştirin. Giden ağ erişimi varsayılan olarak devre dışıdır. Giden istekleri etkinleştirmek için, aracı kullanarak Boolean özelliğini mssql-conf ayarlayınoutboundnetworkaccess. Daha fazla bilgi için bkz. Mssql-conf ile Linux üzerinde SQL Server'ı yapılandırma.

    # Run as SUDO or root
    # Enable outbound requests over the network
    sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1
    
  4. INI dosyasından güncelleştirilmiş değerleri okumak için SQL Server Launchpad hizmetini ve Veritabanı Altyapısı örneğini yeniden başlatın. Genişletilebilirlikle ilgili bir ayarı değiştirdiğinizde yeniden başlatma mesajı size hatırlatır.

    systemctl restart mssql-launchpadd
    systemctl restart mssql-server.service
    
  5. Dış betik yürütmeyi etkinleştirin. Tanıdık SQL Server istemci araçlarını kullanarak bir SQL Server örneğine bağlanabilirsiniz, örneğin , SQL Server Management Studio (SSMS) veya Visual Studio Code için MSSQL uzantısı gibi.

    EXECUTE sp_configure 'external scripts enabled', 1;
    
    RECONFIGURE WITH OVERRIDE;
    
  6. mssql-launchpadd Hizmeti yeniden başlatın.

  7. Dil uzantılarını kullanmak istediğiniz her veritabanı için, harici dili .CREATE EXTERNAL LANGUAGE Adımlar için sonraki bölüme bakınız.

Dış dili kaydetme

Dil uzantılarını kullanmak istediğiniz her veritabanı için, harici dili .CREATE EXTERNAL LANGUAGE

Aşağıdaki örnek, Linux üzerinde SQL Server'da bir veritabanına Java adlı bir dış dil ekler.

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"}'
);

Java uzantısı için, ortam değişkeni JRE_HOME JVM'yi bulup başlatma yolunu belirler.

DDL, CREATE EXTERNAL LANGUAGE uzantını barındıran süreç için ortam değişkenlerini ayarlamak için bir ENVIRONMENT_VARIABLES parametre sağlar. Bu parametreyi dış dil uzantılarının gerektirdiği ortam değişkenlerini ayarlamak için kullanın.

Daha fazla bilgi için bkz. CREATE EXTERNAL LANGUAGE.

Yüklemeyi doğrulama

Java özellik entegrasyonu kütüphaneleri içermez, ancak ortam değişkeninin var olduğunu doğrulamak JRE_HOME için çalıştırabilirsinizgrep -r JRE_HOME /etc.

Yüklemeyi doğrulamak için Java'yı çağıran bir sistem saklı yordamını yürüten bir T-SQL betiği çalıştırın. Bu görev için bir sorgu aracına ihtiyacınız var. Tanıdık SQL Server istemci araçlarını kullanarak bir SQL Server örneğine bağlanabilirsiniz, örneğin , SQL Server Management Studio (SSMS) veya Visual Studio Code için MSSQL uzantısı gibi.

SQL Server ve Java Dil Uzantısı'nın tam yüklemesi

Database Engine ve Java Language Extension'ı tek bir işlemde kurup yapılandırmak için, Database Engine'i yükleyen bir komuta Java paketlerini ve parametrelerini ekleyin.

  1. Veritabanı Altyapısı'nı ve dil uzantısı özelliklerini içeren bir komut satırı sağlayın.

    Aşağıdaki komut, Database Engine kurulumuna Java genişletilebilirliğini ekler.

    sudo yum install -y mssql-server mssql-server-extensibility-java
    
  2. Lisans sözleşmelerini kabul edin ve yükleme sonrası yapılandırmasını tamamlayın. Aracı mssql-conf kullanın.

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

    Bu adım, Veritabanı Altyapısı için lisans sözleşmesini kabul edip bir sürüm seçmenizi ve yönetici parolasını ayarlamanızı ister.

  3. Istenirse hizmeti yeniden başlatın.

    sudo systemctl restart mssql-server.service
    

Katılımsız yükleme

Veritabanı Altyapısı için katılımsız yüklemeyi kullanın ve paketlerini mssql-server-extensibility-javaekleyin.

Çevrimdışı yükleme

Paketleri kurmak için Çevrimdışı kurulum talimatlarını izleyin. İndirme sitenizi bulun ve bu bölümde daha sonra listelenen özel paketleri indirin.

Tip

Birkaç paket yönetim aracı, paket bağımlılıklarını belirlemenize yardımcı olan komutlar sağlar. yum için sudo yum deplist [package]'i kullanın. Ubuntu için sudo apt-get install --reinstall --download-only [package name] sonrasında dpkg -I [package name].deb kullanın.

Siteyi indir

Paketleri şu adresten https://packages.microsoft.com/indirin. Site, tüm Java paketlerini Database Engine paketiyle birlikte barındırır.

İndirme yolları

Package Distribution İndirme konumu
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/

Paket listesi

Kullanmak istediğiniz uzantılara bağlı olarak, belirli bir dil için gerekli paketleri indirin. Tam dosya adları ek ekte platform bilgilerini içerir, ancak aşağıdaki dosya adları hangi dosyaları almanız gerektiğini belirlemenize yardımcı olur.

  • Çekirdek paketler

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

    • mssql-server-extensibility-java-15.0.1000

Sınırlamalar

Linux'ta ima edilen kimlik doğrulama mevcut değildir. Harici süreçte çalışan Java kodu, sunucuya geri bağlanıp veri veya diğer kaynaklara erişemiyor.

Kaynak idaresi

Linux ve Windows dış kaynak havuzları için kaynak yönetimi için eşitliğe sahip, ancak sys.dm_resource_governor_external_resource_pools istatistikleri şu anda Linux'ta farklı birimlere sahip.

Note

Aşağıdaki tablodaki istatistikler, belirtilen Kontrol Grupları (cgruplar) alt sistemlerinden alınmıştır.

Sütun adı Description Linux'ta değer
peak_memory_kb Kaynak havuzunun kullandığı maksimum bellek. Linux'ta bu istatistik, değerin memory bulunduğu alt sistemden alınır memory.max_usage_in_bytes
write_io_count Resource Governor istatistiklerinin son sıfırlanmasından bu yana verilen toplam yazma IO'ları. Linux'ta bu istatistik, yazma satırındaki değerin blkio bulunduğu alt sistemden alınır blkio.throttle.io_serviced
read_io_count Resource Governor istatistiklerinin son sıfırlanmasından bu yana verilen toplam okuma itomları. Linux'ta bu istatistik, okunan satırdaki değerin olduğu alt sistemden elde blkio edilir blkio.throttle.io_serviced
total_cpu_kernel_ms Resource Governor istatistiklerinin son sıfırlanmasından bu yana birikimli CPU kullanıcı çekirdeği süresi milisaniye cinsinden. Linux'ta bu istatistik, kullanıcı satırındaki değerin cpuacct bulunduğu alt sistemden alınır cpuacct.stat
total_cpu_user_ms Resource Governor istatistiklerinin son sıfırlanmasından bu yana milisaniyeler cinsinden toplam CPU kullanıcı süresi. Linux'ta bu istatistik, sistem satırındaki değerin olduğu alt sistemden elde cpuacct edilir cpuacct.stat
active_processes_count İstek anında çalışan dış işlemlerin sayısı. Linux'ta bu istatistik, değerin pids bulunduğu alt sistemden alınır pids.current