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

Откуда: Саратов
Сообщений: 487
Имеется папка, куда программисты выкладывают sql-скрипты.
Необходимо каждую минуту проверять эту папку на наличие новых скриптов и запускать их.
Можно ли это сделать средствами sql-сервера, скажем SQL Agent'a, или лучше воспользоваться не средствами сервера?
9 июн 12, 10:26    [12692484]     Ответить | Цитировать Сообщить модератору
 Re: Автозапуск скриптов  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
А если программист туда выложит скрипт DROP DATABASE ...?
9 июн 12, 10:32    [12692513]     Ответить | Цитировать Сообщить модератору
 Re: Автозапуск скриптов  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
Шамиль Фаридович,

Не боитесь, что какой-нибудь обиженный программист выложит туда вредоносный скрипт?
9 июн 12, 10:35    [12692526]     Ответить | Цитировать Сообщить модератору
 Re: Автозапуск скриптов  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 487
Это не моя забота, руководство о подобных вещах предупреждено и задачу не снимает.
В принципе проблема разрешается наличием бэкапов и этих скриптов.
9 июн 12, 10:52    [12692627]     Ответить | Цитировать Сообщить модератору
 Re: Автозапуск скриптов  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Шамиль Фаридович,

Скажите руководству, что так не делают. Скрипт может быть такой, что и бэкапы не помогут. Выкладку следует делать с участием человеческого фактора. Даже если это DEV или QA окружение.
9 июн 12, 11:01    [12692677]     Ответить | Цитировать Сообщить модератору
 Re: Автозапуск скриптов  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
Ну немного в оффтоп, но надеюсь реализована возможность аудита, кто какие скрипты выкладывал? Ну и конечно премодерация хоть какая-то неплохо, чтоб была.
9 июн 12, 11:11    [12692738]     Ответить | Цитировать Сообщить модератору
 Re: Автозапуск скриптов  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 487
Аудит ведется. Используется svn. И все-таки, вернемся к сабжу.
9 июн 12, 11:20    [12692803]     Ответить | Цитировать Сообщить модератору
 Re: Автозапуск скриптов  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Джоб:

1 шаг - запуск sqlcmd для всех файлов в папке
2 шаг - удаление всех файлов их папки для которых sqlcmd выполнился без ошибок или перемещение в другую папку.
9 июн 12, 11:25    [12692844]     Ответить | Цитировать Сообщить модератору
 Re: Автозапуск скриптов  [new]
komrad
Member

Откуда:
Сообщений: 5741
Шамиль Фаридович
Имеется папка, куда программисты выкладывают sql-скрипты.
Необходимо каждую минуту проверять эту папку на наличие новых скриптов и запускать их.
Можно ли это сделать средствами sql-сервера, скажем SQL Agent'a, или лучше воспользоваться не средствами сервера?


написать батник,
который каждый sql-файл в указанной папке выполняет на нужном сиквеле и откладывает в сторонку (например, папка "выполненные_скрипты_дата")

можно создавать еще lock-файл, и, при его наличии, не запускать второй экземпляр батника
можно вести историю пролитых sql-скриптов в отдельном файлике
можно отсылать отчеты о пролитых скриптах
можно вести простенькую БД о пролитых скриптах, длительности выполнения, успешности/неуспешности; по этой БД строить суточные отчеты


откуда такой батник запускать - это зависит от ваших предпочтений - хоть из Агента, хоть из локального шедулера ОС
9 июн 12, 11:27    [12692857]     Ответить | Цитировать Сообщить модератору
 Re: Автозапуск скриптов  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Не, лучше один шаг.
9 июн 12, 11:27    [12692858]     Ответить | Цитировать Сообщить модератору
 Re: Автозапуск скриптов  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5118
имхо, очень велика вероятность возникновения желания "а вот эти скрипты хотим в параллель выполнять"... лучше сразу делать как "очередь"
9 июн 12, 12:48    [12693398]     Ответить | Цитировать Сообщить модератору
 Re: Автозапуск скриптов  [new]
dmitry stakanov
Member

