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

Откуда:
Сообщений: 9
Всем привет!
У меня вопрос!
на базе под ms sql server 2008 r2 создано несколько планов обслуживания которые можно запускать по расписанию.
но проблема в том что мне нужно запускать в ручном режиме. вернее через bat фаил. В батнике выполняются некоторые действия о работе приложений (собственная разработка) закрываются сесии этих приложений и после этого необходимо запустить некий план обслуживания в базе.
Пытался сделать это с помощью sqlmaint.exe но не получилось - выдается ошибка и на сайте microsoft описано что эта утилита для старых баз (2005, 2000)
подскажите как можно запустить план обслуживания в командной строке (cmd)?
заранее спасибо!
10 дек 15, 17:45    [18542016]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Плана обслуживания в sql 2008 через bat  [new]
СТУДЕНТ123
Guest
kravit,

smdsql вы о нем? Вот только я не знаю как запускать именно созданный в плане действий (задачи), но всегда можно решить проблему с помощью вызова ХП с эквивалентными действиями над данными.
10 дек 15, 17:59    [18542089]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Плана обслуживания в sql 2008 через bat  [new]
Glory
Member

Откуда:
Сообщений: 104751
План обслуживания - это SSIS пакет.
И запустить его можно как и любой SSIS пакет.
10 дек 15, 18:25    [18542213]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Плана обслуживания в sql 2008 через bat  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8879
Sqlcmd


https://msdn.microsoft.com/ru-ru/library/ms162773(v=sql.105).aspx
10 дек 15, 19:08    [18542410]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Плана обслуживания в sql 2008 через bat  [new]
СТУДЕНТ123
Guest
Glory
План обслуживания - это SSIS пакет.
И запустить его можно как и любой SSIS пакет.

=\ не знал, спасибо за комментарий, буду разбирать. точно пригодится.
11 дек 15, 08:48    [18544226]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Плана обслуживания в sql 2008 через bat  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
kravit
Пытался сделать это с помощью sqlmaint.exe но не получилось - выдается ошибка и на сайте microsoft описано что эта утилита для старых баз (2005, 2000)

Программа sqlmaint
До SQL Server 2014 вроде сохранился.
11 дек 15, 09:30    [18544411]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Плана обслуживания в sql 2008 через bat  [new]
kravit
Member

Откуда:
Сообщений: 9
Спасибо всем за информацию. Когда начал изучать вообще ничего не понял.
короче пакеты SSIS запускаются с помощью dtexec. Нашел пример как это делать, но почему она хочет создать план, а не запустить уже существующий и не могу найти пример как существующий план просто запустить.
вот пример:
DTExec.exe /SQL "Maintenance Plans\MaintenancePlan_FULL" /SERVER "localhost" /MAXCONCURRENT " -1 " /CHECKPOINTING OFF

помогите запустить этот чертов план!
11 дек 15, 11:16    [18544979]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Плана обслуживания в sql 2008 через bat  [new]
Glory
Member

Откуда:
Сообщений: 104751
kravit
вот пример:
DTExec.exe /SQL "Maintenance Plans\MaintenancePlan_FULL" /SERVER "localhost" /MAXCONCURRENT " -1 " /CHECKPOINTING OFF

И что у вас натурально сервер называется "localhost" и на нам есть план по имени MaintenancePlan_FULL ?
11 дек 15, 11:25    [18545049]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Плана обслуживания в sql 2008 через bat  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31981
kravit
почему она хочет создать план, а не запустить уже существующий
С чего такой вывод? DTExec умеет только запускать существующий, больше ничего.
11 дек 15, 11:35    [18545098]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Плана обслуживания в sql 2008 через bat  [new]
o-o
Guest
kravit
Нашел пример как это делать, но почему она хочет создать план

надо не пример, а прямо строку запуска найти.
найдите свой план в ОЕ, найдите соответствующий ему джоб в агенте.
откройте свойства шага, найдите Command line.
вот это и надо запускать

К сообщению приложен файл. Размер - 65Kb
11 дек 15, 12:37    [18545658]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Плана обслуживания в sql 2008 через bat  [new]
kravit
Member

