Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: SQL Server 2019 (15.x) unter Linux und höheren Versionen
Erfahren Sie, wie Sie die Komponente Java-Spracherweiterung für SQL Server unter Linux installieren. Die Java-Spracherweiterung ist Teil der SQL Server-Spracherweiterungen und ein Add-On für die Datenbank-Engine.
Obwohl Sie die Datenbank-Engine und Spracherweiterungen gleichzeitig installieren können, empfiehlt es sich, zuerst die SQL Server-Datenbank-Engine zu installieren und zu konfigurieren, damit Sie eventuelle Probleme beheben können, bevor Sie weitere Komponenten hinzufügen.
Voraussetzungen
Deine Linux-Distribution muss von SQL Server unterstützt werden. Behälter werden in einem späteren Geschoss separat abgedeckt. Unterstützte Distributionen umfassen:
Du brauchst einen Abfrageeditor, der Transact-SQL (T-SQL)-Befehle für die Konfiguration und Validierung nach der Installation ausführen kann. Wir empfehlen die MSSQL-Erweiterung für Visual Studio Code. Es ist ein kostenloser Download, der unter Linux läuft.
- Das Java-Erweiterungspaket befindet sich in den SQL Server Linux-Quellcode-Repositories. Wenn Sie bereits Quellcode-Repositories für die Installation der Datenbank-Engine konfiguriert haben, führen Sie die
mssql-server-extensibility-javaPaketinstallationsbefehle mit derselben Repo-Registrierung aus.
Spracherweiterungen werden auch in Linux-Containern unterstützt. Vorgefertigte Container mit Spracherweiterungen sind nicht verfügbar, aber du kannst einen aus den SQL Server-Containern erstellen, indem du eine Beispielvorlage auf GitHub verwendest.
Spracherweiterungen und Machine Learning Services werden standardmäßig auf Big Data-Clustern für SQL Server installiert. Wenn Sie Big Data-Cluster verwenden, müssen Sie die Schritte in diesem Artikel nicht ausführen.
Paketliste
Auf einem internetverbundenen Gerät lädst und installierst du Pakete unabhängig von der Datenbank-Engine, indem du den Paket-Installer für jedes Betriebssystem nutzt. Die folgende Tabelle enthält alle verfügbaren Pakete.
| Paketname | Gilt für: | Description |
|---|---|---|
mssql-server-extensibility |
Alle Sprachen | Verwendetes Erweiterbarkeitsframework für die Java-Spracherweiterung |
mssql-server-extensibility-java |
Java | Verwendetes Erweiterbarkeitsframework für die Java-Spracherweiterung, enthält außerdem eine unterstützte Java-Runtime Gilt für: SQL Server 2019 (15.x) nur unter Linux |
Installieren der Java-Spracherweiterung
Um Language Extensions und Java unter Linux zu installieren, installieren Sie das mssql-server-extensibility-java Paket. Das Paket installiert automatisch JRE 11 (falls es noch nicht installiert ist) und fügt den JVM-Pfad einer Umgebungsvariable namens JRE_HOME.
Um die Java-Spracherweiterung zu aktivieren, erstellen Sie eine benutzerdefinierte Binärdatei, indem Sie den Anweisungen auf der Java-Spracherweiterungsseite auf GitHub folgen.
Note
Auf einem mit dem Internet verbundenen Server werden Paketabhängigkeiten im Rahmen der Hauptpaketinstallation heruntergeladen und installiert. Wenn Ihr Server nicht mit dem Internet verbunden ist, finden Sie weitere Informationen unter Offlineeinrichtung.
Sie können jede Java-Laufzeit herunterladen und installieren, einschließlich der neuesten Microsoft-Build von OpenJDK oder einer offiziell lizenzierten Java-Laufzeit. Ab SQL Server 2022 (16.x) wird beim SQL-Setup keine Java-Runtime mehr installiert.
Um die Java-Spracherweiterung zu aktivieren, erstellen Sie eine benutzerdefinierte Binärdatei, indem Sie den Anweisungen auf der Java-Spracherweiterungsseite auf GitHub folgen.
Befehl zum Installieren von Red Hat
Um Language Extensions for Java auf Red Hat zu installieren, verwenden Sie den folgenden Befehl.
Tip
Falls möglich, führen Sie yum clean all aus, um die Pakete auf dem System vor der Installation zu aktualisieren.
# Install as root or sudo
sudo yum install mssql-server-extensibility-java
Ubuntu-Installationsbefehl
Um Language Extensions for Java auf Ubuntu zu installieren, verwenden Sie den folgenden Befehl.
Tip
Falls möglich, führen Sie apt-get update aus, um die Pakete auf dem System vor der Installation zu aktualisieren. Einige Ubuntu-Docker-Images enthalten das Paket apt-transport-https nicht. Für die Installation führen Sie apt-get install apt-transport-https aus.
# Install as root or sudo
sudo apt-get install mssql-server-extensibility-java
SUSE-Installationsbefehl
Um Language Extensions for Java auf SUSE zu installieren, verwenden Sie folgenden Befehl.
# Install as root or sudo
sudo zypper install mssql-server-extensibility-java
Nachinstallationskonfiguration (erforderlich)
Erteilen Sie Berechtigungen unter Linux.
Wenn Sie externe Bibliotheken verwenden, müssen Sie diesen Schritt nicht ausführen. Externe Bibliotheken sind der empfohlene Ansatz. Für Hilfe beim Erstellen einer externen Bibliothek aus deiner
jarDatei siehe CREATE EXTERNAL LIBRARY.Wenn Sie keine externen Bibliotheken verwenden, müssen Sie SQL Server Berechtigungen zum Ausführen der Java-Klassen in Ihrer
jar-Datei erteilen.Um eine
jarDatei zum Lesen und Ausführen zu gewähren, führen Sie den folgendenchmodBefehl auf derjarDatei aus. Speichern Sie Ihre Kursdateien immer,jarwenn Sie mit SQL Server arbeiten. Hilfe zum Erstellen vonjarfinden Sie unter Erstellen einer Java-JAR-Datei aus Klassendateien.chmod ug+rx <MyJarFile.jar>Du musst außerdem Berechtigungen geben
mssql_satellite, um diejarDatei zu lesen und auszuführen.chown mssql_satellite:mssql_satellite <MyJarFile.jar>Die zusätzliche Konfiguration erfolgt in erster Linie über das Tool mssql-conf.
Fügen Sie das
mssql-Benutzerkonto hinzu, um den SQL Server-Dienst auszuführen. Dieser Schritt ist erforderlich, wenn du das Setup vorher nicht ausgeführt hast.sudo /opt/mssql/bin/mssql-conf setupAktivieren Sie den Zugriff auf ausgehenden Netzwerkdatenverkehr. Der Zugriff auf ausgehenden Netzwerkdatenverkehr ist standardmäßig deaktiviert. Um ausgehende Anfragen zu aktivieren, setzen Sie mit dem
mssql-confTool dieoutboundnetworkaccessboolesche Eigenschaft ein. Weitere Informationen finden Sie unter Konfigurieren von SQL Server für Linux mithilfe von mssql-conf.# Run as SUDO or root # Enable outbound requests over the network sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1Starten Sie anschließend das SQL Server-Launchpad und die Datenbank-Engine-Instanz neu, um die aktualisierten Werte aus der INI-Datei zu lesen. Eine Neustart-Nachricht erinnert Sie jedes Mal, wenn Sie eine erweiterbarkeitsbezogene Einstellung ändern.
systemctl restart mssql-launchpadd systemctl restart mssql-server.serviceAktivieren sie die Ausführung externer Skripts. Sie können eine Verbindung mit einer Sql Server-Instanz herstellen, indem Sie ein vertrautes SQL Server-Clienttool verwenden, z. B. sqlcmd, SQL Server Management Studio (SSMS) oder die MSSQL-Erweiterung für Visual Studio Code.
EXECUTE sp_configure 'external scripts enabled', 1; RECONFIGURE WITH OVERRIDE;Starten Sie den Dienst
mssql-launchpaddneu.Für jede Datenbank, in der Sie Spracherweiterungen verwenden möchten, registrieren Sie die externe Sprache mit CREATE EXTERNAL LANGUAGE. Siehe den nächsten Abschnitt für Schritte.
Registrieren einer externen Sprache
Für jede Datenbank, in der Sie Spracherweiterungen verwenden möchten, registrieren Sie die externe Sprache mit CREATE EXTERNAL LANGUAGE.
Im folgenden Beispiel wird die externe Sprache mit dem Namen Java zu einer Datenbank unter SQL Server für Linux hinzugefügt.
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"}'
);
Für die Java-Erweiterung bestimmt die Umgebungsvariable JRE_HOME den Pfad, um das JVM zu finden und zu initialisieren.
Die CREATE EXTERNAL LANGUAGE DDL stellt einen ENVIRONMENT_VARIABLES Parameter bereit, um die Umgebungsvariablen für den Prozess festzulegen, der die Erweiterung hostet. Verwenden Sie diesen Parameter, um Umweltvariablen festzulegen, die externe Spracherweiterungen erfordern.
Weitere Informationen finden Sie unter CREATE EXTERNAL LANGUAGE.
Überprüfen der Installation
Die Integration von Java-Funktionen beinhaltet keine Bibliotheken, aber du kannst ausführengrep -r JRE_HOME /etc, um zu bestätigen, dass die JRE_HOME Umgebungsvariable existiert.
Sie können die Installation überprüfen, indem Sie ein T-SQL-Skript ausführen, das eine gespeicherte Systemprozedur ausführt, die Java aufruft. Für diese Aufgabe benötigen Sie ein Abfragetool. Sie können eine Verbindung mit einer Sql Server-Instanz herstellen, indem Sie ein vertrautes SQL Server-Clienttool verwenden, z. B. sqlcmd, SQL Server Management Studio (SSMS) oder die MSSQL-Erweiterung für Visual Studio Code.
Vollständige Installation von SQL Server und der Java-Spracherweiterung
Um die Datenbank-Engine und die Java Language Extension in einem Verfahren zu installieren und zu konfigurieren, fügen Sie Java-Pakete und Parameter an einen Befehl an, der die Datenbank-Engine installiert.
Geben Sie eine Befehlszeile an, die die Datenbank-Engine sowie Spracherweiterungsfeatures enthält.
Der folgende Befehl fügt einer Datenbank-Engine-Installation Java-Erweiterbarkeit hinzu.
sudo yum install -y mssql-server mssql-server-extensibility-javaAkzeptieren Sie die Lizenzbedingungen, und schließen Sie die Konfiguration im Anschluss an die Installation ab. Benutze das
mssql-confWerkzeug.sudo /opt/mssql/bin/mssql-conf setupIn diesem Schritt werden Sie aufgefordert, die Lizenzvereinbarung für die Datenbank-Engine zu akzeptieren, eine Edition auszuwählen und das Administratorkennwort festzulegen.
Neustarte den Dienst, wenn du dazu aufgefordert wirst.
sudo systemctl restart mssql-server.service
Unbeaufsichtigte Installation
Fügen Sie die Pakete für der Datenbank-Engine über eine mssql-server-extensibility-java hinzu.
Offlineinstallation
Um die Pakete zu installieren, folgen Sie den Anweisungen zur Offline-Installation . Finden Sie Ihre Download-Seite und laden Sie dann die spezifischen Pakete später in diesem Abschnitt herunter.
Tip
Mehrere Paketverwaltungstools bieten Befehle, die Ihnen helfen, Paketabhängigkeiten zu bestimmen. Verwenden Sie yum für sudo yum deplist [package]. Verwenden Sie für Ubuntu erst sudo apt-get install --reinstall --download-only [package name] und dann dpkg -I [package name].deb.
Download-Seite
Laden Sie die Pakete von https://packages.microsoft.com/. herunter. Die Seite hostet alle Java-Pakete zusammen mit dem Datenbank-Engine-Paket.
Downloadpfade
| Paket | Verteilung | Speicherort für Downloads |
|---|---|---|
mssql/extensibility-java packages |
Roter Hut 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/ |
Paketliste
Je nachdem, welche Erweiterungen Sie verwenden möchten, müssen Sie die für die jeweilige Sprache erforderlichen Pakete herunterladen. Genaue Dateinamen enthalten die Plattforminformationen im Suffix, aber die folgenden Dateinamen helfen dir zu bestimmen, welche Dateien du holen solltest.
Erforderliche Pakete
mssql-server-15.0.1000mssql-server-extensibility-15.0.1000
Java
mssql-server-extensibility-java-15.0.1000
Einschränkungen
Implizite Authentifizierung ist unter Linux nicht verfügbar. Java-Code, der im externen Prozess läuft, kann keine Verbindung zum Server herstellen, um auf Daten oder andere Ressourcen zuzugreifen.
Ressourcenverwaltung
Linux und Windows haben Parität bei der Ressourcenverwaltung für externe Ressourcenpools, aber die Statistiken für sys.dm_resource_governor_external_resource_pools haben derzeit unterschiedliche Einheiten auf Linux.
Note
Die Statistiken in der folgenden Tabelle stammen aus den angegebenen Kontrollgruppen-(cgroups)-Subsystemen.
| Spaltenname | Description | Wert unter Linux |
|---|---|---|
peak_memory_kb |
Der maximale Speicher, den der Ressourcenpool nutzt. | Unter Linux wird diese Statistik dem memory-Subsystem entnommen. Dabei lautet der Wert memory.max_usage_in_bytes. |
write_io_count |
Die Gesamtzahl der Write IOs, die seit dem letzten Reset der Resource Governor-Statistiken ausgegeben wurden. | Unter Linux wird diese Statistik dem blkio-Subsystem entnommen, wobei der Wert in der Schreibzeile blkio.throttle.io_serviced lautet. |
read_io_count |
Die Gesamtzahl der Read-IOs, die seit dem letzten Reset der Resource Governor-Statistiken ausgegeben wurden. | Unter Linux stammt diese Statistik aus dem Subsystem blkio , wobei der Wert auf der Lesezeile lautet blkio.throttle.io_serviced |
total_cpu_kernel_ms |
Die kumulierte CPU-Benutzerkernelzeit in Millisekunden seit dem letzten Reset der Resource Governor-Statistiken. | Unter Linux wird diese Statistik dem cpuacct-Subsystem entnommen. Dabei lautet der Benutzerzeilenwert cpuacct.stat. |
total_cpu_user_ms |
Die kumulierte CPU-Benutzerzeit in Millisekunden seit dem letzten Reset der Resource Governor-Statistiken. | Unter Linux stammt diese Statistik aus dem Subsystem cpuacct , wobei der Wert in der Systemzeile ist cpuacct.stat |
active_processes_count |
Die Anzahl externer Prozesse, die zum Zeitpunkt der Anforderung ausgeführt werden. | Unter Linux wird diese Statistik dem pids-Subsystem entnommen. Dabei lautet der Wert pids.current. |