다음을 통해 공유


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

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

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

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

    • 값이 1이면 게시에서 이 기능을 지원합니다.

    • 값이 0이면 게시 데이터베이스의 게시자에서 sp_changepublication(Transact-SQL) 를 실행합니다. @property에 대해 allow_initialize_from_backup 값을 지정하고 true@value 값을 지정합니다.

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

    경고

    구독자 데이터 누락을 방지하려면 sp_addpublication을 사용할 때 @allow_initialize_from_backup = N'true'와 항상 @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\MSSQL12.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 데이터베이스 백업 및 복원