Откуда:
Сообщений: 9
Glory
kravit
вот пример:
DTExec.exe /SQL "Maintenance Plans\MaintenancePlan_FULL" /SERVER "localhost" /MAXCONCURRENT " -1 " /CHECKPOINTING OFF

И что у вас натурально сервер называется "localhost" и на нам есть план по имени MaintenancePlan_FULL ?


Да план называется MaintenancePlan_FULL
При указании имя сервера необязательно указывать само имя, можно localhost или ip адрес, единственно надо убрать кавычки
11 дек 15, 12:45    [18545723]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Плана обслуживания в sql 2008 через bat  [new]
Glory
Member

Откуда:
Сообщений: 104751
kravit
При указании имя сервера необязательно указывать само имя, можно localhost

да что вы говорите. Это вы сами решили или вам кто-то сказал ?
11 дек 15, 12:50    [18545778]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Плана обслуживания в sql 2008 через bat  [new]
o-o
Guest
kravit
При указании имя сервера необязательно указывать само имя, можно localhost или ip адрес, единственно надо убрать кавычки

фигасебе необязательно.
у меня на компе sistocd2 как раз 2 сервера, дефолтный 2000-ый и тот, что на картинке, sql_2008.
угадайте, на каком сервере будут искать план, если я выкину имя экземпляра?
---
по умолчанию subplan-ы задизэйблены, поэтому без явного /SET "...Disable";false ничего не запустится.
но можете дальше свой "пример" корячить вместо того, чтоб готовое взять
11 дек 15, 12:52    [18545795]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Плана обслуживания в sql 2008 через bat  [new]
kravit
Member

Откуда:
Сообщений: 9
o-o,

Да, да!!! Спасибо большое все получилось! как у вас на картинке
11 дек 15, 12:54    [18545809]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Плана обслуживания в sql 2008 через bat  [new]
kravit
Member

Откуда:
Сообщений: 9
o-o
kravit
При указании имя сервера необязательно указывать само имя, можно localhost или ip адрес, единственно надо убрать кавычки

фигасебе необязательно.
у меня на компе sistocd2 как раз 2 сервера, дефолтный 2000-ый и тот, что на картинке, sql_2008.
угадайте, на каком сервере будут искать план, если я выкину имя экземпляра?
---
по умолчанию subplan-ы задизэйблены, поэтому без явного /SET "...Disable";false ничего не запустится.
но можете дальше свой "пример" корячить вместо того, чтоб готовое взять


Я пробовал подставлять и имя машины и localhost и работает во всех случаях
А по поводу /SET - вы правы, я просто не досматрел (нужно было подвинуть ползунок окна чтобы увидеть всю строчку)

Вот два примера которые работают 100%

DTExec.exe /SQL "Maintenance Plans\MaintenancePlan_FULL" /SERVER "VM-MSSQL" /CHECKPOINTING OFF /SET "\Package\Вложенныйѕлан_1.Disable";false /REPORTING E

DTExec.exe /SQL "Maintenance Plans\MaintenancePlan" /SERVER localhost /CHECKPOINTING OFF /SET "\Package\Вложенныйѕлан_1.Disable";false /REPORTING E
11 дек 15, 13:50    [18546260]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Плана обслуживания в sql 2008 через bat  [new]
o-o
Guest
kravit,
1. подзравляю с освоением DTExec
2. ну так это у вас дефолтный экземпляр, вот и прокатило.
в общем случае надо писать имя экземпляра, или же пакет просто не будет найден.
пример у меня выше, на sistocd2 2 экземпляра, пакет на именованном

К сообщению приложен файл. Размер - 30Kb
11 дек 15, 14:01    [18546375]     Ответить | Цитировать Сообщить модератору
 Re: Запуск Плана обслуживания в sql 2008 через bat  [new]
Glory
Member

Откуда:
Сообщений: 104751
kravit
Я пробовал подставлять и имя машины и localhost и работает во всех случаях

Имя машины и имя сервера - это не одно и тоже.
Но они могут совпадать
11 дек 15, 14:23    [18546542]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить