데이터베이스 미러링 및 로그 전달(SQL Server)

지정된 데이터베이스를 미러링하거나 로그를 전달할 수 있으며 동시에 미러링하고 로그를 전달할 수도 있습니다. 사용할 방법을 선택하려면 다음을 고려합니다.

  • 얼마나 많은 대상 서버가 필요하십니까?

    하나의 대상 데이터베이스만 필요한 경우 권장되는 솔루션은 데이터베이스 미러링입니다.

    둘 이상의 대상 데이터베이스가 필요한 경우 로그 전달을 단독으로 또는 데이터베이스 미러링과 함께 사용해야 합니다. 이러한 방법을 조합하여 사용하면 로그 전달을 통해 제공되는 여러 대상에 대한 지원과 더불어 데이터베이스 미러링의 이점을 얻을 수 있습니다.

  • 대상 데이터베이스에 대한 로그 복원을 지연해야 하는 경우 일반적으로 논리적 오류를 방지하기 위해 로그 전달을 단독으로 또는 데이터베이스 미러링과 함께 사용합니다.

이 항목에서는 로그 전달과 데이터베이스 미러링을 조합할 때 고려할 사항에 대해 설명합니다.

[!참고]

이러한 기술에 대한 지침은 데이터베이스 미러링(SQL Server)로그 전달 정보(SQL Server)를 참조하십시오.

로그 전달 및 데이터베이스 미러링 조합

또한 미러링 세션의 주 데이터베이스가 로그 전달 구성에서 기본 데이터베이스로 작동하거나 또는 로그 전달 백업 공유가 그대로 유지될 때 그 반대로 작동합니다. 데이터베이스 미러링 세션은 트랜잭션 보안이 FULL로 설정된 동기식 운영 모드나 OFF로 설정된 비동기식 운영 모드로 실행됩니다.

[!참고]

데이터베이스에서 데이터베이스 미러링을 사용하려면 항상 전체 복구 모델이 필요합니다.

일반적으로 로그 전달과 데이터베이스 미러링을 조합할 때 미러링 세션은 필요하지 않더라도 로그 전달 전에 설정됩니다. 현재 주 데이터베이스는 하나 이상의 원격 보조 데이터베이스와 로그 전달 기본(주/기본 데이터베이스)으로 구성되어 있습니다. 또한 미러 데이터베이스는 로그 전달 기본(미러/주 데이터베이스)으로 구성되어 있어야 합니다. 로그 전달 보조 데이터베이스는 주/기본 서버나 미러/기본 서버와 다른 서버 인스턴스에 있어야 합니다.

[!참고]

로그 전달과 관련된 서버에 대한 대/소문자 구분 설정이 일치해야 합니다.

로그 전달 세션 동안 기본 데이터베이스에 대한 백업 작업으로 백업 폴더에 로그 백업이 생성됩니다. 이 위치에서 백업은 보조 서버의 복사 작업에 따라 복사됩니다. 백업 작업과 복사 작업을 완료하려면 로그 전달 백업 폴더에 대한 액세스 권한이 있어야 합니다. 기본 서버의 가용성을 극대화하려면 별도의 호스트 컴퓨터에 있는 공유 백업 위치에 백업 폴더를 설정하는 것이 좋습니다. 미러/기본 서버를 비롯하여 모든 로그 전달 서버에서 공유 백업 위치(백업 공유)에 액세스할 수 있도록 합니다.

데이터베이스 미러링을 장애 조치(Failover)한 후에 로그 전달을 계속하려면 주 데이터베이스에서 기본 데이터베이스에 사용하는 구성과 동일한 구성을 사용하여 미러 서버를 주 서버로 구성해야 합니다. 미러 데이터베이스는 복원 중이므로 백업 작업으로 미러 데이터베이스의 로그를 백업할 수 없습니다. 이렇게 하여 미러/기본 데이터베이스가 현재 보조 서버에서 로그 백업을 복사하고 있는 주/기본 데이터베이스를 방해하지 않습니다. 의사 경고를 방지할 수 있도록 미러/기본 데이터베이스에서 백업 작업이 수행된 후에 백업 작업이 메시지를 log_shipping_monitor_history_detail 테이블에 기록하고 에이전트 작업이 성공 상태를 반환합니다.

미러/기본 데이터베이스는 로그 전달 세션에서 비활성화되어 있습니다. 그러나 미러링이 장애 조치되면 이전 미러 데이터베이스는 주 데이터베이스로 온라인 상태가 됩니다. 이때 해당 데이터베이스도 로그 전달 기본 데이터베이스로 활성화됩니다. 이전에 해당 데이터베이스에 대한 로그를 전달할 수 없었던 로그 전달 백업 작업이 로그를 전달하기 시작합니다. 반대로 장애 조치로 인해 이전 주/기본 데이터베이스가 새로운 미러/기본 데이터베이스가 되고 복원 상태로 되며 해당 데이터베이스에 대한 백업 작업이 로그 백업을 중단합니다.

[!참고]

자동 장애 조치의 경우 이전 주/기본 데이터베이스가 미러링 세션에 다시 참여할 때 미러 역할로 전환됩니다.

자동 장애 조치(Failover)가 있는 보호 우선 모드로 실행하려면 미러링 세션이 미러링 모니터 서버라는 추가 서버 인스턴스로 구성되어야 합니다. 주 데이터베이스가 동기화된 후 어떤 이유로 이 데이터베이스가 손실되는 경우와 미러 서버와 미러링 모니터 서버가 서로 계속해서 통신할 수 있는 경우 자동 장애 조치가 수행됩니다. 자동 장애 조치로 인해 미러 서버는 주 역할을 맡고 해당 데이터베이스는 온라인 상태가 되어 주 데이터베이스 역할을 하게 됩니다. 로그 전달 백업 위치에서 새로운 주/기본 서버에 액세스할 수 있는 경우 해당 백업 작업으로 인해 로그 백업이 해당 위치로 전달되기 시작합니다. 데이터베이스 미러링 동기화 모드는 로그 체인이 미러링 장애 조치의 영향을 받지 않고 유효한 로그만 복원되도록 합니다. 보조 서버는 다른 서버 인스턴스가 기본 서버가 되었는지 인식하지 못한 상태에서 로그 백업을 계속 복사합니다.

로컬 로그 전달 모니터를 사용할 때 이 시나리오에 따르기 위해 특별히 고려해야 할 사항은 없습니다. 이 시나리오에서 원격 모니터링 인스턴스를 사용하는 방법은 이 항목의 뒷부분에 나오는 "원격 모니터링 인스턴스에서 데이터베이스 미러링의 영향"을 참조하십시오.

주 데이터베이스에서 미러 데이터베이스로 장애 조치

다음 그림은 미러링이 자동 장애 조치(Failover)가 있는 보호 우선 모드로 실행 중일 때 로그 전달 및 데이터베이스 미러링이 함께 작동하는 방법을 보여 줍니다. 처음에 Server_A는 미러링용 주 서버이자 로그 전달용 기본 서버입니다. Server_B는 미러 서버이며 현재 비활성화되어 있는 기본 서버로 구성되어 있습니다. Server_CServer_D는 로그 전달 보조 서버입니다. 로그 전달 세션의 가용성을 극대화하려면 백업 위치가 별도의 호스트 컴퓨터에 있는 공유 디렉터리여야 합니다.

로그 전달 및 데이터베이스 미러링

미러링 장애 조치(failover) 후에 보조 서버에서 정의된 기본 서버 이름은 변경되지 않습니다. .

원격 모니터링 인스턴스에서 데이터베이스 미러링의 영향

원격 모니터링 인스턴스에 로그 전달이 사용될 때 로그 전달 세션과 데이터베이스 미러링을 함께 사용하면 모니터 테이블의 정보에 영향을 줍니다. 기본 서버에 대한 정보는 주/기본 서버에서 구성된 정보와 각 보조 서버에서 구성된 모니터 정보가 결합된 것입니다.

가능한 한 안전하게 모니터링하려면 원격 모니터를 사용하는 경우 보조 서버에서 기본 서버를 구성할 때 원래 기본 이름을 지정하는 것이 좋습니다. 이 방법을 사용하면 Microsoft SQL Server 에이전트의 로그 전달 구성을 쉽게 변경할 수 있습니다. 모니터링에 대한 자세한 내용은 로그 전달 모니터링(Transact-SQL)을 참조하십시오.

미러링과 로그 전달을 함께 설정

데이터베이스 미러링과 로그 전달을 함께 설정하려면 다음 단계를 수행해야 합니다.

  1. 나중에 주/기본 데이터베이스에 대해 미러 데이터베이스를 미러링하는 데이터베이스로 사용되도록 다른 서버 인스턴스에서 NORECOVERY를 사용하여 주/기본 데이터베이스의 백업을 복원합니다. 자세한 내용은 미러 데이터베이스의 미러링 준비(SQL Server)를 참조하십시오.

  2. 데이터베이스 미러링을 설정합니다. 자세한 내용은 Windows 인증을 사용하여 데이터베이스 미러링 세션 구성(SQL Server Management Studio) 또는 데이터베이스 미러링 설정(SQL Server)을 참조하십시오.

  3. 기본 데이터베이스에 대한 로그 전달 보조 데이터베이스로 나중에 사용하도록 다른 서버 인스턴스로 주/기본 데이터베이스의 백업을 복원합니다.

  4. 하나 이상의 보조 데이터베이스에 대한 기본 데이터베이스로 주 데이터베이스에 로그 전달을 설정합니다.

    단일 공유를 백업 디렉터리(백업 공유)로 설정해야 합니다. 이렇게 하면 주 서버와 미러 서버 간에 역할이 전환된 후에도 백업 작업은 이전과 동일한 디렉터리에 계속 기록됩니다. 가장 좋은 방법은 미러링 및 로그 전달과 관련된 데이터베이스를 호스팅하는 서버가 아닌 다른 서버에 이 공유를 배치하는 것입니다.

    자세한 내용은 로그 전달 구성(SQL Server)을 참조하십시오.

  5. 주 서버에서 미러 서버로 수동 장애 조치

    수동 장애 조치(failover)를 수행하려면

  6. 새로운 주 서버(이전의 미러 서버)의 로그 전달을 기본 데이터베이스로 설정합니다.

    중요 정보중요

    설정을 보조 서버에서 수행하지 마십시오.

    4단계에서 사용한 것과 동일한 백업 공유를 사용해야 합니다.

    SQL Server Management Studio의 트랜잭션 로그 전달 인터페이스는 로그 전달 구성별로 하나의 기본 데이터베이스만 지원합니다. 따라서 새로운 주 서버를 기본 데이터베이스로 설정하려면 저장 프로시저를 사용해야 합니다.

  7. 원래의 주 서버로 되돌리면 수동 장애 조치를 추가로 수행합니다.