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


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

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

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

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

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

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

  2. В базе данных публикации на издателе необходимо выполнить хранимую процедуру sp_addpublication (Transact-SQL). Задайте значение true для параметра allow_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 — значение параметра 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