백업에서 트랜잭션 구독 초기화(복제 Transact-SQL 프로그래밍)
일반적으로 트랜잭션 게시에 대한 구독은 스냅샷을 사용하여 초기화하지만 복제 저장 프로시저를 사용하여 백업에서 구독을 초기화할 수도 있습니다. 자세한 내용은 스냅샷 없이 트랜잭션 구독 초기화에서 수동으로 구독을 초기화하는 방법에 대해 설명합니다.
백업에서 트랜잭션 구독자를 초기화하려면
기존 게시의 경우 게시 데이터베이스의 게시자에서 sp_helppublication(Transact-SQL) 을 실행하여 게시가 백업에서 초기화하는 기능을 지원하는지 확인합니다. 결과 집합에서 allow_initialize_from_backup 값을 확인합니다.
값이 1이면 게시에서 이 기능을 지원하는 것입니다.
값이 0이면 게시 데이터베이스의 게시자에서 sp_changepublication(Transact-SQL) 을 실행합니다. @property allow_initialize_from_backup 값과 의 값을
true
@value 지정합니다.
새 게시의 경우 게시 데이터베이스의 게시자에서 sp_addpublication(Transact-SQL) 을 실행합니다. 의 값을
true
allow_initialize_from_backup 지정합니다. 자세한 내용은 게시 만들기를 참조하세요.경고
구독자 데이터가 누락되는 것을 방지하려면 에서 sp_addpublication
@allow_initialize_from_backup = N'true'
을 사용할 때 항상@immediate_sync = N'true'
를 사용하십시오.BACKUP(Transact-SQL) 문을 사용하여 게시 데이터베이스의 백업을 만듭니다.
RESTORE(Transact-SQL) 문을 사용하여 구독자에서 백업을 복원합니다.
게시 데이터베이스의 게시자에서 저장 프로시저 sp_addsubscription(Transact-SQL)를 실행합니다. 다음 매개 변수를 지정합니다.
@sync_type - initialize with backup값
@backupdevicetype - 백업 디바이스의 유형: 논리 (기본값) 디스크또는 테이프
@backupdevicename - 복원에 사용할 논리적 또는 물리적 백업 디바이스
논리적 디바이스의 경우 sp_addumpdevice 를 사용하여 디바이스를 만들 때 지정한 백업 디바이스의 이름을 지정합니다.
물리적 디바이스의 경우
DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\BACKUP\Mybackup.dat'
또는TAPE = '\\.\TAPE0'
과 같이 전체 경로와 파일 이름을 지정합니다.(옵션) @password - 백업 장치를 만들 때 제공한 암호
(옵션) @mediapassword - 미디어 세트를 포맷할 때 제공한 암호
(옵션) @fileidhint - 복원되는 백업 세트에 대한 식별자. 예를 들어 1 을 지정하면 백업 미디어의 첫 번째 백업 세트를 나타내고 2 를 지정하면 두 번째 백업 세트를 나타냅니다.
(테이프 디바이스 옵션) @unload - 복원이 완료된 후 드라이브에서 테이프를 언로드해야 하는 경우 1 (기본값), 언로드하지 않아야 하는 경우 0 을 지정합니다.
(선택 사항) 끌어오기 구독의 경우 구독 데이터베이스의 구독자에서 sp_addpullsubscription(Transact-SQL) 및 sp_addpullsubscription_agent(Transact-SQL) 를 실행합니다. 자세한 내용은 끌어오기 구독 만들기를 참조하세요.
(옵션) 배포 에이전트를 시작합니다. 자세한 내용은 Synchronize a Pull Subscription 또는 Synchronize a Push Subscription를 참조하세요.