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.

  • [ @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'AdventureWorks2008R2'; 
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.