Откуда:
Сообщений: 241
pkarklin
Шамиль Фаридович,

Скажите руководству, что так не делают. Скрипт может быть такой, что и бэкапы не помогут. Выкладку следует делать с участием человеческого фактора. Даже если это DEV или QA окружение.


+1. никаких автонакатов. никогда.
9 июн 12, 15:30    [12694661]     Ответить | Цитировать Сообщить модератору
 Re: Автозапуск скриптов  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
dmitry stakanov
pkarklin
Шамиль Фаридович,

Скажите руководству, что так не делают. Скрипт может быть такой, что и бэкапы не помогут. Выкладку следует делать с участием человеческого фактора. Даже если это DEV или QA окружение.


+1. никаких автонакатов. никогда.

Мало ли акие бизнес-задачи. Может просто накатывающего пользователя ограничить в правах?
9 июн 12, 20:41    [12695797]     Ответить | Цитировать Сообщить модератору
 Re: Автозапуск скриптов  [new]
ZOOKABAKODER
Member

Откуда:
Сообщений: 178
На PowerShell это реализуется за 5 минут.
[String]$SrcPath = '...\new'; # откуда брать
[String]$SrcFinishedPath = '...\fin'; # куда складывать выполненые

Add-PSSnapin SqlServer*Snapin*;
$aSQLFile = Get-ChildItem "${SrcPath}\*.sql" | ForEach-Object {$_.FullName};

foreach ($SQLFile in $aSQLFile)
{	Invoke-Sqlcmd -InputFile $SQLFile;
	Move-Item -LiteralPath $SQLFile -Destination $SrcFinishedPath;}

Прописываешь это шагом Job'а, не забыв проверить TargetServer
11 июн 12, 00:14    [12698306]     Ответить | Цитировать Сообщить модератору
 Re: Автозапуск скриптов  [new]
Злой Бобр
Member

Откуда: Украина, Кривой Рог
Сообщений: 3604
Шамиль Фаридович,

Для этого нада 2 папки: новые и выполненные. Все что в новых выполняем и переносим в выполненные. Таким образом в новых будут только новые. В джобе делаете через нужный интервал, но минута как по мне - мало, минимум 3 минуты. Все зависит от времени выполнения скрипта и их количества. Думаю код вам рисовать ненужно, т.к. его любой студент напишет на раз плюнуть.
11 июн 12, 11:44    [12698731]     Ответить | Цитировать Сообщить модератору
 Re: Автозапуск скриптов  [new]
dmitry stakanov
Member

Откуда:
Сообщений: 241
SomewhereSomehow
dmitry stakanov
пропущено...


+1. никаких автонакатов. никогда.

Мало ли акие бизнес-задачи. Может просто накатывающего пользователя ограничить в правах?


1 не совсем понятно как ограничивать, тк не совсем понятно какие скрипты будут накатываться;
2 когда, все ляжет (не важно - по злому умыслу или нет), разгребать все будет человек, который ближе всего к серверу, те dba, даже если на "автонакаты" была дана санкция стоЯщих ближе к богам, и их предупреждали, что так делать нельзя.

Самый лучший способ разубедить руководство в принятии такой парадигмы.
13 июн 12, 18:11    [12709838]     Ответить | Цитировать Сообщить модератору
 Re: Автозапуск скриптов  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
ZOOKABAKODER
На PowerShell это реализуется за 5 минут.
[String]$SrcPath = '...\new'; # откуда брать
[String]$SrcFinishedPath = '...\fin'; # куда складывать выполненые

Add-PSSnapin SqlServer*Snapin*;
$aSQLFile = Get-ChildItem "${SrcPath}\*.sql" | ForEach-Object {$_.FullName};

foreach ($SQLFile in $aSQLFile)
{	Invoke-Sqlcmd -InputFile $SQLFile;
	Move-Item -LiteralPath $SQLFile -Destination $SrcFinishedPath;}

Прописываешь это шагом Job'а, не забыв проверить TargetServer


Шамиль Фаридович, бомба готова, забирайте
13 июн 12, 18:25    [12709904]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить