다음을 통해 공유


병합 복제에 사용되는 백업 및 복원 전략

적용 대상: SQL Server

병합 복제의 경우 다음 데이터베이스를 정기적으로 백업합니다.

  • 게시자의 게시 데이터베이스

  • 배포자에서 배포 데이터베이스 만들기

  • 각 구독자의 구독 데이터베이스

  • 게시자, 배포자 및 모든 구독자의 mastermsdb 시스템 데이터베이스. 이러한 데이터베이스는 서로 그리고 관련 복제 데이터베이스와 함께 동시에 백업되어야 합니다. 예를 들어 게시 데이터베이스를 백업하는 동시에 게시자에서 mastermsdb 데이터베이스를 백업합니다. 게시 데이터베이스를 복원한 경우 mastermsdb 데이터베이스의 복제 구성 및 설정이 게시 데이터베이스와 일치하는지 확인하십시오.

정기적인 로그 백업을 수행할 경우 모든 복제 관련 변경 내용은 로그 백업에 캡처됩니다. 로그 백업을 수행하지 않는 경우 복제와 관련된 설정이 변경될 때마다 백업을 수행해야 합니다. 자세한 내용은 업데이트된 백업이 필요한 일반적인 작업을 참조하세요.

게시 데이터베이스를 백업하고 복원하기 위해 아래에 설명된 방법 중 하나를 선택한 다음 배포 데이터베이스 및 구독 데이터베이스에 대해 나열된 권장 사항을 따릅니다.

게시 데이터베이스 백업 및 복원

병합 게시 데이터베이스를 복원하는 방법에는 두 가지가 있습니다. 백업으로 게시 데이터베이스를 복원한 후 다음 중 하나를 수행해야 합니다.

  • 게시 데이터베이스를 구독 데이터베이스와 동기화합니다.

  • 게시 데이터베이스에서 게시에 대한 모든 구독을 다시 초기화합니다.

이러한 방법 중 하나를 사용하면 복원이 수행된 후 게시자와 모든 구독자가 동기화됩니다.

참고 항목

테이블에 ID 열이 포함되어 있는 경우 복원 후 올바른 ID 범위가 할당되도록 해야 합니다. 자세한 내용은 ID 열 복제를 참조하세요.

게시 데이터베이스 동기화

게시 데이터베이스를 구독 데이터베이스와 동기화하면 이전에 게시 데이터베이스에서 변경했지만 복원된 백업에 표시되지 않은 변경 내용을 하나 이상의 구독 데이터베이스에서 업로드할 수 있습니다. 업로드할 수 있는 데이터는 게시가 필터링되는 방식에 따라 달라집니다.

  • 게시가 필터링되지 않은 경우 최신 구독자와 동기화하여 게시 데이터베이스를 최신 상태로 유지할 수 있어야 합니다.

  • 게시가 필터링된 경우 게시 데이터베이스를 최신 상태로 만들 수 없을 수도 있습니다. 각 구독이 동부, 서부, 남부 및 북부 중 한 지역에 대한 고객 데이터만 수신하도록 분할된 테이블을 고려해 봅시다. 데이터의 각 파티션에 구독자가 하나 이상 있는 경우 각 파티션의 구독자와 동기화하면 게시 데이터베이스가 최신 상태로 유지됩니다. 그러나 예를 들어 서부 파티션의 데이터가 어떤 구독자에도 복제되지 않은 경우 게시자의 이 데이터를 최신 상태로 유지할 수 없습니다.

Important

게시 데이터베이스를 구독 데이터베이스와 동기화하면 게시된 테이블이 백업에서 복원된 다른 게시되지 않은 테이블의 지정 시간보다 더 최근 시점으로 복원될 수 있습니다.

Microsoft SQL Server 2005(9.x) 이전 버전의 Microsoft SQL Server를 실행하는 구독자와 동기화하는 경우 구독은 익명일 수 없으며 클라이언트 구독 또는 서버 구독(이전 릴리스에서는 로컬 구독 및 전역 구독이라고 함)이어야 합니다.

밀어넣기 구독을 동기화하려면 밀어넣기 구독 동기화끌어오기 구독 동기화를 참조하십시오.

