Linux에서 SQL Server 문제 해결Troubleshoot SQL Server on Linux

이 항목은 다음에 적용됩니다. 아니요Windows의 SQL Server예Linux의 SQL Server아니요Azure SQL Database아니요Azure SQL Data Warehouse아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO: noSQL Server on WindowsyesSQL Server on LinuxnoAzure SQL DatabasenoAzure SQL Data WarehousenoParallel Data Warehouse

이 문서에서는 Docker 컨테이너에서 또는 Linux에서 실행 중인 Microsoft SQL Server 문제를 해결 하는 방법을 설명 합니다.This document describes how to troubleshoot Microsoft SQL Server running on Linux or in a Docker container. Linux에서 SQL Server 문제를 해결 해야 지원 되는 기능 및의 알려진된 제한 사항을 검토 하 고 Linux 릴리스 정보에서 SQL Server합니다.When troubleshooting SQL Server on Linux, please remember to review the supported features and known limitations in the SQL Server on Linux Release Notes.

연결 오류 문제 해결 Troubleshoot connection failures

Linux SQL Server에 연결 하는 데 문제가 있는 경우 확인할 몇 가지 있습니다.If you are having difficulty connecting to your Linux SQL Server, there are a few things to check.

  • 서버 이름 또는 IP 주소는 클라이언트 컴퓨터에서 연결할 수 있는지 확인 합니다.Verify that the server name or IP address is reachable from your client machine.

    Ubuntu 컴퓨터의 IP 주소를 확인 하려면 다음 예제와 같이 ifconfig 명령을 실행할 수 있습니다.To find the IP address of your Ubuntu machine, you can run the ifconfig command as in the following example:

    sudo ifconfig eth0 | grep 'inet addr'
    

    Red Hat에 대 한 다음 예제와 같이 ip 주소를 사용할 수 있습니다.For Red Hat, you can use the ip addr as in the following example:

    sudo ip addr show eth0 | grep "inet"
    

    이 기술은 한 가지 예외는 Azure Vm을 연결합니다.One exception to this technique relates to Azure VMs. Azure Vm에 대 한 Azure 포털에서 VM에 대 한 공용 IP를 찾을합니다.For Azure VMs, find the public IP for the VM in the Azure portal.

  • 해당 하는 경우 방화벽에서 SQL Server 포트 (기본값 1433)를 열었는지 확인 합니다.If applicable, check that you have opened the SQL Server port (default 1433) on the firewall.

  • Azure Vm에 대 한 권한이 있는지 확인 한 기본 SQL Server 포트에 대 한 네트워크 보안 그룹 규칙합니다.For Azure VMs, check that you have a network security group rule for the default SQL Server port.

  • 사용자 이름 및 암호 포함 되지 않도록 입력 오류 또는 추가 공백이 나 잘못 된 대/소문자를 확인 합니다.Verify that the user name and password do not contain any typos or extra spaces or incorrect casing.

  • 다음과 같은 서버 이름으로 프로토콜 및 포트 번호를 명시적으로 설정 하려고: tcp:servername, 1433합니다.Try to explicitly set the protocol and port number with the server name like the following: tcp:servername,1433.

  • 연결 오류 및 시간 제한에도 네트워크 연결 문제가 발생할 수 있습니다.Network connectivity issues can also cause connection errors and timeouts. 연결 정보 및 네트워크 연결을 확인 한 후 연결을 다시 시도 하십시오.After verifying your connection information and network connectivity, try the connection again.

SQL Server 서비스를 관리 합니다.Manage the SQL Server service

다음 섹션에는 시작, 중지, 다시 시작 하 고, SQL Server 서비스의 상태를 확인 하는 방법을 보여 줍니다.The following sections show how to start, stop, restart, and check the status of the SQL Server service.

Red Hat Enterprise Linux (RHEL) 및 Ubuntu mssql 서버 서비스를 관리 합니다.Manage the mssql-server service in Red Hat Enterprise Linux (RHEL) and Ubuntu

이 명령을 사용 하는 SQL Server 서비스의 상태의 상태를 확인 합니다.Check the status of the status of the SQL Server service using this command:

sudo systemctl status mssql-server

중지, 시작 또는 다음 명령을 사용 하 여 필요에 따라 SQL Server 서비스를 다시 시작 수 있습니다.You can stop, start, or restart the SQL Server service as needed using the following commands:

sudo systemctl stop mssql-server
sudo systemctl start mssql-server
sudo systemctl restart mssql-server

Mssql Docker 컨테이너의 실행을 관리Manage the execution of the mssql Docker container

(ID는 "컨테이너 ID" 열 수는) 다음 명령을 실행 하 여 만든된 최신 SQL Server Docker 컨테이너의 상태 및 컨테이너 ID를 가져올 수 있습니다.You can get the status and container ID of the latest created SQL Server Docker container by running the following command (The ID will be under the “CONTAINER ID” column):

sudo docker ps -l

다음 명령을 사용 하 여 필요에 따라 SQL Server 서비스를 다시 시작 하거나 중지할 수 있습니다.You can stop or restart the SQL Server service as needed using the following commands:

sudo docker stop <container ID>
sudo docker restart <container ID>

Docker에 대 한 자세한 문제 해결 팁에 대 한 참조 SQL Server 문제 해결 Docker 컨테이너합니다.For more troubleshooting tips for Docker, see Troubleshooting SQL Server Docker containers.

로그 파일에 액세스Access the log files

