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

Откуда: Челябинск
Сообщений: 110
Добрый день.
Настраиваю бэкап. Делаю примитив: ежедневное копирование через план обслуживания (стандартный кубик) + хочу прописать 1го числа месяца копирование созданного файла в другую папку.
При ручном выполнении кода ошибка выходит, а при запуске из агента - нет (код поместил в "кирпичик" Execute T-SQL).

К сообщению приложен файл. Размер - 98Kb
24 дек 18, 18:22    [21772358]     Ответить | Цитировать Сообщить модератору
 Re: Не могу получить ошибку  [new]
chel74
Member

Откуда: Челябинск
Сообщений: 110


К сообщению приложен файл. Размер - 67Kb
24 дек 18, 18:22    [21772359]     Ответить | Цитировать Сообщить модератору
 Re: Не могу получить ошибку  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7396
chel74,

агент наверняка работает от имени другой учетной записи.
24 дек 18, 18:33    [21772370]     Ответить | Цитировать Сообщить модератору
 Re: Не могу получить ошибку  [new]
chel74
Member

Откуда: Челябинск
Сообщений: 110
Владислав Колосов,

конечно, от другой учетки. Но и у неё (и у меня) все права на папку есть. Вопрос в другом: я хочу чтоб sql высылал письмо об ошибке в случае проблем выполнения этого t-sql. Тестирую выполнение кода. В текущем коде используется xcopy и в случае если файл в папке назначения уже есть - xcopy запрашивает перезаписывать ли. При запуске от меня я вижу ошибку. А при выполнении job не возникает ошибка которая бы привела к отправке письма.
24 дек 18, 18:47    [21772381]     Ответить | Цитировать Сообщить модератору
 Re: Не могу получить ошибку  [new]
chel74
Member

Откуда: Челябинск
Сообщений: 110
ап
25 дек 18, 09:49    [21772684]     Ответить | Цитировать Сообщить модератору
 Re: Не могу получить ошибку  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30763
chel74
Вопрос в другом: я хочу чтоб sql высылал письмо об ошибке в случае проблем выполнения этого t-sql
Второй скриншот как бы намекает, что вы выполняете ваш сиквельный код в пакете SSIS
Этот пакет выполняется в программе, которая гасит ошибки.
Что бы получить желаемое, вам нужно научиться обрабатывать ошибки в пакете, либо возвращая их, для дальнейшей обработки в джобе, либо посылая письма прямо оттуда.
25 дек 18, 11:37    [21772779]     Ответить | Цитировать Сообщить модератору
 Re: Не могу получить ошибку  [new]
chel74
Member

Откуда: Челябинск
Сообщений: 110
alexeyvg, ссылок накидайте пожалуйста
25 дек 18, 12:05    [21772804]     Ответить | Цитировать Сообщить модератору
 Re: Не могу получить ошибку  [new]
chel74
Member

Откуда: Челябинск
Сообщений: 110
А вообще может я не туда иду?
Задача: настроить создание бэкапов таким образом, чтобы 1го числа месяца создавалась дополнительная копия в папке "month".
Может есть какие-то другие более правильные способы? Главное условие - чтоб при возникновении ошибки отправлялось оповещение "куда надо".
+
Пока нашел лишь "MIRROR TO option in the SQL Server BACKUP command" - но оно только для Enterprise версии.
25 дек 18, 12:11    [21772813]     Ответить | Цитировать Сообщить модератору
 Re: Не могу получить ошибку  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7396
chel74,

вообще непонятно, зачем там какие-то xcopy, если вы используется Integration Services. Там есть средства для копирования файлов и папок.
25 дек 18, 12:26    [21772833]     Ответить | Цитировать Сообщить модератору
 Re: Не могу получить ошибку  [new]
chel74
Member

Откуда: Челябинск
Сообщений: 110
Владислав Колосов, тут 2 проблемы:
1) консоль (интерфейс, компонент) Integration Services не установлен. Помню на другом сервер как-то раз открывал нечто похожее, а сейчас не вижу.
2) как можно догадаться из предыдущего пункта, мои познания (и познания коллег) в Integration Services равны 0
25 дек 18, 14:21    [21772964]     Ответить | Цитировать Сообщить модератору
 Re: Не могу получить ошибку  [new]
chel74
Member

Откуда: Челябинск
Сообщений: 110
Сейчас все настроено через добавление блоков в план обслуживания

К сообщению приложен файл. Размер - 75Kb
25 дек 18, 14:22    [21772966]     Ответить | Цитировать Сообщить модератору
 Re: Не могу получить ошибку  [new]
chel74
Member

Откуда: Челябинск
Сообщений: 110


К сообщению приложен файл. Размер - 122Kb
25 дек 18, 14:22    [21772967]     Ответить | Цитировать Сообщить модератору
 Re: Не могу получить ошибку  [new]
chel74
Member

Откуда: Челябинск
Сообщений: 110
Попробовал напрямую создать задание агента и в нем прописать код как в cmd. Ошибку красиво пишет в журнал. Но почему-то ошибку "файл не найден", хотя подо мной в cmd все выполняется. Права у учетки агента на папку есть.

К сообщению приложен файл. Размер - 88Kb
25 дек 18, 14:25    [21772970]     Ответить | Цитировать Сообщить модератору
 Re: Не могу получить ошибку  [new]
chel74
Member

Откуда: Челябинск
Сообщений: 110
Разобрался. Там было право "особые разрешения", только на папку без файлов. Путаница короче.
25 дек 18, 14:46    [21772988]     Ответить | Цитировать Сообщить модератору
 Re: Не могу получить ошибку  [new]
chel74
Member

Откуда: Челябинск
Сообщений: 110
Продолжаем.
На последнем снимке экрана видно что если прописать строку для cmd как "xcopy H:\MSSQL\Backup\Daily\*.bak /D:12-25-2018 /y /S /I H:\MSSQL\Backup\Month" - всё работает.
А вот если попытаться задать переменные - выполняется без вывода каких-либо ошибок, но и результата тоже нет.
Пример работающий в bat но не работающий в cmdshell:

set From=H:\MSSQL\Backup\Daily\*.bak
set To=H:\MSSQL\Backup\Month
xcopy %From% /y /S /I %To%

Как прописать переменные?
25 дек 18, 19:38    [21773294]     Ответить | Цитировать Сообщить модератору
 Re: Не могу получить ошибку  [new]
chel74
Member

Откуда: Челябинск
Сообщений: 110
Соединил строки через &&. Теперь выдает "File not found - %From%"
25 дек 18, 19:58    [21773313]     Ответить | Цитировать Сообщить модератору
 Re: Не могу получить ошибку  [new]
chel74
Member

Откуда: Челябинск
Сообщений: 110
ап
26 дек 18, 09:57    [21773601]     Ответить | Цитировать Сообщить модератору
 Re: Не могу получить ошибку  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7396
chel74,

Вы понимаете, что Ваши вопросы к SQL сервер не имеют отношения? Напишите пакетный файл и выполняйте его в джобе.
26 дек 18, 12:49    [21773758]     Ответить | Цитировать Сообщить модератору
 Re: Не могу получить ошибку  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30763
chel74
alexeyvg, ссылок накидайте пожалуйста
SSIS достаточно большой продукт, так что для изучения нужно какой то учебник, что ли, или можно гуглить конкретные проблемы, например, "как обработать ошибку в шаге SSIS", в общем, нужно время потратить.

Как вариант, можно просто в джобе вызывать процедуру, в которой будет создание бакапа и его копирование, это проще написать и отладить, чем изучать SSIS (правда, изучение такого мощного инструмента вообще полезно, безотносительно его пользы для конкретной задачи).
26 дек 18, 13:04    [21773766]     Ответить | Цитировать Сообщить модератору
 Re: Не могу получить ошибку  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4379
alexeyvg
chel74
alexeyvg, ссылок накидайте пожалуйста
SSIS достаточно большой продукт, так что для изучения нужно какой то учебник, что ли, или можно гуглить конкретные проблемы, например, "как обработать ошибку в шаге SSIS", в общем, нужно время потратить.

Как вариант, можно просто в джобе вызывать процедуру, в которой будет создание бакапа и его копирование, это проще написать и отладить, чем изучать SSIS (правда, изучение такого мощного инструмента вообще полезно, безотносительно его пользы для конкретной задачи).


Все там предельно просто. Отключаете падение пакета или блока по ошибке, ставите переход по красной стрелке и далее по этой стрелке реагируете на непредвиденную ситуацию. Я даже на собеседовании спрашивал вопрос про то, как retry-ить при получении ошибки.
26 дек 18, 15:44    [21773946]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить