Отримайте детальний вихід завдання SQL Agent


16

У нас є агент агента SQL Server, який виконує план технічного обслуговування з метою повторного встановлення всієї бази даних на сервері. Останнім часом це не вдалося, але історія завдань не дає достатньо інформації для діагностики проблеми.

В історії вакансій вказується, що робота провалилася. Завдання викликалось користувачем foo \ bar. Останнім кроком було виконано крок 1 (індекс відновлення).

У вікні деталей розміщено кілька повідомлень у такій формі:

Executing query "ALTER INDEX [something] ON [a...".: 0% complete  End Progress  Progress: 2015-03-15 22:51:23.67     Source: Rebuild Index Task

Оператор SQL, який виконується, урізаний, і я вважаю, що результат оператора також урізаний, що не дозволяє мені визначити, який конкретний оператор не вдався і чому. Чи є спосіб отримати повний текст цих повідомлень?


1
Я думаю, що @kin добре справляється з відповіддю на ваше початкове запитання, але, на мою думку, це більше питання налагодження. Якщо ви знаєте, що індекс не працює, я б спробував визначити, чому саме цей індекс не працює. Чи можете ви бачити використаний код sql? Це в збереженому файлі? Ви можете зробити кілька речей, щоб звузити його. Створіть роботу лише з цим індексом. Запустити sql слід, поки ця робота виконується. Захопіть використаний sql, тоді спробуйте відтворити проблему.
Сер присягає

Відповіді:


18

Чи є спосіб отримати повний текст цих повідомлень?

Це можна досягти двома способами - перейдіть до кроку завдання та виберіть вкладку «Додатково»:

а. Виведення у файл (<== Мій бажаний метод)

введіть тут опис зображення

б. "Увійти в таблицю" та "Включити крок виведення в історію" (<== Потрібно обрізати msdb..sysjobhistoryдовгостроково, оскільки повідомлення зберігаються як nvarchar(max)замість nvarchar(1024))

введіть тут опис зображення

Для того, щоб побачити додаткову записану інформацію, вам потрібно скористатися цією збереженою процедурою sp_help_jobsteplog або ви можете запитувати msdb.dbo.sysjobstepslogsтаблицю безпосередньо.

Більше інформації тут


Ура, я підкажу. щоб повідомити вас, правильна назва цієї таблиці - msdb.dbo.sysjobstepslogs ("журнали", а не "журнал"). Я спробував відредагувати відповідь, але односимвольні зміни заборонені.
торіан

1
@toryan np. Я відредагував свою відповідь. Якщо ви вважаєте, що я відповів на ваше запитання, будь ласка, голосуйте / позначте як відповідь.
Кін Шах

1
Я повторно запустив роботу, і цього разу вона створила лише одну помилку, яку вона записала в таблиці, як описано. На жаль, текст запиту все ще був урізаний - чи є можливість отримати більше інформації?
торіан

Я сумніваюся в цьому. Чи можете ви спробувати метод вихідного файлу 1, як описано в моїй відповіді.
Кін Шах

1
@toryan У мене була така ж проблема - журнал все ще був усічений, навіть із виведенням у таблицю (метод (b) вище) та читанням sysjobstepslogs. Це було рекомендацією більшості обговорень цієї проблеми в Інтернеті. Але метод (a), вихід у файл, НЕ мав цієї проблеми: текстові файли показують мені всю роботу з кроком роботи, нарешті, без усічення! (У моєму випадку мої дії завдання - це DTEXECкоманди, що виконують пакети SSIS.) Єдиним недоліком: відображається лише останній запуск, за винятком випадків додавання до файлу. Замість того, щоб додавати, я вирішу жити зі скороченням на більш ранніх дистанціях.
Doug_Ivison

2

Ви можете отримати повний текст:

  1. Ідіть на роботу
  2. Клацніть правою кнопкою миші select properties
  3. Перейдіть до кроку роботи
  4. Виберіть stepі натисніть наedit кнопку
  5. Виберіть advanced. Тут ви можете побачити шлях до журналу.

Тепер його просте слідування.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.