다음을 통해 공유


SQL Server on Linux: 알려진 문제

다음 섹션에서는 SQL Server on Linux의 알려진 문제에 대해 설명합니다.

일반

다음 표에서는 SQL Server on Linux와 관련된 가장 일반적인 문제를 나열합니다.

문제 해결 방법
SQL Server가 설치된 호스트 이름의 길이는 15자 이하여야 합니다. /etc/hostname의 이름을 15자 이하의 값으로 변경합니다.
수동으로 시스템 시간을 역방향으로 설정하면 SQL Server가 데이터베이스 엔진 내의 내부 시스템 시간 업데이트를 중지합니다. SQL Server를 다시 시작하십시오.
단일 인스턴스 설치만 지원됩니다. 지정된 호스트에 둘 이상의 인스턴스를 포함하려면 가상 머신 또는 Linux 컨테이너를 사용하는 것이 좋습니다.
SQL Server Configuration Manager는 SQL Server on Linux에 연결할 수 없습니다. 없음
계정의 sa 기본 언어는 영어입니다. 문을 사용하여 계정의 언어를 sa 변경합니다 ALTER LOGIN .
OLE DB 공급자는 다음 경고를 기록합니다.

Failed to verify the Authenticode signature of 'C:\binn\msoledbsql.dll'. Signature verification of SQL Server DLLs will be skipped. Genuine copies of SQL Server are signed. Failure to verify the Authenticode signature might indicate that this isn't an authentic release of SQL Server. Install a genuine copy of SQL Server or contact customer support.
사용자가 조치할 필요는 없습니다. OLE DB 공급자는 SHA256을 사용하여 서명됩니다. SQL Server 데이터베이스 엔진은 서명된 .dll의 유효성을 올바르게 검사하지 않습니다.
mssql-conf를 사용하는 암호 재설정 명령은 다음 오류를 throw합니다.

Unable to set the system administrator password. Please consult the ERRORLOG in /path for more information.
이 오류 메시지는 가음성입니다. 암호 재설정에 성공했으며 새 암호를 계속 사용할 수 있습니다.

적용 대상: SQL Server 2022(16.x) 컨테이너 이미지만 해당됩니다.

데이터베이스

  • master 데이터베이스는 mssql-conf 유틸리티를 사용하여 이동할 수 없습니다. 다른 시스템 데이터베이스는 mssql-conf를 통해 이동할 수 있습니다.

  • Windows의 SQL Server에서 백업된 데이터베이스를 복원할 때 Transact-SQL 문에서 WITH MOVE 절을 사용해야 합니다. 자세한 내용은 백업 및 복원을 사용하여 Windows에서 Linux로 SQL Server 데이터베이스를 마이그레이션을 참조하세요.

  • TLS(전송 계층 보안)에 대한 특정 알고리즘(암호 도구 모음)은 Linux의 SQL Server에서 제대로 작동하지 않습니다. 이로 인해 SQL Server에 연결을 시도할 때 연결 오류가 발생하며 고가용성 그룹의 복제본 간에 연결을 설정하는 데 문제가 발생합니다.

    이 문제를 해결하려면 다음 단계를 수행하여 문제가 있는 암호 도구 모음을 사용하지 않도록 SQL Server on Linux의 mssql.conf 구성 스크립트를 수정합니다.

    1. /var/opt/mssql/mssql.conf에 다음 섹션을 추가합니다. 느낌표 기호(!)는 식을 부정합니다. 이는 OpenSSL에 다음 암호화 도구 모음을 사용하지 않도록 지시합니다.

      [network]
      tlsciphers=AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:!ECDHE-RSA-AES128-GCM-SHA256:!ECDHE-RSA-AES256-GCM-SHA384:!ECDHE-ECDSA-AES256-GCM-SHA384:!ECDHE-ECDSA-AES128-GCM-SHA256:!ECDHE-ECDSA-AES256-SHA384:!ECDHE-ECDSA-AES128-SHA256:!ECDHE-ECDSA-AES256-SHA:!ECDHE-ECDSA-AES128-SHA:!ECDHE-RSA-AES256-SHA384:!ECDHE-RSA-AES128-SHA256:!ECDHE-RSA-AES256-SHA:!ECDHE-RSA-AES128-SHA:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA:!DHE-DSS-AES256-SHA256:!DHE-DSS-AES128-SHA256:!DHE-DSS-AES256-SHA:!DHE-DSS-AES128-SHA:!DHE-DSS-DES-CBC3-SHA:!NULL-SHA256:!NULL-SHA
      
    2. 다음 명령을 사용하여 SQL Server를 다시 시작합니다.

      sudo systemctl restart mssql-server
      
  • 메모리 내 OLTP를 사용하는 Windows의 SQL Server 2014(12.x) 데이터베이스는 SQL Server on Linux로 복원할 수 없습니다. SQL Server 2014(12.x) 데이터베이스에서 메모리 내 OLTP를 사용하는 경우 먼저 데이터베이스를 Windows의 최신 버전 SQL Server로 업그레이드합니다. 그런 다음 백업/복원을 사용하거나 분리/연결을 사용하여 SQL Server on Linux로 이동할 수 있습니다.

  • 현재 사용자 권한 ADMINISTER BULK OPERATIONS는 Linux에서 지원되지 않습니다.

  • SQL Server 2019(15.x) CU 16 이상 버전을 사용하여 만든 TDE 압축 백업은 SQL Server 2019(15.x)의 이전 CU 버전으로 복원할 수 없습니다. 자세한 내용은 FIX: RESTORE LOG 또는 RESTORE DATABASE를 실행하는 동안 오류 3241이 발생합니다를 참조하세요.

    이전 CU 버전의 SQL Server 2019(15.x)를 사용하여 만든 TDE(투명한 데이터 암호화) 압축 백업은 SQL Server 2019(15.x) CU 16 이상 버전을 사용하여 복원할 수 있습니다.

  • Ubuntu 22.04에 SQL Server 2022(16.x)를 설치하면 Failed to start Microsoft SQL Server Database Engine 오류 메시지가 표시될 수 있습니다. 오류 로그를 검토하면 시스템 데이터베이스에 대한 잘못된 경로가 표시됩니다.

    이 문제를 해결하려면 단일 사용자 모드에서 인스턴스를 시작하고 ALTER DATABASE ... MODIFY FILE을 사용하여 시스템 데이터베이스의 구성된 위치 /var/opt/mssql/data를 기본 위치로 이동합니다. 이 변경 후 서비스를 다시 시작합니다.

