SQL Server 네트워크 데이터베이스 파일 지원에 대한 설명

이 문서에서는 SQL Server 네트워크 데이터베이스 파일에 대한 지원 및 네트워크 서버 또는 NAS 스토리지 서버에 데이터베이스를 저장하도록 SQL Server 구성하는 방법을 설명합니다.

원래 제품 버전: SQL Server
원본 KB 번호: 304261

요약

일반적으로 이 구성은 SQL Server 성능 및 안정성을 최적화하기 때문에 Microsoft SQL Server 데이터베이스 파일의 스토리지에 SAN(스토리지 영역 네트워크) 또는 로컬로 연결된 디스크를 사용하는 것이 좋습니다. 기본적으로 네트워크 서버 또는 NAS(네트워크 연결 스토리지) 서버에 저장된 네트워크 데이터베이스 파일의 사용은 SQL Server 사용할 수 없습니다.

그러나 네트워크 서버 또는 NAS 서버에 데이터베이스를 저장하도록 SQL Server 구성할 수 있습니다. 이 용도로 사용되는 서버는 데이터 쓰기 순서 지정 및 쓰기 보증에 대한 SQL Server 요구 사항을 충족해야 합니다. 자세한 내용은 추가 정보 섹션에 설명되어 있습니다.

다음 조건은 네트워크 서버 또는 NAS 서버에 저장된 네트워크 데이터베이스 파일의 사용에 대해 설명합니다.

  • 이 사용은 기본적으로 Microsoft SQL Server 2008 R2 이상 버전에서 사용하도록 설정됩니다.

  • 이렇게 하려면 -T1807 시작 추적 플래그가 Microsoft SQL Server 2008 및 이전 버전에서 작동해야 합니다. SQL Server 2012부터 추적 플래그는 더 이상 필요하지 않습니다. 시작 추적 플래그를 사용하도록 설정하는 방법에 대한 자세한 내용은 데이터베이스 엔진 서비스 시작 옵션을 참조하세요.

WHQL(Windows 하드웨어 품질 랩) 정규화된 디바이스

WHQL(Windows Hardware Quality Lab)으로 정규화된 Microsoft Windows 서버 및 네트워크 서버 또는 NAS 스토리지 서버는 SQL Server 스토리지 디바이스를 지원하는 데 필요한 데이터 쓰기 순서 및 쓰기 관리 보장을 자동으로 충족합니다. Microsoft는 이러한 구성에서 애플리케이션 및 스토리지 관련 문제를 모두 지원합니다.

참고

SQL Server 지원하려면 NAS 스토리지 솔루션은 다운로드 문서에 나열된 모든 요구 사항인 SQL Server IO 안정성 프로그램 요구 사항을 충족해야 합니다.

기타 디바이스

이 문서에 설명된 트랜잭션 데이터베이스 사용에 대한 I/O 보장을 지원하는 SQL Server WHQL 정규화되지 않은 스토리지 디바이스를 사용하는 경우 Microsoft는 SQL Server 및 SQL Server 기반 애플리케이션에 대한 모든 지원을 제공합니다. 그러나 디바이스 또는 해당 스토리지 하위 시스템의 문제 또는 원인은 디바이스 제조업체에 참조됩니다. 이 문서에 설명된 트랜잭션 데이터베이스 사용에 대한 I/O 보장을 지원하지 않는 비WHQL 정규화된 스토리지 디바이스를 사용하는 경우 Microsoft는 SQL Server 또는 SQL Server 기반 애플리케이션에 대한 지원을 제공할 수 없습니다. 비WHQL 정규화된 스토리지 디바이스가 이 문서에 설명된 트랜잭션 데이터베이스 사용에 대한 I/O 보장을 지원하는지 또는 데이터베이스 사용을 위해 디자인되었는지 여부를 확인하려면 디바이스 공급업체와 검사. 또한 디바이스 공급업체에 문의하여 트랜잭션 데이터베이스 사용을 위해 디바이스를 올바르게 배포하고 구성했는지 확인합니다.

추가 정보

기본적으로 SQL Server 2008 및 이전 버전에서는 네트워크 파일 공유에 SQL Server 데이터베이스를 만들 수 없습니다. 매핑된 또는 UNC 네트워크 위치에 데이터베이스 파일을 만들려는 모든 시도는 다음 오류 메시지 중 하나를 생성합니다.

  • 오류 메시지 1

    5105 "디바이스 활성화 오류"

  • 오류 메시지 2

    5110 "파일 'file_name'은 데이터베이스 파일에 대해 지원되지 않는 네트워크 디바이스에 있습니다."

