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)

Основные понятия

Создание публикации

Создание и применение моментального снимка