네트워크

다음 조건이 둘 다 충족되는 경우 연결된 서버, PolyBase 또는 가용성 그룹과 같은 sqlservr 프로세스의 아웃바운드 TCP 연결에 관련된 기능이 작동하지 않을 수 있습니다.

  • 대상 서버는 IP 주소가 아닌 호스트 이름으로 지정됩니다.

  • 원본 인스턴스의 IPv6는 커널에서 사용하지 않도록 설정되어 있습니다. 커널에서 시스템의 IPv6이 사용하도록 설정되어 있는지 확인하려면 다음 테스트를 모두 통과해야 합니다.

    • cat /proc/cmdline은 현재 커널의 부팅 명령줄을 인쇄합니다. 출력에는 ipv6.disable=1이 포함되지 않아야 합니다.
    • /proc/sys/net/ipv6/ 디렉터리가 있어야 합니다.
    • socket(AF_INET6, SOCK_STREAM, IPPROTO_IP)을 호출하는 C 프로그램이 성공해야 합니다. syscall은 fd != -1을 반환해야 하며 EAFNOSUPPORT로 실패하지 않아야 합니다.

정확한 오류는 기능에 따라 달라집니다. 연결된 서버의 경우 로그인 시간 제한 오류가 표시됩니다. 가용성 그룹의 경우 보조의 ALTER AVAILABILITY GROUP JOIN DDL이 5분 후에 download configuration timeout 오류로 실패합니다.

이 문제를 해결하려면 다음 옵션 중 하나를 수행합니다.

  • 호스트 이름 대신 IP를 사용하여 TCP 연결의 대상을 지정합니다.

  • 부팅 명령줄에서 ipv6.disable=1을 제거하여 커널에서 IPv6을 사용하도록 설정합니다. 방법은 grub과 같은 Linux 배포 및 부트로더에 따라 다릅니다. IPv6을 사용하지 않도록 설정하려면 sysctl 구성(예: /etc/sysctl.conf)에서 net.ipv6.conf.all.disable_ipv6 = 1을 설정하여 사용하지 않도록 설정할 수도 있습니다. 이렇게 설정하면 시스템의 네트워크 어댑터가 IPv6 주소를 가져올 수 없지만 sqlservr 기능이 작동할 수 있습니다.

TLS 1.3은 지원되지 않음

적용 대상: SQL Server 2022(16.x)만 해당됩니다.

TLS 1.3은 Windows용 SQL Server 2022(16.x)에서 지원되지만 Linux에서는 TLS 1.2를 사용해야 합니다.

NFS(네트워크 파일 시스템)

프로덕션에서 NFS(네트워크 파일 시스템) 원격 공유를 사용하는 경우 다음과 같은 지원 요구 사항을 확인합니다.

  • NFS 버전 4.2 이상 버전을 사용합니다. 이전 버전의 NFS는 최신 파일 시스템에서 일반적으로 필요한 기능(예: fallocate 및 스파스 파일 만들기)을 지원하지 않습니다.

  • NFS 탑재에 /var/opt/mssql 디렉터리만 배치합니다. SQL Server 시스템 이진 파일 등의 다른 파일은 지원되지 않습니다.

  • NFS 클라이언트가 원격 공유를 탑재할 때 nolock 옵션을 사용하는지 확인합니다.

