Поделиться через


инициализировать подписку на публикацию транзакций из резервной копии (программирование репликации на языке Transact-SQL)

Хотя инициализация подписки на публикацию транзакций осуществляется через моментальный снимок, она также может быть выполнена с помощью хранимых процедур репликации. Дополнительные сведения см. в статье Инициализация подписки на публикацию транзакций без моментального снимка.

Инициализация подписчика на публикацию транзакций из резервной копии

  1. Для существующей публикации убедитесь, что публикация поддерживает возможность инициализации из резервной копии путем выполнения sp_helppublication (Transact-SQL) на издателе в базе данных публикации. В результирующем наборе проверьте значение параметра allow_initialize_from_backup .

    • Если оно равно 1, то публикация поддерживает данную функцию.

    • Если значение равно 0, выполните sp_changepublication (Transact-SQL) на издателе в базе данных публикации. Укажите значение allow_initialize_from_backup в параметре @property и значение trueдля @value.

  2. Для новой публикации выполните sp_addpublication (Transact-SQL) на издателе в базе данных публикации. Укажите значение true для allow_initialize_from_backup. Дополнительные сведения см. в разделе Create a Publication.

    Предупреждение

    Чтобы предотвратить отсутствие данных подписчика, при использовании процедуры 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 — значение параметра initialize with backup.

    • @backupdevicetype — тип устройства резервного копирования: logical (по умолчанию), diskили tape.

    • @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. (Необязательно) Запустите агент распространителя. Дополнительные сведения см. в разделе Synchronize a Pull Subscription или Synchronize a Push Subscription.

См. также:

Копирование баз данных путем создания и восстановления резервных копий
Резервное копирование и восстановление баз данных SQL Server