다음을 통해 공유


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 이상 버전에서 기본적으로 사용하도록 설정됩니다.

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

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

Windows WHQL(하드웨어 품질 랩)으로 정규화된 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 디바이스 또는 네트워크 소프트웨어가 쓰기 순서 지정 또는 쓰기와 같은 데이터 보장을 완전히 준수하지 않는 경우 하드웨어, 소프트웨어 또는 전원 오류로 인해 데이터 무결성이 심각하게 손상됩니다.

참조