SQL Server 엔진 Linux과 Docker를 모두 설치에서 /var/opt/mssql/log/errorlog 파일에 로깅.The SQL Server engine logs to the /var/opt/mssql/log/errorlog file in both the Linux and Docker installations. 이 디렉터리를 찾을 수 'superuser' 모드에 포함 되도록 해야 합니다.You need to be in ‘superuser’ mode to browse this directory.

설치 관리자 로그 여기: / var/옵트인/mssql/설정-< 설치의 시간을 나타내는 타임 스탬프 > 다음과 같이 '분류기' 또는 'vim' 같은 모든 u t F-16 호환 도구 사용 하 여 오류 로그 파일을 찾아볼 수 있습니다.The installer logs here: /var/opt/mssql/setup-< time stamp representing time of install> You can browse the errorlog files with any UTF-16 compatible tool like ‘vim’ or ‘cat’ like this:

sudo cat errorlog

원하는 경우 변환할 수도 있습니다는 파일을 u t F-8로 읽을 수 '' 다소간 '' 다음 명령을 사용 합니다.If you prefer, you can also convert the files to UTF-8 to read them with ‘more’ or ‘less’ with the following command:

sudo iconv –f UTF-16LE –t UTF-8 <errorlog> -o <output errorlog file>

확장 이벤트Extended events

SQL 명령을 통해 확장된 이벤트를 쿼리할 수 있습니다.Extended events can be queried via a SQL command. 확장된 이벤트에 대 한 자세한 정보를 찾을 수 여기:More information about extended events can be found here:

크래시 덤프Crash dumps

Linux에서 로그 디렉터리에 덤프를 찾습니다.Look for dumps in the log directory in Linux. Linux 핵심 덤프 /var/opt/mssql/log 디렉터리에서 확인 하십시오 (. tar.gz2 확장) 또는 SQL 미니 덤프 (.mdmp 확장명)Check under the /var/opt/mssql/log directory for Linux Core dumps (.tar.gz2 extension) or SQL minidumps (.mdmp extension)

코어 덤프에 대 한For Core dumps

sudo ls /var/opt/mssql/log | grep .tar.gz2 

SQL 덤프에 대 한For SQL dumps

sudo ls /var/opt/mssql/log | grep .mdmp 

일반적인 문제Common issues

  1. 원격 SQL Server 인스턴스에 연결할 수 없습니다.You can not connect to your remote SQL Server instance.

    항목의 문제 해결 섹션을 참조 Linux에서 SQL Server에 연결합니다.See the troubleshooting section of the topic, Connect to SQL Server on Linux.

  2. 오류: 호스트 이름이 15 자 여야 합니다 또는 작습니다.ERROR: Hostname must be 15 characters or less.

    SQL Server Debian 패키지 설치를 시도 하는 컴퓨터 이름이 15 자 보다 긴 될 때마다 발생 하는 알려진 문제입니다.This is a known-issue that happens whenever the name of the machine that is trying to install the SQL Server Debian package is longer than 15 characters. 현재 제공 아닌 컴퓨터의 이름을 변경 하는 다른 해결 방법은 없습니다.There are currently no workarounds other than changing the name of the machine. 이 작업을 수행할 가지 방법은 호스트 파일을 편집 하는 컴퓨터 다시 부팅 하는 것입니다.One way to achieve this is by editing the hostname file and rebooting the machine. 다음 웹 사이트 가이드 이에 대해 자세히 설명 합니다.The following website guide explains this in detail.

  3. 시스템 관리 (SA) 암호 다시 설정 합니다.Resetting the system administration (SA) password.

    시스템 관리자 (SA) 암호를 잊어버린 또는 다른 이유로 다시 설정 해야 할 경우에 다음이 단계를 수행 하십시오.If you have forgotten the system administrator (SA) password or need to reset it for some other reason please follow these steps.

    참고

    다음 단계에 따라 SQL Server 서비스를 일시적으로 중지 됩니다.Following these steps will stop the SQL Server service temporarily.

    호스트 터미널을 로그인 하 고 다음 명령을 실행 한 다음 지시에 따라 SA 암호를 다시 설정:Log into the host terminal, run the following commands and follow the prompts to reset the SA password:

    sudo systemctl stop mssql-server
    sudo /opt/mssql/bin/mssql-conf setup
    
  4. 암호에 특수 문자를 사용 합니다.Using special characters in password.

    SQL Server 로그인 암호의 일부 문자를 사용 하는 경우 Linux 터미널에 사용 하는 경우 이스케이프 해야 합니다.If you use some characters in the SQL Server login password you may need to escape them when using them in the Linux terminal. $ 이스케이프 해야 합니다는 백슬래시 문자를 사용 하 여 언제 든 지 사용 터미널 명령/셸 스크립트에서:You will need to escape the $ anytime using the backslash character you are using it in a terminal command/shell script:

    작동 하지 않습니다.Does not work:

    sudo sqlcmd -S myserver -U sa -P Test$$
    

    작동 합니다.Works:

    sqlcmd -S myserver -U sa -P Test\$\$
    

    리소스: 특수 문자 EscapingResources: Special characters Escaping

지원Support

커뮤니티를 통해 사용 가능 하 고 엔지니어링 팀에서 모니터링 되는 것이 지원은합니다.Support is available through the community and monitored by the engineering team. 특정 질문에 대 한 다음 리소스를 사용 합니다.For specific questions, use the following resources: