sp_addpublication_snapshot (Transact-SQL)
Создает агент моментальных снимков для указанной публикации. Эта хранимая процедура выполняется в базе данных публикации на издателе.
Примечание по безопасности |
---|
Если издатель настраивается с удаленным распространителем, то значения, передаваемые для всех аргументов, включая job_login и job_password, передаются распространителю в формате обычного (незашифрованного) текста. Прежде чем выполнять эту хранимую процедуру, необходимо зашифровать соединение между издателем и его удаленным распространителем. Дополнительные сведения см. в разделе Включение шифрования соединений в ядре СУБД (диспетчер конфигурации SQL Server). |
Синтаксические обозначения в Transact-SQL
Синтаксис
sp_addpublication_snapshot [ @publication= ] 'publication'
[ , [ @frequency_type= ] frequency_type ]
[ , [ @frequency_interval= ] frequency_interval ]
[ , [ @frequency_subday= ] frequency_subday ]
[ , [ @frequency_subday_interval= ] frequency_subday_interval ]
[ , [ @frequency_relative_interval= ] frequency_relative_interval ]
[ , [ @frequency_recurrence_factor= ] frequency_recurrence_factor ]
[ , [ @active_start_date= ] active_start_date ]
[ , [ @active_end_date= ] active_end_date ]
[ , [ @active_start_time_of_day= ] active_start_time_of_day ]
[ , [ @active_end_time_of_day= ] active_end_time_of_day ]
[ , [ @snapshot_job_name = ] 'snapshot_agent_name' ]
[ , [ @publisher_security_mode = ] publisher_security_mode ]
[ , [ @publisher_login = ] 'publisher_login' ]
[ , [ @publisher_password = ] 'publisher_password' ]
[ , [ @job_login = ] 'job_login' ]
[ , [ @job_password = ] 'job_password' ]
[ , [ @publisher = ] 'publisher' ]
Аргументы
[ @publication=] 'publication'
Имя публикации. Аргумент publication имеет тип sysname и не имеет значения по умолчанию.[ @frequency_type=] frequency_type
Частота, с которой выполняется агент моментальных снимков. Аргумент frequency_type имеет тип int и может принимать одно из следующих значений.Значение
Описание
1
Однократно.
4 (по умолчанию)
Ежедневно.
8
Еженедельно.
16
Ежемесячно.
32
Ежемесячно относительно интервала частоты.
64
При запуске агента SQL Server.
128
Запускать, когда компьютер простаивает.
[ @frequency_interval=] frequency_interval
Значение, которое применяется к частоте, задаваемой аргументом frequency_type. Аргумент frequency_interval имеет тип int и может принимать одно из следующих значений.Значение аргумента frequency_type
Воздействие на аргумент frequency_interval
1
Аргумент frequency_interval не используется.
4 (по умолчанию)
Каждые frequency_interval дней, по умолчанию ежедневно.
8
Значение аргумента frequency_interval равно одному или нескольким таким значениям (комбинируется логическим оператором | (Bitwise OR)):
1 = воскресенье |
2 = понедельник |
4 = вторник |
8 = среда |
16 = четверг |
32 = пятница |
64 = суббота
16
Каждый frequency_interval день месяца.
32
Аргумент frequency_interval может иметь одно из следующих значений:
1 = воскресенье |
2 = понедельник |
3 = вторник |
4 = среда |
5 = четверг |
6 = пятница |
7 = суббота |
8 = день |
9 = рабочий день |
10 = выходной
64
Аргумент frequency_interval не используется.
128
Аргумент frequency_interval не используется.
[ @frequency_subday=] frequency_subday
Единица измерения аргумента freq_subday_interval. frequency_subday — это значение типа int, может иметь одно из указанных значений.Значение
Описание
1
Однократно
2
Дважды
4 (по умолчанию)
Минута
8
Час
[ @frequency_subday_interval=] frequency_subday_interval
Интервал для аргумента frequency_subday. Аргумент frequency_subday_interval имеет тип int и значение по умолчанию 5, что означает — каждые 5 минут.[ @frequency_relative_interval=] frequency_relative_interval
Дата запуска агента моментальных снимков. Аргумент frequency_relative_interval имеет тип int и значение по умолчанию 1.[ @frequency_recurrence_factor=] frequency_recurrence_factor
Коэффициент повторения, используемый аргументом frequency_type. Аргумент frequency_recurrence_factor имеет тип int и значение по умолчанию 0.[ @active_start_date=] active_start_date
Дата первого назначенного запуска агента моментальных снимков в формате ГГГГММДД. Аргумент active_start_date имеет тип int и значение по умолчанию 0.[ @active_end_date=] active_end_date
Дата плановой остановки агента моментальных снимков в формате ГГГГММДД. active_end_date имеет тип int и значение по умолчанию 99991231, которое соответствует 31 декабря 9999 г.[ @active_start_time_of_day=] active_start_time_of_day
Время первого планового запуска агента моментальных снимков в формате ЧЧММСС. Аргумент active_start_time_of_day имеет тип int и значение по умолчанию 0.[ @active_end_time_of_day=] active_end_time_of_day
Время плановой остановки агента моментальных снимков в формате ЧЧММСС. Аргумент active_end_time_of_day имеет тип int и значение по умолчанию 235959, означающее 23:59:59. в 24-часовом формате.[ @snapshot_job_name = ] 'snapshot_agent_name'
Имя существующего задания агента моментальных снимков, если оно используется. snapshot_agent_name представляет собой nvarchar(100) со значением NULL по умолчанию. Этот параметр предназначен для внутреннего использования и не указывается при создании новой публикации. Если указан аргумент snapshot_agent_name, то аргументы job_login и job_password должны иметь значение NULL.[ @publisher_security_mode= ] publisher_security_mode
Режим безопасности, используемый агентом при установке соединения с издателем. Аргумент publisher_security_mode имеет тип smallint и значение по умолчанию 1. 0 указывает на проверку подлинности SQL Server, а 1 указывает на проверку подлинности Windows. Для издателей, отличных от SQL Server, должно указываться значение 0. По возможности используйте проверку подлинности Windows.[ @publisher_login= ] 'publisher_login'
Имя входа, используемое для соединения с издателем. Аргумент publisher_login имеет тип sysname и значение по умолчанию NULL. Аргумент publisher_login должен быть указан, если аргумент publisher_security_mode имеет значение 0. Если аргумент publisher_login равен NULL, а аргумент publisher_security_mode равен 1, тогда будет использоваться учетная запись Windows, указанная в аргументе job_login для подключения к издателю.[ @publisher_password= ] 'publisher_password'
Пароль, используемый при соединении с издателем. Аргумент publisher_password имеет тип sysname и значение по умолчанию NULL.Примечание по безопасности Не храните данные проверки подлинности в файлах скриптов. В целях повышения безопасности рекомендуется вводить имена входа и пароли во время выполнения.
[ @job_login= ] 'job_login'
Имя входа для учетной записи Windows, под которой запускается агент. Аргумент job_login имеет тип nvarchar(257) и значение по умолчанию NULL. Для соединений агента с распространителем всегда используется эта учетная запись Windows. Необходимо указывать этот аргумент при создании нового задания агента моментальных снимков.Примечание Для издателей, отличных от издателей SQL Server, это имя входа должно совпадать с именем, указанным в процедуре sp_adddistpublisher (Transact-SQL).
[ @job_password= ] 'job_password'
Пароль для учетной записи Windows, под которой запускается агент. Аргумент job_password имеет тип sysname и не имеет значения по умолчанию. Необходимо указывать этот аргумент при создании нового задания агента моментальных снимков.Примечание по безопасности Не храните данные для проверки подлинности в файлах скриптов. В целях повышения безопасности рекомендуется вводить имена входа и пароли во время выполнения.
[ @publisher= ] 'publisher'
Задает издателя, отличного от SQL Server. Аргумент publisher имеет тип sysname и значение по умолчанию NULL.Примечание При создании агента моментальных снимков для издателя SQL Server не следует использовать аргумент publisher.
Значения кодов возврата
0 (успешное завершение) или 1 (неуспешное завершение)
Замечания
Процедура sp_addpublication_snapshot применяется при репликации моментальных снимков, репликации транзакций и репликации слиянием.
Пример
-- To avoid storing the login and password in the script file, the values
-- are passed into SQLCMD as scripting variables. For information about
-- how to use scripting variables on the command line and in SQL Server
-- Management Studio, see the "Executing Replication Scripts" section in
-- the topic "Programming Replication Using System Stored Procedures".
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks';
SET @publication = N'AdvWorksProductTran';
-- Windows account used to run the Log Reader and Snapshot Agents.
SET @login = $(Login);
-- This should be passed at runtime.
SET @password = $(Password);
-- Enable transactional or snapshot replication on the publication database.
EXEC sp_replicationdboption
@dbname=@publicationDB,
@optname=N'publish',
@value = N'true';
-- Execute sp_addlogreader_agent to create the agent job.
EXEC sp_addlogreader_agent
@job_login = @login,
@job_password = @password,
-- Explicitly specify the use of Windows Integrated Authentication (default)
-- when connecting to the Publisher.
@publisher_security_mode = 1;
-- Create a new transactional publication with the required properties.
EXEC sp_addpublication
@publication = @publication,
@status = N'active',
@allow_push = N'true',
@allow_pull = N'true',
@independent_agent = N'true';
-- Create a new snapshot job for the publication, using a default schedule.
EXEC sp_addpublication_snapshot
@publication = @publication,
@job_login = @login,
@job_password = @password,
-- Explicitly specify the use of Windows Integrated Authentication (default)
-- when connecting to the Publisher.
@publisher_security_mode = 1;
GO
Разрешения
Только члены предопределенной роли сервера sysadmin или предопределенной роли базы данных db_owner могут выполнять хранимую процедуру sp_addpublication_snapshot.
См. также
Справочник
sp_addpublication (Transact-SQL)
sp_changepublication_snapshot (Transact-SQL)
sp_startpublication_snapshot (Transact-SQL)
Хранимые процедуры репликации (Transact-SQL)