지역화

  • 설치하는 동안 로캘이 영어(en_us)가 아닌 경우 bash 세션/터미널에서 UTF-8 인코딩을 사용해야 합니다. ASCII 인코딩을 사용하는 경우 다음 출력과 유사한 오류가 표시될 수 있습니다.

    UnicodeEncodeError: 'ascii' 코덱은 위치 8에서 문자 u'\xf1'을 인코딩할 수 없습니다. 서수가 범위에 없음(128)

    UTF-8 인코딩을 사용할 수 없는 경우 MSSQL_LCID 환경 변수를 사용하여 설치 프로그램을 실행하고 원하는 언어를 지정합니다.

    sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setup
    
  • mssql-conf setup을 실행하고 영어 이외의 SQL Server 설치를 수행할 때 잘못된 확장 문자가 지역화된 텍스트 “SQL Server를 구성하는 중...” 뒤에 표시됩니다. 또는 라틴어 이외 설치의 경우 문장이 완전히 누락될 수 있습니다. 누락된 문장에는 다음 지역화된 문자열이 표시되어야 합니다.

    라이선싱 PID가 성공적으로 처리되었습니다. 새 버전은 [<Name> Edition]입니다.

    이 문자열은 정보용으로만 출력되며 SQL Server 설치 성공에 영향을 주지 않습니다.

이 릴리스에서는 Microsoft Office 문서용 필터를 비롯한 일부 필터를 사용할 수 없습니다. 지원되는 필터 목록은 Linux에서 SQL Server 전체 텍스트 검색 설치를 참조하세요.

SSIS(SQL Server Integration Services)

mssql-server-is 패키지는 SLES(SUSE Linux Enterprise Server)에서 지원되지 않습니다. 해당 패키지는 Ubuntu 및 RHEL(Red Hat Enterprise Linux)에서 지원됩니다.

Integration Services 패키지는 Linux에서 ODBC 연결을 사용할 수 있습니다. 이 기능은 SQL Server 및 MySQL ODBC 드라이버로 테스트되었지만 ODBC 사양을 준수하는 모든 유니코드 ODBC 드라이버에서도 작동할 것으로 예상됩니다. 디자인 타임에 ODBC 데이터에 연결하기 위한 DSN 또는 연결 문자열을 제공할 수 있습니다. Windows 인증을 사용할 수도 있습니다. 자세한 내용은 Linux의 ODBC 지원을 알리는 블로그 게시물을 참조하세요.

Linux에서 SSIS 패키지를 실행할 경우 이번 릴리스에서는 다음 기능이 지원되지 않습니다.

  • Integration Services 카탈로그 데이터베이스
  • SQL Server 에이전트에서 예약된 패키지 실행
  • Windows 인증
  • 타사 구성 요소
  • CDC(변경 데이터 캡처)
  • Integration Services Scale Out
  • SSIS용 Azure 기능 팩
  • Hadoop 및 HDFS 지원
  • Microsoft Connector for SAP BW

현재 지원되지 않거나 제한적으로 지원되는 기본 제공 SSIS 구성 요소 목록은 Linux의 SSIS에 대한 제한 사항 및 알려진 문제를 참조하세요.

Linux SSIS에 대한 자세한 내용은 다음 문서를 참조하세요.

SSMS(SQL Server Management Studio)

다음 제한 사항은 SQL Server on Linux에 연결된 Windows의 SQL Server Management Studio에 적용됩니다.

  • 유지 관리 계획은 지원되지 않습니다.

  • MDW(관리 데이터 웨어하우스) 및 SQL Server Management Studio의 데이터 수집기는 지원되지 않습니다.

  • Windows 인증 또는 Windows 이벤트 로그 옵션을 포함하는 SQL Server Management Studio UI 구성 요소는 Linux에서 작동하지 않습니다. SQL Server 로그인과 같은 다른 옵션과 함께 이 기능을 계속 사용할 수 있습니다.

  • 보존할 로그 파일 수는 수정할 수 없습니다.

고가용성 및 재해 복구

적용 대상: SQL Server 2022(16.x)만 해당됩니다.

SELinux를 사용하도록 설정된 제한된 애플리케이션으로 RHEL 9에서 SQL Server 2022(16.x)를 실행하는 경우 Pacemaker 클러스터링이 예상대로 작동하지 않을 수 있습니다. Pacemaker 클러스터링 기능을 사용하려면 SQL Server 2022(16.x)를 SELinux가 켜져 있는 정의되지 않은 애플리케이션으로 설치해야 합니다.

Machine Learning Services

적용 대상: SQL Server 2022(16.x)만 해당됩니다.

RHEL 9 및 Ubuntu 22.04용 SQL Server 2022(16.x) 패키지의 경우 Machine Learning Services를 설치하기 전에 cgroup-v1에서 고려해야 할 몇 가지 필수 구성 요소가 있습니다.

  1. 필수 구성 요소로, cgroup-v1은 Red Hat에서 cgroupfs를 사용하여 cgroups Red Hat Enterprise Linux 9를 수동으로 관리하는 경우와 같이 사용하도록 설정해야 합니다.

  2. 그런 다음 지침에 따라 설명된 대로 SQL Machine Learning Services를 설치합니다.

  3. 네트워크 네임스페이스 격리를 사용하지 않도록 설정합니다.

    sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1
    
  4. 변경 내용이 적용되도록 mssql-launchpadd 서비스를 다시 시작합니다.

    sudo systemctl restart mssql-launchpadd