Aracılığıyla paylaş


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.

Önkoşullar

  • Java uzantıları için paket konumu SQL Server Linux kaynak depolarındadır. Veritabanı Altyapısı yüklemesi için kaynak depoları zaten yapılandırdıysanız, paket yükleme komutlarını aynı depo kaydını kullanarak çalıştırabilirsiniz mssql-server-extensibility-java .

Paket listesi

İnternet'e bağlı bir cihazda paketler, her işletim sisteminin paket yükleyicisi kullanılarak Veritabanı Altyapısından bağımsız olarak indirilir ve yüklenir. Aşağıdaki tabloda tüm kullanılabilir paketler açıklanmaktadır.

Paket adı Uygulandığı yerler Açıklama
mssql-server-extensibility Tüm diller Java dil uzantısı için kullanılan genişletilebilirlik çerçevesi
mssql-server-extensibility-java Java Şunlar için geçerlidir: Yalnızca Linux üzerinde SQL Server 2019 (15.x)

Java dil uzantısı için kullanılan ve desteklenen bir Java çalışma zamanı içeren genişletilebilirlik çerçevesi

Java dil uzantısını yükleme

Linux'ta Dil Uzantıları'nı ve Java'yı, mssql-server-extensibility-java kullanarak yükleyebilirsiniz. yüklediğinizde mssql-server-extensibility-java, henüz yüklü değilse paket JRE 11'i otomatik olarak yükler. Ayrıca JVM yolunu adlı JRE_HOMEbir ortam değişkenine 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.

Uyarı

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

OpenJDK'nin en son Microsoft Derlemesi veya resmi lisanslı Java çalışma zamanı dahil olmak üzere istediğiniz java çalışma zamanını indirip yükleyebilirsiniz. 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

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

Tavsiye

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

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

Tavsiye

Mümkünse, yüklemeden önce sistemdeki paketleri yenilemek için komutunu çalıştırın apt-get update . Ayrıca, Ubuntu'nun bazı docker görüntüleri https apt aktarım seçeneğine sahip olmayabilir. Onu yüklemek için apt-get install apt-transport-https kullanın.

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

SUSE yükleme komutu

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

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

Yükleme sonrası yapılandırma (gerekli)

  1. Linux'ta izinler verme

    Dış kitaplıklar kullanıyorsanız bu adımı gerçekleştirmeniz gerekmez. Önerilen çalışma yöntemi dış kitaplıkları kullanmaktır. Dosyanızdan jar dış kitaplık oluşturmayla ilgili 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 aşağıdaki jar komutunu çalıştırın. SQL Server ile çalışırken sınıf dosyalarınızı her zaman içine jar yerleştirmenizi öneririz. 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 mssql_satellite izinlerini, jar dosyasına okuma/yürütme için vermeniz 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, 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 outboundnetworkaccess aracını kullanarak Boole özelliğini ayarlayın. Daha fazla bilgi için bkz. Mssql-confile 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. Yeniden başlatma iletisi, genişletilebilirlik ile ilgili bir ayar değiştirildiğinde size anımsatır.

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

    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 dış dili CREATE EXTERNAL LANGUAGE ile kaydetmeniz gerekir. Sonraki bölümdeki adımlara bakın.

Dış dili kaydetme

Dil uzantılarını kullanmak istediğiniz her veritabanı için dış dili CREATE EXTERNAL LANGUAGE ile kaydetmeniz gerekir.

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şlatacak yolu belirlemek için kullanılır.

DDL, CREATE EXTERNAL LANGUAGE uzantıyı barındıran işleme özel olarak ortam değişkenlerini ayarlamak için bir parametre (ENVIRONMENT_VARIABLES) sağlar. Bu işlem, dış dil uzantılarının gerektirdiği ortam değişkenlerini ayarlamanın önerilen ve en etkili yoludur.

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

Yüklemeyi doğrulama

Java özellik tümleştirmesi kitaplıkları içermez, ancak ortam değişkeninin oluşturulmasını grep -r JRE_HOME /etc onaylamak için komutunu çalıştırabilirsinizJAVA_HOME.

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. Sqlcmd, SQL Server Management Studio (SSMS) veya Visual Studio Code için MSSQL uzantısı gibi tanıdık herhangi bir SQL Server istemci aracını kullanarak sql Server örneğine bağlanabilirsiniz.

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

Veritabanı Altyapısı'nı yükleyen bir komuta Java paketleri ve parametreleri ekleyerek Veritabanı Altyapısı ve Java Dil Uzantısı'nı tek bir yordamda yükleyip yapılandırabilirsiniz.

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

    Veritabanı Altyapısı yüklemesine Java genişletilebilirliği ekleyebilirsiniz.

    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. Bu görev için mssql-conf aracını 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. İstenirse 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 yükleme adımları için Çevrimdışı yükleme yönergelerini izleyin. İndirme sitenizi bulun ve ardından bu bölümün devamında yer alan paket listesini kullanarak belirli paketleri indirin.

Tavsiye

Paket yönetimi araçlarının birkaçı, paket bağımlılıklarını belirlemenize yardımcı olabilecek komutlar sağlar. Yum için kullanın sudo yum deplist [package]. Ubuntu için sudo apt-get install --reinstall --download-only [package name] sonrasında dpkg -I [package name].deb kullanın.

Siteyi indir

Paketleri adresinden https://packages.microsoft.com/indirebilirsiniz. Java paketlerinin tümü Veritabanı Altyapısı paketiyle birlikte bulunur.

İndirme yolları

Paket Dağıtım İ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ı, son eke platform bilgilerini içerir, ancak aşağıdaki dosya adları hangi dosyaları alabileceğinizi belirlemenize yardımcı olmalıdır.

  • Çekirdek paketler

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

    • mssql-server-extensibility-java-15.0.1000

Sınırlamalar

Şu anda Linux'ta zımni kimlik doğrulaması kullanılamamaktadır. Bu, devam eden Java'dan verilere veya diğer kaynaklara erişmek için sunucuya geri bağlanamadığınız anlamına gelir.

Kaynak idaresi

Dış kaynak havuzları için Linux ile Kaynak idaresi için Windows arasında eşlik vardır, ancak sys.dm_resource_governor_external_resource_pools istatistikleri şu anda Linux üzerinde farklı birimlere sahiptir.

Uyarı

Aşağıdaki tablodaki istatistikler, belirtilen Denetim Grupları (cgroups) alt sistemlerinden kaynaklanmıştır.

Sütun adı Açıklama Linux'ta değer
peak_memory_kb Kaynak havuzu için kullanılan en fazla bellek miktarı. Linux'ta bu istatistik, değerin memory bulunduğu alt sistemden alınır memory.max_usage_in_bytes
write_io_count Resource Governor istatistikleri sıfırlandığından beri verilen toplam yazma işlemleri. 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 istatistikleri sıfırlandığından beri verilen toplam okuma IOS'ları. Linux'ta bu istatistik, okuma satırındaki değerin blkio bulunduğu alt sistemden alınır blkio.throttle.io_serviced
total_cpu_kernel_ms Resource Governor istatistikleri sıfırlandığından bu yana milisaniye cinsinden birikmeli CPU kullanıcı çekirdeği süresi. 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 istatistikleri sıfırlandıktan sonra milisaniye cinsinden birikmeli CPU kullanıcı süresi. Linux'ta bu istatistik, sistem satır değerindeki değerin cpuacct bulunduğu alt sistemden alınır 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