모든 구독 다시 초기화

모든 구독을 다시 초기화하면 모든 구독자가 복원된 게시 데이터베이스와 일치하는 상태가 됩니다. 이 방법은 전체 토폴로지를 지정된 게시 데이터베이스 백업이 나타내는 이전 상태로 반환하려는 경우에 사용해야 합니다. 예를 들어 잘못 수행된 일괄 처리 작업에서 복구하기 위한 메커니즘으로 게시 데이터베이스를 이전 시점으로 복원하는 경우 모든 구독을 다시 초기화할 수 있습니다.

이 옵션을 선택하는 경우 게시 데이터베이스를 복원한 직후 다시 초기화된 구독자에게 제공할 새 스냅샷을 생성합니다.

구독을 다시 초기화하는 방법은 Reinitialize a Subscription를 참조하세요.

스냅샷을 만들고 적용하려면 초기 스냅샷 만들기 및 적용매개 변수가 있는 필터를 사용하여 병합 게시에 대한 스냅샷 만들기를 참조하세요.

배포 데이터베이스 백업 및 복원

병합 복제를 사용하는 경우에는 배포 데이터베이스를 정기적으로 백업해야 합니다. 사용하는 백업이 배포자를 사용하는 모든 게시의 최단 보존 기간을 넘기지 않은 한 특별 고려 사항 없이 배포 데이터베이스를 복원할 수 있습니다. 예를 들어 보존 기간이 각각 10, 20 및 30일인 세 개의 게시가 있는 경우 데이터베이스를 복원하는 데 사용되는 백업은 10일을 초과하지 않아야 합니다. 배포 데이터베이스는 병합 복제에서 제한된 역할을 하며, 변경 내용 추적에 사용된 데이터를 저장하지 않으며 구독 데이터베이스에 전달할 병합 복제 변경 내용의 임시 스토리지를 제공하지 않습니다(트랜잭션 복제에서와 같이).

구독 데이터베이스 백업 및 복원

구독 데이터베이스를 성공적으로 복구하려면 구독 데이터베이스가 백업되기 전에 구독자가 게시자와 동기화되어야 합니다. 또한 구독 데이터베이스를 복원한 후에 동기화해야 합니다.

  • 구독 데이터베이스 백업 전에 게시자와 동기화하면 구독자가 백업에서 복원되는 경우 구독이 게시 보존 기간 내에 있는지 확인하는 데 도움이 됩니다. 예를 들어 보존 기간이 10일인 게시를 가정합니다. 마지막 동기화는 8일 전이며 이제 백업이 수행됩니다. 백업이 4일 후에 복원되는 경우 마지막 동기화는 보존 기간을 지난 12일 전에 발생합니다. 이 경우 구독자를 다시 초기화해야 합니다. 구독자가 백업 전에 동기화된 경우 구독 데이터베이스는 보존 기간 내에 있습니다.

    백업은 구독자가 구독하는 모든 게시의 최단 보존 기간을 넘기지 않아야 합니다. 예를 들어 구독자가 보존 기간이 각각 10, 20 및 30일인 세 개의 게시를 구독하는 경우 데이터베이스를 복원하는 데 사용되는 백업은 10일을 초과하지 않아야 합니다.

  • 복원 후 구독 데이터베이스를 각 해당 게시와 동기화하면 게시자의 모든 변경 내용이 구독자에 적용되어 최신 상태가 됩니다.

게시 보존 기간을 설정하려면 구독 만료 기간 설정을 참조하세요.

밀어넣기 구독을 동기화하려면 밀어넣기 구독 동기화끌어오기 구독 동기화를 참조하십시오.

재게시 데이터베이스 백업 및 복원

데이터베이스가 게시자의 데이터를 구독하고 동일한 데이터를 다른 구독 데이터베이스에 게시하는 경우 재게시 데이터베이스라고 합니다. 다시 게시 데이터베이스를 복원하는 경우 이 항목의 "게시 데이터베이스 백업 및 복원" 및 "구독 데이터베이스 백업 및 복원"에 설명된 지침을 따릅니다.