|
Trigger on DataBase_Restored ?
|
|||
---|---|---|---|
#18+
Добрый день. Код: plaintext 1. 2. 3.
проведения некоторых действий ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2009, 14:50 |
|
Trigger on DataBase_Restored ?
|
|||
---|---|---|---|
#18+
А restore database у вас само магическим образом запускается, что его отслеживать надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2009, 15:16 |
|
Trigger on DataBase_Restored ?
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич, Нет. Пользователями на специально выделенном для этих целей инстансе, и, что хуже, DataProtector'ом (такая шелесяка с невменяемыми админами). Если пользователей, с трудом, удалось убедить/заставить использовать хранимку, то с шелесякой сложнее ... Вот и хочется странного - чтоб работало и меня не трогало ... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2009, 15:44 |
|
Trigger on DataBase_Restored ?
|
|||
---|---|---|---|
#18+
Отследить событие завершения команды можно только в Профайлере. Проще всего повесить job и следить за обновлением метаданных о ресторах в базе msdb ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2009, 15:53 |
|
Trigger on DataBase_Restored ?
|
|||
---|---|---|---|
#18+
Glory, Жаль, что красиво не получается... Уже так и сделал. Вот только пришлось время поменьше поставить - база уже отресторилась, а прав на нее еще нет - вот и пристают с разными глупыми вопросам, пиво пить мешают ж-( ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2009, 16:05 |
|
Trigger on DataBase_Restored ?
|
|||
---|---|---|---|
#18+
Так собственно и непонятно, что вы собираетесь делать с базой после Restore. И почему эти действия не могут быть совмещены со скриптом, который этот Restore запускает ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2009, 16:07 |
|
Trigger on DataBase_Restored ?
|
|||
---|---|---|---|
#18+
GloryТак собственно и непонятно, что вы собираетесь делать с базой после Restore. И почему эти действия не могут быть совмещены со скриптом, который этот Restore запускает Дело в том, что базы, которые ресторятся, хранятся на лентах и по запросу этих самых пользователей восстанавливаются на отдельный инстанс. Беда в том, что есть базы, совсем древние, у которых полная каша с правами к ним. Чать пользователей присутствуют и в этих базах, а часть нет. Вот и приходится после восстановления баз права раздавать, согласно текущему составу пользователей. Если Restore идет через SP, то проблем нет. Но часть баз, причем самая старая, backup'илась DataProtect'ором и может быть восстановлена только им напрямую в SQL (как утверждают админы этой зверушки). Уж больно нехочется sysadmin'ами всех делать, даже на отдельном инстансе... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2009, 16:28 |
|
Trigger on DataBase_Restored ?
|
|||
---|---|---|---|
#18+
Greenhorn, По данному вопросу в Гугле могучая куча ссылок. И единственное нормальное решение там, то к которому Вы уже пришли. Но! Хочу предложить еще один способ мониторинга завершения команды Restore, который вполне годится и в других подобных случаях. Итак. Делаем все как в BOL -> CREATE EVENT NOTIFICATION для события EVENTLOG. В reader'е вставляем следующий код Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Это не конечный вариант. Работает с language_id = 1033. Для остальных language_id см. в сторону sys.messages where message_id = 18267 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2009, 15:01 |
|
Trigger on DataBase_Restored ?
|
|||
---|---|---|---|
#18+
mike909, Огромное спасибо - работает !!! Это действительно то, что нужно. И довольно красиво получилось. Вот только смущает --CUT BOL -- Некоторые ошибки могут привести к досрочному завершению диалогов. Явное завершение всех или некоторых диалогов может помешать конечной службе получать новые сообщения. -- END CUT -- Т.е. Если чего-то не срастется, то я узнаю об этом только когда пользователи заарут ? А есть ли еще какие подводные камни ? А нет ли у кого функции по выдиранию значений параметров на основе шаблона из sys.messages Т.е. имеем сообщение типа Код: plaintext
Код: plaintext
Для сообщения указанного выше хочу получить что то типа Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2009, 17:19 |
|
Trigger on DataBase_Restored ?
|
|||
---|---|---|---|
#18+
Знаю что сам вопрос стар, но просто чтобы сохранился в поиске еще один способ решения подобных вопросов, процитирую ответ с форума мелкомягких : This is how I solved this problem. I can tell you it does work. A trigger on restorehistory will not work. You can create an alert that executes a job on a successful restore event. You will need to create the Job and put in the job ID if you run this script. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Далее все необходимое делаем в запускающемся Job-e. PS Понятно что для удобства можно использовать параметр не @job_id, а @job_name ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2021, 15:07 |
|
Trigger on DataBase_Restored ?
|
|||
---|---|---|---|
#18+
Спасибо. Интересный вариант. Но нужно держать запущенным SQL Agent. В свое время тоже заморачивался детектом этого события, а заставить работать NOTIFICATION долго не удавалось, потом лезли какие-то непонятные глюки в error логе. Вот бы ваше сообщение на пару лет раньше прочесть. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 11:43 |
|
Trigger on DataBase_Restored ?
|
|||
---|---|---|---|
#18+
newbie876454 Спасибо. Интересный вариант. Но нужно держать запущенным SQL Agent. В свое время тоже заморачивался детектом этого события, а заставить работать NOTIFICATION долго не удавалось, потом лезли какие-то непонятные глюки в error логе. Вот бы ваше сообщение на пару лет раньше прочесть. Это хорошо для серверов, которые поддерживают Агентов. А если их нет, то вопрос остается. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 14:44 |
|
Trigger on DataBase_Restored ?
|
|||
---|---|---|---|
#18+
Ролг Хупин, Alert срабатывает по event, соответственно, можно написать перехватчик события. К примеру, вот что пишут наши индийские друзья: https://www.mssqltips.com/sqlservertip/4256/sql-server-2016-extended-events-detailed-backup-information/ ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2021, 15:13 |
|
Trigger on DataBase_Restored ?
|
|||
---|---|---|---|
#18+
newbie876454 Спасибо. Интересный вариант. Но нужно держать запущенным SQL Agent. У нас он по определению везде запущен - базы-то обслуживать надо, да и пользовательские Job-ы... newbie876454 В свое время тоже заморачивался детектом этого события, а заставить работать NOTIFICATION долго не удавалось, потом лезли какие-то непонятные глюки в error логе. Вот бы ваше сообщение на пару лет раньше прочесть. Да, тут реализация попроще и понятней. Хотя, если есть желание, то можно и через NOTIFICATION заморочиться. Но меня, в данном случае, вполне устроило то что попроще. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 13:15 |
|
|
start [/forum/topic.php?fid=46&msg=35780709&tid=1684434]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
24ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 260ms |
total: | 365ms |
0 / 0 |