다음을 통해 공유


SMB 파일 공유 스토리지를 사용하여 SQL Server 설치

적용 대상:SQL Server - Windows만 해당

SQL Server 2012(11.x) 이상 버전에서는 시스템 데이터베이스(master, model, msdbtempdb) 및 데이터베이스 엔진 사용자 데이터베이스를 스토리지 옵션으로 SMB(서버 메시지 블록) 파일 서버와 함께 설치할 수 있습니다. 이는 SQL Server 독립 실행형 설치와 SQL Server FCI(장애 조치(Failover) 클러스터 설치) 모두에 적용됩니다.

참고

FILESTREAM은 현재 SMB 파일 공유에서 지원되지 않습니다.

설치 고려 사항

SMB 파일 공유 형식

SMB 파일 공유를 지정할 때 다음 값은 독립 실행형 및 FCI 데이터베이스에 대해 지원되는 UNC(범용 명명 규칙) 경로 형식입니다.

  • \\ServerName\ShareName\
  • \\ServerName\ShareName

자세한 내용은 유니버설 명명 규칙참조하세요.

루프백 UNC 경로(서버 이름이 localhost, 127.0.0.1또는 로컬 컴퓨터 이름인 UNC 경로)는 지원되지 않습니다. 특수한 경우, SQL Server와 동일한 노드에서 호스트되는 파일 서버 클러스터가 있는 SQL Server도 지원되지 않습니다. 이 상황을 방지하려면 분리된 Windows 클러스터에 SQL Server 및 파일 서버 클러스터를 만들어야 합니다.

다음 UNC 경로 형식은 지원되지 않습니다.

  • 루프백 경로(예: \\localhost\...\ 또는 \\127.0.0.1\...\)
  • 관리 공유(예: \\servername\x$)
  • 기타 UNC 경로 형식(예: \\?\x:\)
  • 연결된 네트워크 드라이브

지원되는 DDL(데이터 정의 언어) 문

다음 Transact-SQL DDL 문과 데이터베이스 엔진 저장 프로시저는 SMB 파일 공유를 지원합니다.

  1. CREATE DATABASE
  2. 데이터베이스 변경
  3. RESTORE 문
  4. 백업

설치 옵션

  • 설치 사용자 인터페이스의 데이터베이스 엔진 구성 페이지의 데이터 디렉터리 탭에서 매개 변수 데이터 루트 디렉터리\\<FileServer>\<Share1>\설정합니다. <FileServer><Share1>을 사용 중인 환경의 값으로 대체합니다.

  • 명령 프롬프트 설치에서 /INSTALLSQLDATADIR\\<FileServer>\<Share1>\로 지정합니다.

    다음은 SMB 파일 공유 옵션을 사용하여 독립 실행형 서버에 SQL Server를 설치하는 샘플 구문입니다.

    Setup.exe /q /ACTION=Install /FEATURES=SQL /INSTANCENAME=MSSQLSERVER /SQLSVCACCOUNT="<DomainName\UserName>" /SQLSVCPASSWORD="<password>" /SQLSYSADMINACCOUNTS="<DomainName\UserName>" /AGTSVCACCOUNT="<DomainName\UserName>" /AGTSVCPASSWORD="<password>" /INSTALLSQLDATADIR="\\FileServer\Share1\" /IACCEPTSQLSERVERLICENSETERMS
    

    SQL Server 2022(16.x)부터 aka.ms/useterms에 있는 Microsoft SQL Server Software 사용 조건을 읽어 보세요.

    SQL Server 및 데이터베이스 엔진 와 함께 기본 인스턴스로 단일 노드 Analysis Services장애 조치(Failover) 클러스터 인스턴스를 설치합니다.

    setup.exe /q /ACTION=InstallFailoverCluster /InstanceName=MSSQLSERVER /INDICATEPROGRESS /ASSYSADMINACCOUNTS="<DomainName\UserName>" /ASDATADIR=<Drive>:\OLAP\Data /ASLOGDIR=<Drive>:\OLAP\Log /ASBACKUPDIR=<Drive>:\OLAP\Backup /ASCONFIGDIR=<Drive>:\OLAP\Config /ASTEMPDIR=<Drive>:\OLAP\Temp /FAILOVERCLUSTERDISKS="<Cluster Disk Resource Name - for example, 'Disk S:'" /FAILOVERCLUSTERNETWORKNAME="<Insert Network Name>" /FAILOVERCLUSTERIPADDRESSES="IPv4;xx.xxx.xx.xx;Cluster Network;xxx.xxx.xxx.x" /FAILOVERCLUSTERGROUP="MSSQLSERVER" /Features=AS,SQL /ASSVCACCOUNT="<DomainName\UserName>" /ASSVCPASSWORD="<password>" /AGTSVCACCOUNT="<DomainName\UserName>" /AGTSVCPASSWORD="<password>" /INSTALLSQLDATADIR="\\FileServer\Share1\" /SQLCOLLATION="SQL_Latin1_General_CP1_CS_AS" /SQLSVCACCOUNT="<DomainName\UserName>" /SQLSVCPASSWORD="<password>" /SQLSYSADMINACCOUNTS="<DomainName\UserName> /IACCEPTSQLSERVERLICENSETERMS
    

    SQL Server에서 다양한 명령줄 매개 변수 옵션을 사용하는 방법에 대한 자세한 내용은 명령 프롬프트Windows에서 SQL Server 설치 및 구성 참조하세요.

참고

암호는 SQL Server 기본 암호 정책따라야 합니다. 기본적으로 암호의 길이는 8자 이상이어야 하며 대문자, 소문자, 밑이 10자리 숫자, 기호 등 네 집합 중 세 가지의 문자를 포함해야 합니다. 암호는 최대 128자까지 가능합니다. 가능한 한 길고 복잡한 암호를 사용합니다.

운영 체제 고려 사항(SMB 프로토콜 vs. SQL Server)

Windows 운영 체제마다 포함되어 있는 SMB 프로토콜 버전이 다르며 SMB 프로토콜 버전은 SQL Server에 투명합니다. SQL Server와 관련하여 다른 SMB 프로토콜 버전의 이점을 찾을 수 있습니다.

운영 체제 SMB2 프로토콜 버전 이점 - SQL Server
Server Core를 포함한 Windows Server 2012 이상 버전 3.0 파일 서버 클러스터 구성에서 데이터베이스 관리자 또는 파일 서버 관리자에 대한 개입 없이 가동 중지 시간이 0인 파일 공유의 투명한 장애 조치(failover)를 지원합니다.

여러 네트워크 인터페이스를 동시에 사용하는 입출력(IO) 지원 및 네트워크 인터페이스 오류에 대한 내성.

RDMA 기능을 사용하는 네트워크 인터페이스 지원

이러한 기능 및 서버 메시지 블록에 대한 자세한 내용은 서버 메시지 블록 개요참조하세요.

지속적인 가용성과 함께 SoFS(Scale Out File Server) 지원.
Server Core를 포함한 Windows Server 2012 R2 이상 버전 3.2 파일 서버 클러스터 구성에서 데이터베이스 관리자 또는 파일 서버 관리자에 대한 개입 없이 가동 중지 시간이 0인 파일 공유의 투명한 장애 조치(failover)를 지원합니다.

여러 네트워크 인터페이스를 동시에 사용하는 입출력(I/O) 지원 및 SMB 다중 채널을 사용한 네트워크 인터페이스 장애에 대한 내성.

SMB 다이렉트를 사용하여 RDMA 기능을 사용하는 네트워크 인터페이스 지원

이러한 기능 및 서버 메시지 블록에 대한 자세한 내용은 서버 메시지 블록 개요참조하세요.

지속적인 가용성과 함께 SoFS(Scale Out File Server) 지원.

SQL Server 트랜잭션 스타일 워크로드에 공통적인 작은 임의 읽기/쓰기 I/O에 최적화되었습니다.

MTU(최대 전송 단위)는 기본적으로 설정되어 있으며, SQL Server 데이터 웨어하우스 및 데이터베이스 백업 또는 복원과 같은 대규모 순차적 전송에서 성능을 크게 향상시켜 줍니다.