이 동작은 예상한 것입니다. 추적 플래그 1807은 검사 무시하고 네트워크 기반 데이터베이스 파일을 사용하여 SQL Server 구성할 수 있습니다. SQL Server 및 대부분의 다른 엔터프라이즈 데이터베이스 시스템은 트랜잭션 로그 및 연결된 복구 논리를 사용하여 시스템 오류 또는 관리되지 않는 종료 시 트랜잭션 데이터베이스 일관성을 유지합니다. 이러한 복구 프로토콜은 운영 체제 I/O(입력/출력) 쓰기 요청이 데이터베이스 관리자에게 반환될 때 복구 시스템이 쓰기가 완료되었는지 또는 쓰기 완료를 보장할 수 있도록 디스크 미디어에 직접 쓰는 기능을 사용합니다. 소프트웨어 또는 하드웨어 구성 요소가 이 프로토콜을 준수하지 못하면 시스템 오류가 발생할 경우 부분 또는 총 데이터 손실 또는 손상이 발생할 수 있습니다. SQL Server 로깅 및 복구 프로토콜의 이러한 측면에 대한 자세한 내용은 SQL Server 데이터 안정성을 확장하는 로깅 및 데이터 스토리지 알고리즘에 대한 설명을 참조하세요.

Microsoft는 이러한 쓰기 및 쓰기 순서 요구 사항을 충족하지 않는 NAS 또는 네트워크 스토리지 서버의 SQL Server 네트워크 데이터베이스 파일을 지원하지 않습니다.

네트워크 오류로 인해 데이터베이스 무결성이 손상될 위험이 있으며, 네트워크 파일 공유를 사용하여 데이터베이스를 저장할 때 발생할 수 있는 성능 영향과 함께 로컬 디스크 하위 시스템 또는 SAN(스토리지 영역 네트워크)에 데이터베이스 파일을 저장하는 것이 좋습니다.

NAS(네트워크 연결 스토리지) 시스템은 클라이언트가 네트워크 프로토콜(예: TCP/IP)을 사용하여 네트워크 리디렉션기를 통해 연결하는 파일 기반 스토리지 시스템입니다. 기본적으로 디스크 리소스에 액세스하려면 공유를 매핑해야 하거나 네트워크에서 UNC 경로(예: \Servername\Sharename)를 통해 디스크 리소스가 원격 서버로 표시되는 경우 디스크 스토리지 시스템은 SQL Server 데이터베이스의 위치로 지원되지 않습니다.

성능 문제

SQL Server 다른 엔터프라이즈 데이터베이스 시스템과 마찬가지로 I/O 하위 시스템에 큰 부하를 배치할 수 있습니다. 대부분의 대규모 데이터베이스 애플리케이션에서 물리적 I/O 구성 및 튜닝은 전체 시스템 성능에서 중요한 역할을 합니다. 고려해야 할 세 가지 주요 I/O 성능 요소가 있습니다.

  • I/O 대역폭: 일반적으로 데이터베이스 디바이스에 유지할 수 있는 초당 메가바이트 단위로 측정되는 집계 대역폭입니다.
  • I/O 대기 시간: 일반적으로 데이터베이스 시스템의 I/O 요청과 I/O 요청이 완료되는 지점 사이의 대기 시간(밀리초)입니다.
  • CPU 비용: 데이터베이스 시스템이 단일 I/O를 완료하기 위해 일반적으로 CPU 마이크로초 단위로 측정되는 호스트 CPU 비용입니다.

이러한 I/O 요인 중 하나라도 병목 상태가 될 수 있으며 데이터베이스 애플리케이션에 대한 I/O 시스템을 디자인할 때 이러한 모든 요소를 고려해야 합니다.

가장 간단한 형태로 NAS 솔루션은 표준 네트워크 리렉터 소프트웨어 스택, 표준 NIC(네트워크 인터페이스 카드) 및 표준 이더넷 구성 요소를 사용합니다. 이 구성의 단점은 모든 파일 I/O가 네트워크 스택을 통해 처리되고 네트워크 자체의 대역폭 제한 사항이 적용된다는 것입니다. 특히 SQL Server 같은 높은 수준의 파일 I/O가 필요한 프로그램에서 성능 및 데이터 안정성 문제를 일으킬 수 있습니다. Microsoft에서 테스트한 일부 NAS 구성에서 I/O 처리량은 동일한 서버에 있는 직접 연결된 스토리지 솔루션의 3분의 1(1/3)이었습니다. 이와 동일한 구성에서 NAS 디바이스를 통해 I/O를 완료하는 데 드는 CPU 비용은 로컬 I/O의 두 배였습니다. NAS 디바이스 및 네트워크 인프라가 발전함에 따라 이러한 비율은 직접 연결된 스토리지 또는 SAN에 비해 향상될 수도 있습니다. 또한 애플리케이션 데이터가 대부분 데이터베이스 버퍼 풀에 캐시되고 설명된 I/O 병목 현상이 발생하지 않는 경우 NAS 기반 시스템의 성능이 애플리케이션에 적합할 수 있습니다.

