백업에서 트랜잭션 구독 초기화(복제 Transact-SQL 프로그래밍)

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

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

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

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

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

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

    주의 사항주의

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

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

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

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

    • @sync_type - initialize with backup

    • @backupdevicetype - 백업 장치의 유형. logical(기본값), disk 또는 tape

    • @backupdevicename - 복원에 사용할 논리적 또는 물리적 백업 장치

      논리적 장치의 경우 sp_addumpdevice를 사용하여 장치를 만들 때 지정한 백업 장치의 이름을 지정합니다.

      물리적 장치의 경우 DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL11.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 데이터베이스 백업 및 복원