Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : SQL Server 2019 (15.x) sur Linux et versions ultérieures
Découvrez comment installer le composant Extension de langage Java pour SQL Server sur Linux. L'extension de langage Java fait partie des Extensions de langage SQL Server. Il s'agit d'un module complémentaire du moteur de base de données.
Bien que vous puissiez installer le moteur de base de données et les extensions de langage simultanément, il est recommandé d'installer et de configurer le moteur de base de données SQL Server en premier afin de pouvoir résoudre les problèmes avant d'ajouter d'autres composants.
Prerequisites
Votre distribution Linux doit être prise en charge par SQL Server. Les contenants sont couverts séparément dans une balle ultérieure. Les distributions prises en charge incluent :
Vous avez besoin d’un éditeur de requêtes pour exécuter Transact-SQL commandes (T-SQL) pour la configuration et la validation post-installation. Nous recommandons l’extension MSSQL pour Visual Studio Code. C’est un téléchargement gratuit qui fonctionne sous Linux.
- Le paquet d’extensions Java se trouve dans les dépôts sources de SQL Server Linux. Si vous avez déjà configuré des dépôts source pour l’installation du Moteur de base de données, exécutez les commandes d’installation
mssql-server-extensibility-javadu paquet en utilisant la même inscription de dépôt.
Les extensions de langage sont également prises en charge sur les conteneurs Linux. Les conteneurs préconstruits avec extensions de langage ne sont pas disponibles, mais vous pouvez en créer un à partir des conteneurs SQL Server en utilisant un modèle d'exemple disponible sur GitHub.
Les extensions de langage et Machine Learning Services sont installés par défaut sur Clusters Big Data SQL Server. Si vous utilisez Clusters Big Data, vous n’avez pas besoin de suivre les étapes décrites dans cet article.
Liste des paquets
Sur un appareil connecté à Internet, vous téléchargez et installez des packages indépendamment du Moteur de base de données en utilisant l’installateur de packages pour chaque système d’exploitation. Le tableau suivant décrit tous les packages disponibles.
| Nom du package | S’applique à | Description |
|---|---|---|
mssql-server-extensibility |
Toutes les langues | Infrastructure d’extensibilité utilisée pour l’extension de langage Java |
mssql-server-extensibility-java |
Java | Infrastructure d’extensibilité utilisée pour l’extension de langage Java et incluant un runtime Java pris en charge S’applique à : SQL Server 2019 (15.x) uniquement sous Linux |
Installer l’extension de langage Java
Pour installer des extensions de langage et Java sur Linux, installez le mssql-server-extensibility-java paquet. Le package installe automatiquement JRE 11 (s’il n’est pas déjà installé) et ajoute le chemin JVM à une variable d’environnement appelée JRE_HOME.
Pour activer l’extension de langage Java, générez un binaire personnalisé en suivant les instructions de la page Extension de langage Java sur GitHub.
Note
Sur un serveur connecté à Internet, les dépendances de package sont téléchargées et installées dans le cadre de l’installation du package principal. Si votre serveur n’est pas connecté à Internet, vous trouverez plus de détails dans Configuration hors connexion.
Vous pouvez télécharger et installer n’importe quel runtime Java, y compris la dernière version Build Microsoft d’OpenJDK ou un runtime Java officiellement licencié. À partir de SQL Server 2022 (16.x), le programme d'installation de SQL Server n'installe aucun runtime Java.
Pour activer l’extension de langage Java, générez un binaire personnalisé en suivant les instructions de la page Extension de langage Java sur GitHub.
Commande d'installation de Red Hat
Pour installer des extensions de langage pour Java sur Red Hat, utilisez la commande suivante.
Tip
Si possible, exécutez yum clean all pour actualiser les packages sur le système avant l’installation.
# Install as root or sudo
sudo yum install mssql-server-extensibility-java
Commande d’installation Ubuntu
Pour installer des extensions de langage pour Java sur Ubuntu, utilisez la commande suivante.
Tip
Si possible, exécutez apt-get update pour actualiser les packages sur le système avant l’installation. Certaines images Docker d’Ubuntu n’incluent pas le apt-transport-https package. Pour l’installer, exécutez apt-get install apt-transport-https.
# Install as root or sudo
sudo apt-get install mssql-server-extensibility-java
Commande d’installation de SUSE
Pour installer des extensions de langage pour Java sur SUSE, utilisez la commande suivante.
# Install as root or sudo
sudo zypper install mssql-server-extensibility-java
Configuration post-installation (requise)
Accorder des autorisations sur Linux
Cette étape n'est pas nécessaire si vous utilisez des bibliothèques externes. Les bibliothèques externes sont l’approche recommandée. Pour obtenir de l’aide dans la création d’une bibliothèque externe à partir de votre
jarfichier, voir CREATE EXTERNAL LIBRARY.Si vous n'utilisez pas de bibliothèques externes, vous devez fournir à SQL Server les autorisations nécessaires pour exécuter les classes Java dans votre fichier
jar.Pour accorder un accès en lecture et exécution à un
jarfichier, exécutez la commande suivantechmodsur lejarfichier. Mettez toujours vos fichiers de cours dans unjarfichier lorsque vous travaillez avec SQL Server. Pour obtenir de l’aide sur la création d’unjar, consultez Créer un fichier Java .jar à partir de fichiers de classe.chmod ug+rx <MyJarFile.jar>Vous devez également donner
mssql_satellitedes autorisations pour lire et exécuter lejarfichier.chown mssql_satellite:mssql_satellite <MyJarFile.jar>La configuration supplémentaire s’effectue principalement avec l’outil mssql-conf.
Ajoutez le compte d'utilisateur
mssqlutilisé pour exécuter le service SQL Server. Cette étape est nécessaire si vous n’avez pas encore lancé la configuration auparavant.sudo /opt/mssql/bin/mssql-conf setupActivez l’accès réseau sortant. L’accès réseau sortant est désactivé par défaut. Pour activer les requêtes sortantes, activez la
outboundnetworkaccesspropriété booléenne avec l’outilmssql-conf. Pour plus d’informations, consultez Configurer SQL Server sur Linux avec mssql-conf.# Run as SUDO or root # Enable outbound requests over the network sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1Redémarrez le service SQL Server Launchpad et l'instance du moteur de base de données pour lire les valeurs mises à jour à partir du fichier INI. Un message de redémarrage vous rappelle chaque fois que vous modifiez un paramètre lié à l’extensibilité.
systemctl restart mssql-launchpadd systemctl restart mssql-server.serviceActivez l’exécution de script externe. Vous pouvez vous connecter à une instance de SQL Server à l’aide de n’importe quel outil client SQL Server familier, tel que sqlcmd, SQL Server Management Studio (SSMS) ou l’extension MSSQL pour Visual Studio Code.
EXECUTE sp_configure 'external scripts enabled', 1; RECONFIGURE WITH OVERRIDE;Redémarrez le service
mssql-launchpadd.Pour chaque base de données où vous souhaitez utiliser des extensions de langage, enregistrez le langage externe avec CREATE EXTERNAL LANGUAGE. Voir la section suivante pour les étapes.
Inscrire le langage externe
Pour chaque base de données où vous souhaitez utiliser des extensions de langage, enregistrez le langage externe avec CREATE EXTERNAL LANGUAGE.
L’exemple suivant ajoute un langage externe appelé Java à une base de données sur SQL Server sur 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"}'
);
Pour l’extension Java, la variable JRE_HOME environnement détermine le chemin pour trouver et initialiser la JVM.
Le CREATE EXTERNAL LANGUAGE DDL fournit un ENVIRONMENT_VARIABLES paramètre pour définir les variables d’environnement du processus qui héberge l’extension. Utilisez ce paramètre pour définir les variables d’environnement requises par les extensions de langage externes.
Pour plus d’informations, consultez CREATE EXTERNAL LANGUAGE.
Vérifier l’installation
L'intégration des fonctionnalités Java n'inclut pas les bibliothèques, mais vous pouvez vérifier grep -r JRE_HOME /etc que la JRE_HOME variable d'environnement existe.
Pour valider l’installation, exécutez un script T-SQL qui exécute une procédure stockée système qui appelle Java. Vous avez besoin d'un outil de requête pour cette tâche. Vous pouvez vous connecter à une instance de SQL Server à l’aide de n’importe quel outil client SQL Server familier, tel que sqlcmd, SQL Server Management Studio (SSMS) ou l’extension MSSQL pour Visual Studio Code.
Installation complète de SQL Server et de l’extension de langage Java
Pour installer et configurer le Moteur de base de données et l’extension du langage Java en une seule procédure, ajoutez des packages et paramètres Java à une commande qui installe le Moteur de base de données.
Fournissez une ligne de commande qui comprend le moteur de base de données ainsi que des fonctionnalités d'extension de langage.
La commande suivante ajoute une extensibilité Java à une installation de Moteur de base de données.
sudo yum install -y mssql-server mssql-server-extensibility-javaAcceptez les contrats de licence et terminez la configuration consécutive à l’installation. Utilise l’outil
mssql-conf.sudo /opt/mssql/bin/mssql-conf setupCette étape vous invite à accepter l’accord de licence du moteur de base de données, à choisir une édition et à définir le mot de passe de l'administrateur.
Redémarrez le service si vous le demandez.
sudo systemctl restart mssql-server.service
Installation sans assistance
Utilisez l'installation sans assistance du moteur de base de données et ajoutez les packages pour mssql-server-extensibility-java.
Installation hors connexion
Pour installer les paquets, suivez les instructions d’installation hors ligne. Trouvez votre site de téléchargement, puis téléchargez les packages spécifiques listés plus loin dans cette section.
Tip
Plusieurs outils de gestion de paquets fournissent des commandes qui vous aident à déterminer les dépendances des paquets. Pour yum, utilisez sudo yum deplist [package]. Pour Ubuntu, utilisez sudo apt-get install --reinstall --download-only [package name], suivi de dpkg -I [package name].deb.
Site de téléchargement
Téléchargez les packages depuis https://packages.microsoft.com/. Le site héberge tous les packages Java ainsi que le paquet Moteur de base de données.
Chemin de téléchargement
| Package | Distribution | Emplacement de téléchargement |
|---|---|---|
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/ |
Liste des paquets
Selon les extensions que vous souhaitez utiliser, téléchargez les packages nécessaires pour un langage spécifique. Les noms exacts des fichiers incluent les informations de plateforme dans le suffixe, mais les noms suivants vous aident à déterminer quels fichiers obtenir.
Packages principaux
mssql-server-15.0.1000mssql-server-extensibility-15.0.1000
Java
mssql-server-extensibility-java-15.0.1000
Limitations
L’authentification implicite n’est pas disponible sur Linux. Le code Java qui tourne dans le processus externe ne peut pas se reconnecter au serveur pour accéder aux données ou à d'autres ressources.
Gouvernance des ressources
Linux et Windows ont la parité pour la gouvernance des ressources pour les pools externes, mais les statistiques pour sys.dm_resource_governor_external_resource_pools montrent actuellement des unités différentes sur Linux.
Note
Les statistiques du tableau suivant proviennent des sous-systèmes de Groupes de Contrôle (cgroupes) spécifiés.
| Nom de la colonne | Description | Valeur sur Linux |
|---|---|---|
peak_memory_kb |
La mémoire maximale utilisée par le pool de ressources. | Sur Linux, cette statistique provient du sous-système memory, où la valeur est memory.max_usage_in_bytes |
write_io_count |
Le total des E/S d’écriture émis depuis la dernière réinitialisation des statistiques de Resource Governor. | Sur Linux, cette statistique provient du sous-système blkio, où la valeur de la ligne d'écriture est blkio.throttle.io_serviced |
read_io_count |
Le total des IO lus émis depuis la dernière réinitialisation des statistiques du Resource Governor. | Sous Linux, cette statistique provient du blkio sous-système, où la valeur sur la ligne de lecture est blkio.throttle.io_serviced |
total_cpu_kernel_ms |
Le temps cumulé du noyau utilisateur CPU en millisecondes depuis la dernière réinitialisation des statistiques Resource Governor. | Sur Linux, cette statistique provient du sous-système cpuacct, où la valeur de la ligne de l'utilisateur est cpuacct.stat |
total_cpu_user_ms |
Le temps cumulé d’utilisation du CPU en millisecondes depuis la dernière réinitialisation des statistiques de Resource Governor. | Sous Linux, cette statistique provient du cpuacct sous-système, où la valeur sur la ligne système est cpuacct.stat |
active_processes_count |
Nombre de processus externes en cours d’exécution au moment de la requête. | Sur Linux, cette statistique provient du sous-système pids, où la valeur est pids.current |