Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как запустить процедуру после выполнения снэпшота?  [new]
Молодой
Member

Откуда: Москва
Сообщений: 171
При настройке свойств транзакционной репликации, есть возможность указать
скрипты выполнения “Before applying the snapshot” и “After applying the snapshot”.
Для этих скриптов предлагается указать месторасположение на диске.

Вопрос:
Как сделать нечто подобное, и настроить репликацию так, чтобы всегда сразу после, или перед выполнением снэпшота запускался не файл со скриптом, а сохраненная процедура на издателе?
5 май 17, 10:15    [20459484]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить процедуру после выполнения снэпшота?  [new]
invm
Member

Откуда: Москва
Сообщений: 9125
Молодой
чтобы всегда сразу после, или перед выполнением снэпшота запускался не файл со скриптом, а сохраненная процедура на издателе?
Добавить соответствующий шаг в джоб, формирующий снепшот.
5 май 17, 11:09    [20459780]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить процедуру после выполнения снэпшота?  [new]
Молодой
Member

Откуда: Москва
Сообщений: 171
Правильно я понимаю:

В скрипте настройки репликации, при выполнении процедуры sp_addpublication_snapshot
я указываю параметр @snapshot_job_name = 'Snapshot Start for Server_01'

Затем выполняю процедуру sp_add_jobstep где добавляю шаг выполнения нужной мне процедуры и прописываю то же значение имени джоба, но уже в параметр @job_name = 'Snapshot Start for Server_01' ?
5 май 17, 11:42    [20459926]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить процедуру после выполнения снэпшота?  [new]
rnk
Member

Откуда:
Сообщений: 126
Молодой
Правильно я понимаю:

В скрипте настройки репликации, при выполнении процедуры sp_addpublication_snapshot
я указываю параметр @snapshot_job_name = 'Snapshot Start for Server_01'

Затем выполняю процедуру sp_add_jobstep где добавляю шаг выполнения нужной мне процедуры и прописываю то же значение имени джоба, но уже в параметр @job_name = 'Snapshot Start for Server_01' ?

Вроде как так.
5 май 17, 11:52    [20459994]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить процедуру после выполнения снэпшота?  [new]
invm
Member

Откуда: Москва
Сообщений: 9125
Неправильно.

Нельзя указывать @snapshot_job_name.
Найти джоб можно в syspublcations, столбец snapshot_job_id.
5 май 17, 11:54    [20460011]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить процедуру после выполнения снэпшота?  [new]
Молодой
Member

Откуда: Москва
Сообщений: 171
invm
Неправильно.

Нельзя указывать @snapshot_job_name.
Найти джоб можно в syspublcations, столбец snapshot_job_id.



То есть, чтобы понять что я именно тот snapshot_jobid возьму, если их вдруг несколько,
я пишу, запрос привязываясь уже по имени публикации:
select snapshot_jobid  from syspublications where name = N'...'


этот запрос дает мне двоичное представление для snapshot_jobid.
В sp_add_jobstep, параметр @job_id -
The identification number of the job to which to add the step. job_id is uniqueidentifier, with a default of NULL.

Поэтому потом дополнительно делаю что то вроде:
set @job_id = Convert(uniqueidentifier, snapshot_jobid)


- так?
5 май 17, 12:30    [20460211]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить процедуру после выполнения снэпшота?  [new]
invm
Member

Откуда: Москва
Сообщений: 9125
Молодой
так?
Да.
5 май 17, 12:31    [20460221]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить процедуру после выполнения снэпшота?  [new]
Молодой
Member

Откуда: Москва
Сообщений: 171
invm
Молодой
так?
Да.


Спасибо большое за помощь!
Решение понятно.
5 май 17, 12:39    [20460252]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить