백업에서 트랜잭션 구독 초기화

적용 대상:SQL Server

일반적으로 트랜잭션 게시에 대한 구독은 스냅샷을 사용하여 초기화하지만 복제 저장 프로시저를 사용하여 백업에서 구독을 초기화할 수도 있습니다. 자세한 내용은 스냅샷 없이 트랜잭션 구독 초기화를 참조하세요.

백업에서 트랜잭션 구독자를 초기화하려면

  1. 기존 게시의 경우 게시 데이터베이스의 게시자에서 sp_helppublication(Transact-SQL)를 실행하여 게시가 백업에서 초기화하는 기능을 지원하는지 확인합니다. 결과 집합에서 allow_initialize_from_backup 값을 확인합니다.

    • 값이 1이면 게시에서 이 기능을 지원하는 것입니다.

    • 값이 0이면 게시 데이터베이스의 게시자에서 sp_changepublication(Transact-SQL)를 실행합니다. @propertyallow_initialize_from_backup 값, @valuetrue 값을 지정합니다.

  2. 새 게시의 경우 게시 데이터베이스의 게시자에서 sp_addpublication(Transact-SQL)를 실행합니다. allow_initialize_from_backuptrue값을 지정합니다. 자세한 내용은 게시 만들기를 참조하세요.

    Warning

    구독자 데이터가 누락되는 것을 방지하려면 @allow_initialize_from_backup = N'true'에서 sp_addpublication 또는 sp_changepublication을 사용할 때 항상 @immediate_sync = N'true'를 사용하세요.

  3. BACKUP(Transact-SQL) 문을 사용하여 게시 데이터베이스의 백업을 만듭니다.

  4. RESTORE(Transact-SQL) 문을 사용하여 구독자에서 백업을 복원합니다.

  5. 게시 데이터베이스의 게시자에서 저장 프로시저 sp_addsubscription(Transact-SQL)를 실행합니다. 다음 매개 변수를 지정합니다.

    • @sync_type- 백업을 사용하여 초기화하는 값입니다.

    • @backupdevicetype - 백업 디바이스의 유형: 논리 (기본값), 디스크 또는 테이프입니다.

    • @backupdevicename - 복원에 사용할 논리적 또는 물리적 백업 디바이스입니다.

      논리 디바이스의 경우 sp_addumpdevice 디바이스를 만드는 데 사용되었을 때 지정된 백업 디바이스의 이름을 지정합니다.

      물리적 디바이스의 경우 DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\BACKUP\Mybackup.dat' 또는 TAPE = '\\.\TAPE0'과 같이 전체 경로와 파일 이름을 지정합니다.

    • (옵션) @password - 백업 세트를 만들 때 지정한 암호입니다.

    • (선택 사항) @mediapassword - 미디어 세트의 형식을 지정할 때 제공된 암호입니다.

    • (선택 사항) @fileidhint - 복원할 백업 집합의 식별자입니다. 예를 들어 1을 지정하면 백업 매체에서 첫 번째 백업 집합이 표시되고 2는 두 번째 백업 집합을 나타냅니다.

    • (테이프 디바이스 옵션) @unload - 복원이 완료된 후 드라이브에서 테이프를 언로드해야 하는 경우 1(기본값), 언로드하지 않아야 하는 경우 0 값을 지정합니다.

  6. (선택 사항) 끌어오기 구독의 경우 구독 데이터베이스의 구독자에서 sp_addpullsubscription(Transact-SQL)sp_addpullsubscription_agent(Transact-SQL)를 실행합니다. 자세한 내용은 끌어오기 구독 만들기를 참조 하세요.

  7. (선택 사항) 배포 에이전트 시작합니다. 자세한 내용은 끌어오기 구독 동기화 또는 밀어넣기 구독 동기화를 참조하세요.

참고 항목

백업 및 복원을 사용하여 데이터베이스 복사
SQL Server 데이터베이스 백업 및 복원