Linux에 SQL Server Java 언어 확장 설치
적용 대상: SQL Server 2019(15.x) - Linux 이상 버전
SQL Server on Linux용 Java 언어 확장 구성 요소를 설치하는 방법을 알아봅니다. Java 언어 확장은 SQL Server 언어 확장의 일부이며 데이터베이스 엔진 추가 기능입니다.
데이터베이스 엔진 및 언어 확장을 동시에 설치할 수 있지만 구성 요소를 추가하기 전에 문제를 해결할 수 있도록 먼저 SQL Server 데이터베이스 엔진 설치하고 구성하는 것이 좋습니다.
사전 요구 사항
Linux 버전은 SQL Server에서 지원되어야 하지만 Docker 엔진은 포함하지 않습니다. 지원되는 버전은 다음과 같습니다.
T-SQL(Transact-SQL) 명령을 실행하기 위한 도구가 있어야 합니다. 설치 후 구성 및 유효성 검사에는 쿼리 편집기가 필요합니다. Linux에서 실행되는 체험용 다운로드인 Azure Data Studio를 권장합니다.
- Java 확장의 패키지 위치는 SQL Server Linux 원본 리포지토리에 있습니다. 데이터베이스 엔진 설치에 대한 원본 리포지토리를 이미 구성한 경우 동일한 리포지토리 등록을 사용하여 패키지 설치 명령을 실행할
mssql-server-extensibility-java
수 있습니다.
언어 확장은 Linux 컨테이너에서도 지원됩니다. 미리 빌드된 컨테이너에는 언어 확장이 제공되지 않지만 GitHub에서 사용할 수 있는 예제 템플릿을 사용하여 SQL Server 컨테이너에서 만들 수 있습니다.
언어 확장 및 Machine Learning Services는 SQL Server 빅 데이터 클러스터에 기본적으로 설치됩니다. 빅 데이터 클러스터 사용하는 경우 이 문서의 단계를 따를 필요가 없습니다. 자세한 내용은 SQL Server 2019 빅 데이터 클러스터 Machine Learning Services를 사용하여 Python 및 R 스크립트 실행을 참조하세요.
패키지 목록
인터넷에 연결된 디바이스에서 패키지는 각 운영 체제에 대한 패키지 설치 관리자를 사용하여 데이터베이스 엔진 독립적으로 다운로드되고 설치됩니다. 다음 표에서는 이용 가능한 모든 패키지에 대해 설명합니다.
패키지 이름 | 적용 대상 | 설명 |
---|---|---|
mssql-server-extensibility |
모든 언어 | Java 언어 확장에 사용되는 확장성 프레임워크 |
mssql-server-extensibility-java |
Java | 적용 대상: Linux에서만 SQL Server 2019(15.x) Java 언어 확장에 사용되고 지원되는 Java 런타임을 포함하는 확장성 프레임워크 |
Java 언어 확장 설치
를 설치하여 Linux에 언어 확장 및 Java를 설치할 수 있습니다 mssql-server-extensibility-java
. 설치 mssql-server-extensibility-java
할 때 패키지가 아직 설치되지 않은 경우 JRE 11을 자동으로 설치합니다. 또한 JVM 경로를 라는 JRE_HOME
환경 변수에 추가합니다.
Java 언어 확장을 사용하도록 설정하려면 GitHub의 Java 언어 확장 페이지의 지침에 따라 사용자 지정 이진 파일을 빌드합니다.
참고
인터넷에 연결된 서버에서 패키지 종속성이 다운로드되고 주 패키지 설치의 일부로 설치됩니다. 서버가 인터넷에 연결되어 있지 않은 경우 오프라인 설정에서 자세한 내용을 참조하세요.
최신 Microsoft Build of OpenJDK 또는 공식적으로 라이선스가 부여된 Java 런타임을 포함하여 원하는 대로 Java 런타임을 다운로드하고 설치할 수 있습니다. SQL Server 2022(16.x)부터 SQL Server 설치 프로그램은 Java 런타임을 설치하지 않습니다.
Java 언어 확장을 사용하도록 설정하려면 GitHub의 Java 언어 확장 페이지의 지침에 따라 사용자 지정 이진 파일을 빌드합니다.
Red Hat 설치 명령
다음 명령을 사용하여 Red Hat에 Java용 언어 확장을 설치할 수 있습니다.
팁
가능하면 yum clean all
을 실행하여 설치 전에 시스템에서 패키지를 새로 고칩니다.
# Install as root or sudo
sudo yum install mssql-server-extensibility-java
Ubuntu 설치 명령
다음 명령을 사용하여 Ubuntu에 Java용 언어 확장을 설치할 수 있습니다.
팁
가능하면 apt-get update
을 실행하여 설치 전에 시스템에서 패키지를 새로 고칩니다. 또한 Ubuntu의 일부 docker 이미지에는 https apt 전송 옵션이 없을 수도 있습니다. 설치하려면 apt-get install apt-transport-https
를 사용합니다.
# Install as root or sudo
sudo apt-get install mssql-server-extensibility-java
SUSE 설치 명령
다음 명령을 사용하여 SUSE에 Java용 언어 확장을 설치할 수 있습니다.
# Install as root or sudo
sudo zypper install mssql-server-extensibility-java
설치 후 구성(필수)
Linux에 사용 권한 부여
외부 라이브러리를 사용하는 경우 이 단계를 수행할 필요가 없습니다. 권장되는 작업 방법은 외부 라이브러리를 사용하는 것입니다. 파일에서 외부 라이브러리를 만드는 방법에 대한 도움말은 CREATE EXTERNAL LIBRARY를 참조하세요
jar
.외부 라이브러리를 사용하지 않는 경우 SQL Server에 Java 클래스를 실행할 수 있는 권한을 제공해야 합니다
jar
.파일에 대한 읽기 및 실행 액세스 권한을
jar
부여하려면 파일에서 다음 chmod 명령을jar
실행합니다. SQL Server로 작업할 때는 항상 클래스 파일을jar
배치하는 것이 좋습니다. 만들기에 대한 도움말은jar
클래스 파일에서 Java jar 파일 만들기를 참조 하세요.chmod ug+rx <MyJarFile.jar>
또한 파일을 읽고 실행할 수 있는 권한을
jar
부여mssql_satellite
해야 합니다.chown mssql_satellite:mssql_satellite <MyJarFile.jar>
추가 구성은 주로 mssql-conf tool을 통해 진행됩니다.
mssql
SQL Server 서비스를 실행하는 데 사용되는 사용자 계정을 추가합니다. 이는 이전에 설치를 실행하지 않은 경우에 필요합니다.sudo /opt/mssql/bin/mssql-conf setup
아웃바운드 네트워크 액세스를 사용하도록 설정합니다. 아웃바운드 네트워크 액세스는 기본적으로 사용 안 함으로 설정됩니다. 아웃바운드 요청을 사용하도록 설정하려면 mssql-conf 도구를 사용하여 부울 속성을 설정합니다
outboundnetworkaccess
. 자세한 내용은 mssql-conf를 사용하여 SQL Server on Linux 구성을 참조하세요.# Run as SUDO or root # Enable outbound requests over the network sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1
SQL Server 실행 패드 서비스 및 데이터베이스 엔진 인스턴스를 다시 시작하여 INI 파일에서 업데이트된 값을 읽습니다. 다시 시작 메시지가 확장성 관련 설정이 수정될 때마다 사용자에게 알려줍니다.
systemctl restart mssql-launchpadd systemctl restart mssql-server.service
Azure Data Studio 또는 T-SQL을 실행하는 SQL Server Management Studio(Windows 전용)와 같은 다른 도구를 사용하여 외부 스크립트 실행을 사용하도록 설정합니다.
EXEC sp_configure 'external scripts enabled', 1; RECONFIGURE WITH OVERRIDE;
mssql-launchpadd
서비스를 다시 시작합니다.언어 확장을 사용하려는 각 데이터베이스에 대해 외부 언어 만들기를 사용하여 외부 언어를 등록해야 합니다. 다음 섹션에서 단계를 참조하세요.
외부 언어 등록
언어 확장을 사용하려는 각 데이터베이스에 대해 외부 언어 만들기를 사용하여 외부 언어를 등록해야 합니다.
다음 예제는 SQL Server on Linux의 데이터베이스에 외부 언어가 호출한 Java를 추가합니다.
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 확장의 경우 JRE_HOME
환경 변수를 사용하여 JVM을 찾고 초기화할 경로를 결정합니다.
DDL은 CREATE EXTERNAL LANGUAGE
확장을 호스팅하는 프로세스에 대해 특별히 환경 변수를 설정하는 매개 변수(ENVIRONMENT_VARIABLES
)를 제공합니다. 이 프로세스는 외부 언어 확장에 필요한 환경 변수를 설정하는 권장되고 가장 효과적인 방법입니다.
자세한 내용은 외부 언어 만들기를 참조하세요.
설치 확인
Java 기능 통합에는 라이브러리가 포함되지 않지만 실행 grep -r JRE_HOME /etc
하여 환경 변수 만들기를 JAVA_HOME
확인할 수 있습니다.
설치의 유효성을 검사하려면 Java를 호출하는 시스템 저장 프로시저를 실행하는 T-SQL 스크립트를 실행합니다. 이 작업에 대한 쿼리 도구가 필요합니다. Azure Data Studio를 선택하는 것이 좋습니다. SQL Server Management Studio와 같은 다른 일반적으로 사용되는 도구는 Windows 전용입니다. 이러한 도구를 사용하는 Windows 컴퓨터가 있는 경우 이를 사용하여 데이터베이스 엔진 Linux 설치에 연결합니다.
SQL Server 및 Java 언어 확장의 전체 설치
데이터베이스 엔진 설치하는 명령에 Java 패키지 및 매개 변수를 추가하여 한 절차에서 데이터베이스 엔진 및 Java 언어 확장을 설치하고 구성할 수 있습니다.
데이터베이스 엔진 포함하는 명령줄과 언어 확장 기능을 제공합니다.
java 확장성을 데이터베이스 엔진 설치에 추가할 수 있습니다.
sudo yum install -y mssql-server mssql-server-extensibility-java
사용권 계약에 동의하고 설치 후 구성을 완료합니다. 이 작업을 위해 mssql-conf 도구를 사용합니다.
sudo /opt/mssql/bin/mssql-conf setup
이 단계에서는 데이터베이스 엔진 대한 사용권 계약에 동의하고, 버전을 선택하고, 관리자 암호를 설정하라는 메시지를 표시합니다.
서비스를 다시 시작하라는 메시지가 표시되면 서비스를 다시 시작합니다.
sudo systemctl restart mssql-server.service
무인 설치
데이터베이스 엔진 무인 설치를 사용하고 패키지를 추가합니다mssql-server-extensibility-java
.
오프라인 설치
패키지 설치 단계의 오프라인 설치 지침을 따릅니다. 다운로드 사이트를 찾은 다음 이 섹션의 뒷부분에 있는 패키지 목록을 사용하여 특정 패키지를 다운로드합니다.
팁
여러 패키지 관리 도구에서 패키지 종속성을 확인하는 데 도움이 되는 명령을 제공합니다. Yum의 경우 sudo yum deplist [package]
를 사용합니다. Ubuntu의 경우 dpkg -I [package name].deb
와 sudo apt-get install --reinstall --download-only [package name]
을 차례로 사용합니다.
다운로드 사이트
https://packages.microsoft.com/에서 패키지를 다운로드할 수 있습니다. Java용 모든 패키지는 데이터베이스 엔진 패키지와 함께 배치됩니다.
다운로드 경로
Package(패키지) | 배포 | 다운로드 위치 |
---|---|---|
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/ |
패키지 목록
사용하려는 확장에 따라 특정 언어에 필요한 패키지를 다운로드합니다. 정확한 파일 이름은 접미사에 플랫폼 정보를 포함하지만 다음 파일 이름은 가져올 파일을 결정하는 데 도움이 됩니다.
핵심 패키지
mssql-server-15.0.1000
mssql-server-extensibility-15.0.1000
Java
mssql-server-extensibility-java-15.0.1000
제한 사항
현재 Linux에서는 암시적 인증을 사용할 수 없습니다. 즉, 진행 중인 Java에서 서버에 다시 연결하여 데이터 또는 기타 리소스에 액세스할 수 없습니다.
리소스 거버넌스
외부 리소스 풀에 대한 Linux와 Windows for Resource Governance 간에는 패리티가 있지만 sys.dm_resource_governor_external_resource_pools 대한 통계는 현재 Linux에서 서로 다른 단위를 가지고 있습니다.
참고 항목
다음 표의 통계는 지정된 컨트롤 그룹(cgroups) 하위 시스템으로부터 제공됩니다.
열 이름 | Description | Linux의 값 |
---|---|---|
peak_memory_kb |
리소스 풀에 사용되는 최대 메모리 양입니다. | Linux에서 이 통계는 값이 memory 있는 하위 시스템의 원본입니다. memory.max_usage_in_bytes |
write_io_count |
Resource Governor 통계를 다시 설정한 후 발생한 총 쓰기 IO입니다. | Linux에서 이 통계는 쓰기 행의 값이 blkio 있는 하위 시스템의 출처입니다. blkio.throttle.io_serviced |
read_io_count |
Resource Governor 통계를 다시 설정한 후 발생한 총 읽기 IO입니다. | Linux에서 이 통계는 읽기 행의 값이 blkio 있는 하위 시스템의 원본입니다. blkio.throttle.io_serviced |
total_cpu_kernel_ms |
Resource Governor 통계를 다시 설정한 후 누적된 CPU 사용자 커널 시간(밀리초)입니다. | Linux에서 이 통계는 사용자 행의 값이 cpuacct 있는 하위 시스템의 출처입니다. cpuacct.stat |
total_cpu_user_ms |
Resource Governor 통계를 다시 설정한 후 누적된 CPU 사용자 시간(밀리초)입니다. | Linux에서 이 통계는 시스템 행 값의 cpuacct 값이 있는 하위 시스템에서 가져옵니다. cpuacct.stat |
active_processes_count |
요청 순간에 실행되는 외부 프로세스의 수입니다. | Linux에서 이 통계는 값이 pids 있는 하위 시스템의 원본입니다. pids.current |
관련 콘텐츠
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기