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


Как инициализировать подписку на публикацию транзакций из резервной копии (программирование репликации на языке 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). В параметре allow_initialize_from_backup укажите значение true. Дополнительные сведения см. в разделе Как создать публикацию (программирование репликации на языке Transact-SQL).

  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\MSSQL10_50.MSSQLSERVER\BACKUP\Mybackup.dat' или TAPE = '\\.\TAPE0'.

    • (Необязательно) @password — пароль, заданный во время сеанса создания резервного набора данных.

    • (Необязательно) @mediapassword — пароль, заданный во время сеанса форматирования набора носителей.

    • (Необязательно) @fileidhint — идентификатор восстанавливаемой резервной копии. Например, значение 1 указывает первый резервный набор данных на носителе данных резервных копий, а значение 2 — второй резервный набор данных.

    • @unload — если после завершения сеанса восстановления необходимо извлечь ленту из устройства считывания, укажите значение 1 (по умолчанию), в противном случае — значение 0 (для ленточных устройств необязательно).

  6. (Необязательно) Для подписки по запросу в базе данных подписок на подписчике выполните хранимые процедуры sp_addpullsubscription (Transact-SQL) и sp_addpullsubscription_agent (Transact-SQL). Дополнительные сведения см. в разделе Как создавать подписки по запросу (программирование репликации на языке Transact-SQL).

  7. (Необязательно) Запустите агент распространителя. Дополнительные сведения см. в разделе Как синхронизировать подписку по запросу (программирование репликации) или Как синхронизировать принудительную подписку (программирование репликации).