백업 및 복원 고려 사항

SQL Server 백업을 위한 VDI(가상 디바이스 인터페이스)를 제공합니다. VDI는 백업 소프트웨어 공급업체에 핫 백업을 수행하고 SQL Server 데이터베이스를 복원하기 위한 고성능, 확장 가능하고 신뢰할 수 있는 수단을 제공합니다.

백업 소프트웨어는 NAS와 관련된 특별한 지원 없이 VDI를 통해 NAS 디바이스에 저장된 데이터베이스 파일에서 작동합니다. 그러나 이로 인해 백업 및 복원 중에 많은 추가 네트워크 트래픽이 발생합니다. VDI를 통해 백업하는 동안 SQL Server 파일을 원격으로 읽고 SQL Server 컴퓨터에서 실행 중인 타사 백업 소프트웨어에 데이터를 전달합니다. 복원 작업은 유사합니다.

추가 네트워크 오버헤드를 방지하려면 백업 공급업체가 백업 공급업체 및 NAS 공급업체에서 NAS 관련 지원을 제공해야 합니다. SQL Server VDI를 사용하면 백업 소프트웨어가 NAS 디바이스에서 지원하는 하드웨어(분할 미러) 또는 소프트웨어(쓰기 복사) 기술을 활용하여 NAS에 로컬로 데이터베이스 파일의 빠른 복사본을 만들 수 있습니다. 이러한 기술은 백업을 위해 네트워크를 통해 파일을 복사하는 오버헤드를 방지할 뿐만 아니라 크기별로 복원 시간을 줄일 수도 있습니다.

NAS에 저장된 백업은 NAS에 저장된 데이터베이스 파일에 영향을 주는 동일한 오류에 취약합니다. 이러한 백업을 대체 미디어에 복사하여 보호하는 것이 좋습니다.

주의

SQL Server VDI 지원 없이 NAS 백업 기술을 사용하는 경우 백업에서 데이터베이스 손상이 발생할 수 있습니다. 이러한 손상에는 개별 디바이스에 저장된 경우 로그와 데이터 파일 간의 손상된 페이지 또는 불일치가 포함됩니다. SQL Server 데이터베이스를 복원하고 손상된 데이터에 액세스할 때까지 찢어진 페이지 또는 불일치를 감지하지 못할 수 있습니다. Microsoft는 SQL Server 조정되지 않은 NAS 백업 기술 사용을 지원하지 않습니다.

SQL Server VDI에 대한 백업 지원 및 NAS 공급업체 지원은 다양합니다. VDI 지원에 대한 자세한 내용은 NAS 및 백업 소프트웨어 공급업체에 문의하세요.

Microsoft는 SQL Server 데이터베이스에 대한 NAS 솔루션 배포를 고려하는 고객에게 NAS 공급업체에 문의하여 엔드 투 엔드 솔루션 디자인이 데이터베이스용인지 확인할 것을 촉구합니다. 많은 NAS 공급업체에는 이 사용에 대한 모범 사례 가이드 및 인증된 구성이 있습니다. 또한 고객이 I/O 성능을 벤치마킹하여 앞에서 언급한 I/O 요인이 애플리케이션에서 병목 현상을 일으키지 않도록 하는 것이 좋습니다.

다음 목록에서는 SQL 장애 조치(failover) 클러스터의 네트워크 기반 파일에 대한 지원을 설명합니다.

추가 참고 사항

NAS 제품과 함께 데이터베이스 소프트웨어를 잘못 사용하거나 잘못 구성된 NAS 제품에서 데이터베이스를 사용하면 총 데이터베이스 손실을 포함한 데이터 손실이 발생할 수 있습니다. NAS 디바이스 또는 네트워크 소프트웨어가 쓰기 순서 지정 또는 쓰기와 같은 데이터 보장을 완전히 준수하지 않는 경우 하드웨어, 소프트웨어 또는 전원 오류로 인해 데이터 무결성이 심각하게 손상 될 수 있습니다.

참조