보안 고려 사항

  • SQL Server 서비스 계정 및 SQL Server 에이전트 서비스 계정에는 SMB 공유 폴더에 대한 FULL CONTROL 공유 권한 및 NTFS 권한이 있어야 합니다. SMB 파일 서버가 사용되는 경우 SQL Server 서비스 계정은 도메인 계정 또는 시스템 계정일 수 있습니다. 공유 및 NTFS 권한에 대한 자세한 내용은 파일 서버에서 공유 및 NTFS 권한을 참조하세요.

    참고

    SMB 공유 폴더에 대한 FULL CONTROL 공유 권한 및 NTFS 권한은 SQL Server 서비스 계정, SQL Server 에이전트 서비스 계정 및 관리자 서버 역할이 있는 Windows 사용자로 제한해야 합니다.

    도메인 계정을 SQL Server 서비스 계정으로 사용합니다. 시스템 계정이 서비스 계정으로 사용되는 경우 <domain-name>\<computer-name>*$*형식으로 컴퓨터 계정에 대한 권한을 부여합니다.

    참고

    SQL Server를 설치하는 동안 SMB 파일 공유가 스토리지 옵션으로 지정된 경우 도메인 계정을 서비스 계정으로 지정해야 합니다. SMB 파일 공유를 사용하면 System 계정은 SQL Server를 설치한 후에만 서비스 계정으로 지정할 수 있습니다.

    가상 계정은 원격 위치에 인증할 수 없습니다. 모든 가상 계정은 컴퓨터 계정의 권한을 사용합니다. 컴퓨터 계정을 <domain-name>\<computer-name>*$*형식으로 설정합니다.

  • SQL Server를 설치하는 데 사용되는 계정에는 클러스터 설치 중에 데이터 디렉터리로 사용되는 SMB 파일 공유 폴더 또는 다른 데이터 폴더(사용자 데이터베이스 디렉터리, 사용자 데이터베이스 로그 디렉터리, tempdb 디렉터리, tempdb 로그 디렉터리, 백업 디렉터리)에 대한 FULL CONTROL 권한이 있어야 합니다.

  • SQL Server를 설치하는 데 사용되는 계정에는 SMB 파일 서버에 SeSecurityPrivilege 권한이 부여되어야 합니다. 이 권한을 부여하려면 파일 서버의 로컬 보안 정책 콘솔을 사용하여 감사 및 보안 로그 정책에 SQL Server 설정 계정을 추가합니다. 이 설정은 로컬 정책사용자 권한 할당 섹션에서 사용할 수 있습니다.

알려진 문제 및 제한 사항

네트워크 연결 스토리지에 있는 SQL Server 데이터베이스를 분리한 후 SQL Server 데이터베이스를 다시 연결하는 동안 데이터베이스 권한 문제가 발생할 수 있습니다. 자세한 내용은 오류 5120을 참조하세요.

SMB 파일 공유가 SQL Server의 클러스터형 인스턴스에 대한 스토리지 옵션으로 사용되는 경우 SQL Server 리소스 DLL에 파일 공유에 대한 읽기/쓰기 권한이 없기 때문에 기본적으로 SQL Server 장애 조치(failover) 클러스터 진단 로그를 파일 공유에 쓸 수 없습니다. 이 문제를 해결하려면 다음 방법 중 하나를 사용하십시오.

  1. 클러스터의 모든 컴퓨터 개체에 파일 공유에 대한 읽기/쓰기 권한을 부여합니다.

  2. 진단 로그의 위치를 로컬 파일 경로로 설정합니다. 다음 예제를 참조하십시오.

    ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG PATH = 'C:\logs';
    

SMB 파일 공유에서 SQL Server 데이터 파일을 호스트하는 경우 파일에 대한 모든 I/O는 서버 또는 가상 머신의 네트워크 인터페이스를 통과합니다. 워크로드에 필요한 I/O를 지원하기에 충분한 네트워크 대역폭이 있는지 확인합니다.

네트워크 연결 문제 또는 기타 오류로 인해 SQL Server 데이터 파일을 호스팅하는 파일 공유를 사용할 수 없으면 SQL Server에서 I/O 지연 또는 오류가 발생할 수 있습니다. 중요 업무용 워크로드의 경우 네트워크 및 파일 공유에 중복성이 기본 제공되고 파일 공유가 SMB 3.0 투명 장애 조치(failover)를 지원하는지 확인합니다(연속 가용성이라고도 함).