다음을 통해 공유


데이터베이스 미러링 개요

업데이트: 2005년 12월 5일

데이터베이스 미러링은 데이터베이스의 가용성을 높이기 위한 주요 소프트웨어 솔루션입니다. 미러링은 데이터베이스 단위로 구현되며 전체 복구 모델을 사용하는 데이터베이스에서만 작동합니다. 단순 복구 모델 및 대량 로그 복구 모델에서는 데이터베이스 미러링이 지원되지 않습니다. 따라서 모든 대량 작업이 항상 전체 로깅됩니다. 데이터베이스 미러링은 지원되는 모든 데이터베이스 호환성 수준에서 작동합니다.

[!참고] master, msdb, tempdb 또는 model 데이터베이스는 미러링할 수 없습니다.

데이터베이스 미러링은 단일 데이터베이스에 대해 서로 다른 SQL Server 데이터베이스 엔진 인스턴스(서버 인스턴스)에 상주하는 두 개의 사본으로 유지 관리합니다. 일반적으로 두 서버 인스턴스는 서로 다른 위치의 컴퓨터에 있습니다. 한 서버 인스턴스는 클라이언트(주 서버)에 데이터베이스를 제공하고 다른 서버 인스턴스는 미러링 세션의 구성과 상태에 따라 상시 또는 웜 대기 서버(미러 서버) 역할을 합니다. 데이터베이스 미러링 세션을 동기화하면 데이터베이스 미러링은 커밋된 트랜잭션에서 데이터 손실 없이 신속한 장애 조치(Failover)를 지원하는 상시 대기 서버를 제공합니다. 세션이 동기화되지 않은 경우 미러 서버는 일반적으로 웜 대기 서버로 사용할 수 있으며 데이터가 손실될 수 있습니다.

데이터베이스 미러링의 이점

데이터베이스 미러링은 다음과 같은 이점을 제공하는 간단한 전략입니다.

  • 데이터 보호가 향상됩니다.
    데이터베이스 미러링은 운영 모드가 보호 우선 모드인지 성능 우선 모드인지에 따라 완벽하거나 완벽에 가까운 데이터 중복을 제공합니다. 자세한 내용은 이 항목의 뒷부분에 나오는 "운영 모드"를 참조하십시오.
  • 데이터베이스의 가용성이 커집니다.
    자동 장애 조치 있는 보호 우선 모드에서는 재해 발생 시 장애 조치에 의해 데이터베이스의 대기 복사본이 신속하게 온라인 상태가 됩니다(데이터 손실 없음). 다른 운영 모드의 경우 데이터베이스 관리자가 데이터베이스의 대기 복사본으로 서비스를 강제할 수 있습니다(데이터 손실 가능). 자세한 내용은 이 항목의 뒤에 나오는 "역할 전환"을 참조하십시오.
  • 업그레이드 중에 프로덕션 데이터베이스의 가용성이 증가합니다.
    미러된 데이터베이스의 작동 중단 시간을 최소화하려면 단일 장애 조치(failover)에 해당하는 작동 중단만 발생하도록 데이터베이스 미러링 세션에 참가하는 SQL Server 인스턴스를 순차적으로 업그레이드하십시오. 이러한 유형의 업그레이드를 롤링 업그레이드라고 합니다. 자세한 내용은 방법: 미러된 데이터베이스의 작동 중단 시간을 최소화하면서 시스템에 서비스 팩 설치를 참조하십시오.

데이터베이스 미러링 작동 방법

주 서버와 미러 서버는 데이터베이스 미러링 세션 내에서 파트너로 통신하고 협력합니다. 두 파트너는 세션에서 서로 보완되는 주 역할미러 역할을 수행합니다. 언제든지 한 파트너는 주 역할을 수행하고 다른 파트너는 미러 역할을 수행합니다. 각 파트너는 현재 역할을 소유한다고 표현합니다. 주 역할을 소유하는 파트너를 주 서버라고 하며 주 서버의 데이터베이스 복사본이 현재의 주 데이터베이스입니다. 미러 역할을 소유하는 파트너를 미러 서버라고 하며 미러 서버의 데이터베이스 복사본이 현재의 미러 데이터베이스입니다. 프로덕션 환경에 데이터베이스 미러링이 구축된 경우 주 데이터베이스가 프로덕션 데이터베이스가 됩니다.

데이터베이스 미러링은 주 데이터베이스에서 발생한 모든 삽입, 업데이트 및 삭제 작업을 가능한 한 빨리 미러 데이터베이스에 대해서도 실행하는 작업과 관련이 있습니다. 다시 실행은 모든 활성 트랜잭션 로그 레코드를 미러 서버로 보내고, 미러 서버에서 가능한 한 빨리 로그 레코드를 순서대로 미러 데이터베이스에 적용함으로써 이루어집니다. 논리적 수준에서 작동하는 복제와 달리 데이터베이스 미러링은 물리적 로그 레코드 수준에서 작동합니다.

운영 모드

데이터베이스 미러링 세션은 동기 또는 비동기 작업으로 실행됩니다. 비동기 작업에서는 미러 서버가 로그를 디스크에 쓸 때까지 기다리지 않고 트랜잭션이 커밋되므로 성능이 극대화됩니다. 동기 작업에서는 커밋된 트랜잭션이 두 파트너에서 모두 커밋되지만 트랜잭션 대기 시간이 길어집니다.

두 가지 미러링 운영 모드가 있습니다. 이 중에서 보호 우선 모드는 동기 작업을 지원합니다. 보호 우선 모드에서 세션을 시작하면 미러 서버는 가능한 한 빨리 미러 데이터베이스를 주 데이터베이스와 동기화합니다. 데이터베이스가 동기화되면 커밋된 트랜잭션이 두 파트너에서 모두 커밋되지만 트랜잭션 대기 시간이 길어집니다.

두 번째 운영 모드인 성능 우선 모드는 비동기적으로 실행됩니다. 미러 서버는 주 서버가 보낸 로그 레코드를 유지하려고 합니다. 일반적으로 두 데이터베이스 간의 차이가 크지는 않지만 미러 데이터베이스는 주 데이터베이스보다 약간 지연될 수 있습니다. 그러나 주 서버에 작업이 크거나 미러 서버 시스템이 과부화된 경우 이 시간 간격은 상당히 커질 수 있습니다.

성능 우선 모드에서는 주 서버가 로그 레코드를 미러 서버로 보내는 즉시 미러 서버의 확인을 기다리지 않고 클라이언트로 확인 메시지를 보냅니다. 즉, 미러 서버에서 로그를 디스크에 쓸 때까지 기다리지 않고 트랜잭션이 커밋됩니다. 비동기 작업을 통해 주 서버는 최소 트랜잭션 대기 시간으로 실행될 수 있지만 데이터가 손실될 수 있는 위험이 있습니다.

모든 데이터베이스 미러링 세션은 주 서버와 미러 서버를 각각 하나씩만 지원합니다. 다음 그림에서는 이 구성을 보여 줍니다.

데이터베이스 미러링 세션의 파트너

자동 장애 조치 있는 보호 우선 모드를 사용하려면 미러링 모니터 서버라는 세 번째 서버 인스턴스가 필요합니다. 미러링 모니터 서버는 두 파트너와는 달리 데이터베이스를 제공하지 않습니다. 미러링 모니터 서버는 주 서버가 작동하는지 여부만 확인하여 자동 장애 조치를 지원합니다. 미러 서버는 미러 서버 및 미러링 모니터 서버가 주 서버와 연결이 끊어진 후에도 서로 연결되어 있는 경우에만 자동 장애 조치를 시작합니다.

다음 그림에서는 미러링 모니터 서버가 포함된 구성을 보여 줍니다.

미러링 모니터 서버를 포함하는 미러링 세션

자세한 내용은 이 항목의 뒤에 나오는 "역할 전환"을 참조하십시오.

트랜잭션 보안 및 운영 모드

트랜잭션 보안 설정에 따라 동기 또는 비동기 운영 모드가 결정됩니다. SQL Server Management Studio만 사용하여 데이터베이스 미러링을 구성하는 경우 운영 모드를 선택할 때 자동으로 트랜잭션 보안 설정이 구성됩니다.

Transact-SQL을 사용하여 데이터베이스 미러링을 구성하는 경우 트랜잭션 보안 설정 방법을 알아야 합니다. 트랜잭션 보안은 ALTER DATABASE 문의 SAFETY 속성으로 조정합니다. 미러되는 데이터베이스에서 SAFETY는 FULL 또는 OFF 중 하나입니다.

  • SAFETY 옵션이 FULL로 설정되어 있으면 데이터베이스 미러링 작업이 초기 동기화 단계 이후 동기적으로 수행됩니다. 보호 우선 모드로 미러링 모니터 서버를 설정하면 세션에서 자동 장애 조치를 지원합니다.
  • SAFETY 옵션이 OFF로 설정되어 있으면 데이터베이스 미러링 작업이 비동기적으로 수행됩니다. 세션은 성능 우선 모드로 실행되며 WITNESS 옵션도 OFF여야 합니다.

자세한 내용은 Transact-SQL 설정 및 데이터베이스 미러링 작업 모드를 참조하십시오.

역할 전환

데이터베이스 미러링 세션에서는 역할 전환 프로세스를 통해 주 역할과 미러 역할을 서로 바꿀 수 있습니다. 역할 전환 시 주 역할을 미러 서버로 이전해야 합니다. 역할 전환에서 미러 서버는 주 서버의 장애 조치 파트너 역할을 합니다. 역할이 전환되면 미러 서버가 주 역할을 맡고 해당 데이터베이스의 복사본을 새로운 주 데이터베이스로 사용할 수 있도록 온라인 상태로 만듭니다. 이전 주 서버(사용 가능한 경우)는 미러 역할을 맡고 해당 데이터베이스는 새로운 미러 데이터베이스가 됩니다. 역할은 상호 전환할 수 있습니다.

역할 전환에는 다음과 같은 3가지 형식이 있습니다.

  • 자동 장애 조치
    보호 우선 모드가 필요하며 미러 서버와 미러링 모니터 서버가 있어야 합니다. 데이터베이스는 이미 동기화된 상태여야 하고 미러링 모니터 서버가 미러 서버에 연결되어 있어야 합니다.
    미러링 모니터 서버의 역할은 지정된 파트너 서버가 실행되고 있는지 여부를 확인하는 것입니다. 미러 서버와 주 서버 사이의 연결은 끊어졌지만 미러링 모니터 서버가 여전히 주 서버에 연결되어 있으면 미러 서버에서 장애 조치를 시작하지 않습니다. 자세한 내용은 데이터베이스 미러링 모니터 서버을 참조하십시오.
  • 수동 장애 조치
    보호 우선 모드가 필요합니다. 파트너가 서로 연결되어 있어야 하며 데이터베이스는 이미 동기화된 상태여야 합니다.
  • 강제 서비스(데이터 손실 가능)
    성능 우선 모드 및 자동 장애 조치 없는 보호 우선 모드에서는 주 서버가 실패했으며 미러 서버가 사용 가능한 경우 강제 서비스를 사용할 수 있습니다.
    ms189852.note(ko-kr,SQL.90).gif중요:
    성능 우선 모드는 미러링 모니터 서버 없이 실행되도록 설계되었습니다. 그러나 미러링 모니터 서버가 있는 경우 강제 서비스를 사용하려면 미러링 모니터 서버가 미러 서버에 연결되어 있어야 합니다.

모든 역할 전환 시나리오에서 새로운 주 데이터베이스가 온라인 상태가 되면 클라이언트 응용 프로그램에서 해당 데이터베이스에 다시 연결하여 신속하게 복구할 수 있습니다.

데이터베이스 미러링 지원

데이터베이스 미러링 파트너와 미러링 모니터 서버는 SQL Server 2005 Standard Edition SP1 이상 버전과 SQL Server 2005 Enterprise Edition SP1 이상 버전에서 지원됩니다. 그러나 파트너는 동일한 버전을 사용해야 하고 비동기 데이터베이스 미러링(성능 우선 모드)은 SQL Server 2005 Enterprise Edition SP1 이상 버전에서만 지원됩니다. 미러링 모니터 서버는 SQL Server 2005 Workgroup Edition SP1 이상 버전과 SQL Server 2005 Express Edition SP1 이상 버전에서도 지원됩니다.

데이터베이스 미러링 관련 항목

참고 항목

관련 자료

미러된 데이터베이스에 클라이언트 연결
데이터베이스 미러링과 기타 기능 및 구성 요소
sp_dbcmptlevel(Transact-SQL)

도움말 및 정보

SQL Server 2005 지원 받기