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

적용 대상:SQL Server

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

  • 필요한 대상 서버는 몇 대입니까?

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

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

  • 대상 데이터베이스에서 로그 복원을 지연해야 하는 경우(일반적으로 논리적 오류로부터 보호하기 위해) 로그 전달만 사용하거나 데이터베이스 미러링과 함께 사용하세요.

이 항목에서는 로그 전달과 데이터베이스 미러링을 결합하기 위한 고려 사항에 대해 설명합니다.

참고 항목

이러한 기술에 대한 소개는 데이터베이스 미러링(SQL Server)로그 전달 정보(SQL Server)를 참조하세요.

로그 전달과 데이터베이스 미러링 결합

로그 전달 백업 공유가 그대로 유지되므로 미러 세션의 주 데이터베이스가 로그 전달 구성에서 주 데이터베이스로 작동하며 또는 그 반대의 경우도 마찬가지입니다. 데이터베이스 미러링 세션은 동기(트랜잭션 안전이 FULL로 설정됨) 또는 비동기(트랜잭션 안전이 OFF로 설정됨)이든 관계없이 모든 운영 모드에서 실행됩니다.

참고 항목

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

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

참고 항목

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

로그 전달 세션 중에 주 데이터베이스의 백업 작업은 백업 폴더에 로그 백업을 만듭니다. 여기에서 백업은 보조 서버의 복사 작업에 의해 복사됩니다. 백업 작업과 복사 작업을 완료하려면 로그 전달 백업 폴더에 대한 액세스 권한이 있어야 합니다. 주 서버의 가용성을 최대화하려면 별도의 호스트 컴퓨터의 공유 백업 위치에 백업 폴더를 설정하는 것이 좋습니다. 미러/주 서버를 포함한 모든 로그 전달 서버가 공유 백업 위치(백업 공유라고 함)에 액세스할 수 있는지 확인합니다.

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

로그 전달 세션에서 미러/주 데이터베이스가 비활성 상태입니다. 그러나 미러 오류가 발생하면 이전 미러 데이터베이스가 주 데이터베이스로 온라인 상태가 된 것입니다. 이때 해당 데이터베이스도 로그 전달 기본 데이터베이스로 활성화됩니다. 이전에 해당 데이터베이스에 대한 로그를 전달할 수 없었던 로그 전달 백업 작업이 로그를 전달하기 시작합니다. 반면에 장애 조치(failover)는 이전 주/주 데이터베이스를 새 미러/주 데이터베이스로 만들고 복원 상태에 들어가게 하며, 해당 데이터베이스의 백업 작업이 백업 로그를 중단합니다.

참고 항목

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

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

로컬 로그 전달 모니터링을 사용하는 경우 이 시나리오를 수용하기 위해 특별한 고려 사항이 필요하지 않습니다. 이 시나리오에서 원격 모니터링 인스턴스를 사용하는 방법에 대한 자세한 내용은 이 항목의 뒷부분에 있는 "원격 모니터링 인스턴스에 대한 데이터베이스 미러링의 영향"을 참조하세요.

보안 주체에서 미러 데이터베이스로 장애 조치(failover)

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

Log shipping and database mirroring

미러링 장애 조치(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. 새로운 주 데이터베이스(이전 미러)에 대한 로그 전달을 주 데이터베이스로 설정합니다.

    Important

    보조 데이터베이스에서 설치를 수행하지 마세요.

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

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

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