powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ошибка при выполнении плана обслуживания
4 сообщений из 4, страница 1 из 1
Ошибка при выполнении плана обслуживания
    #39997156
dreft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MSSQL 2012

При выполнении плана обслуживания "Очистка журнала" возникает ошибка

Сбой выполнения запроса "EXEC msdb.dbo.sp_purge_jobhistory @oldest_date='2..." со следующей ошибкой: "Внутренняя ошибка обработчика запросов: обработчик запросов обнаружил непредвиденную ошибку во время выполнения (HRESULT = 0x80040e19).". Возможные причины сбоя: проблемы с этим запросом, свойство "ResultSet" установлено неправильно, параметры установлены неправильно или соединение было установлено неправильно.

Выполнение вручную этого:

Код: sql
1.
2.
3.
4.
5.
6.
declare @dt datetime select @dt = cast(N'2020-09-09T08:58:47' as datetime) exec msdb.dbo.sp_delete_backuphistory @dt
GO
EXEC msdb.dbo.sp_purge_jobhistory  @oldest_date='2020-09-09T08:58:47'
GO
EXECUTE msdb..sp_maintplan_delete_log null,null,'2020-09-09T08:58:47'
GO




приводит к ошибке:

Сообщение 8630, уровень 16, состояние 1, процедура sp_purge_jobhistory, строка 67
Внутренняя ошибка обработчика запросов: обработчик запросов обнаружил непредвиденную ошибку во время выполнения (HRESULT = 0x80040e19).
...
Рейтинг: 0 / 0
Ошибка при выполнении плана обслуживания
    #39997170
Marat2020
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dreft,

Вот тот самый кусочек их хранимки msdb.dbo.sp_purge_jobhistory

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
IF(@oldest_date IS NOT NULL)
    BEGIN
        DELETE FROM msdb.dbo.sysjobhistory -- 67-я строка тут
        WHERE ((run_date < @datepart) OR 
               (run_date <= @datepart AND run_time < @timepart))
    END
    ELSE
    BEGIN
        DELETE FROM msdb.dbo.sysjobhistory
    END



Я б на Вашем месте запустил бы CHECKDB по этой табличке или вообще полностью по все базе msdb. На всякий случай.
...
Рейтинг: 0 / 0
Ошибка при выполнении плана обслуживания
    #39997172
dreft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Marat2020,

CHECKDB делал, все чисто.

сделал еще раз проверку.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
Сообщение 8951, уровень 16, состояние 1, строка 2
Ошибка в таблице: таблица "sysjobhistory" (идентификатор 965578478). Для строки данных отсутствует совпадающая строка в индексе "nc1" (идентификатор 2). Возможно, ключи для сопоставления строк индекса отсутствуют или недопустимы:
Сообщение 8955, уровень 16, состояние 1, строка 2
Строка данных (1:2303:3), определяемая по (instance_id = 42235) со значениями индекса "job_id = '23F28D02-81F0-42E4-912E-FFBEFCB6A10C' and instance_id = 42235".
Сообщение 8951, уровень 16, состояние 1, строка 2
Ошибка в таблице: таблица "sysjobhistory" (идентификатор 965578478). Для строки данных отсутствует совпадающая строка в индексе "nc1" (идентификатор 2). Возможно, ключи для сопоставления строк индекса отсутствуют или недопустимы:
Сообщение 8955, уровень 16, состояние 1, строка 2
Строка данных (1:2303:4), определяемая по (instance_id = 42236) со значениями индекса "job_id = '23F28D02-81F0-42E4-912E-FFBEFCB6A10C' and instance_id = 42236".
Сообщение 8951, уровень 16, состояние 1, строка 2
Ошибка в таблице: таблица "sysjobhistory" (идентификатор 965578478). Для строки данных отсутствует совпадающая строка в индексе "nc1" (идентификатор 2). Возможно, ключи для сопоставления строк индекса отсутствуют или недопустимы:
Сообщение 8955, уровень 16, состояние 1, строка 2
Строка данных (1:2303:5), определяемая по (instance_id = 42237) со значениями индекса "job_id = '23F28D02-81F0-42E4-912E-FFBEFCB6A10C' and instance_id = 42237".
Сообщение 8951, уровень 16, состояние 1, строка 2
Ошибка в таблице: таблица "sysjobhistory" (идентификатор 965578478). Для строки данных отсутствует совпадающая строка в индексе "nc1" (идентификатор 2). Возможно, ключи для сопоставления строк индекса отсутствуют или недопустимы:
Сообщение 8955, уровень 16, состояние 1, строка 2
Строка данных (1:2303:6), определяемая по (instance_id = 42238) со значениями индекса "job_id = '23F28D02-81F0-42E4-912E-FFBEFCB6A10C' and instance_id = 42238".
Сообщение 8952, уровень 16, состояние 1, строка 2
Ошибка в таблице: таблица "sysjobhistory" (идентификатор 965578478). Строке индекса "nc1" (идентификатор 2) не соответствует ни одна строка данных. Возможно, существуют лишние или недопустимые ключи для:
Сообщение 8956, уровень 16, состояние 1, строка 2
Строка индекса (1:29080:0) со значениями (job_id = '23F28D02-81F0-42E4-912E-FFBEFCB6A10C' and instance_id = 41075), указывающими на строку данных, определяемую по (instance_id = 41075).
Сообщение 8952, уровень 16, состояние 1, строка 2
Ошибка в таблице: таблица "sysjobhistory" (идентификатор 965578478). Строке индекса "nc1" (идентификатор 2) не соответствует ни одна строка данных. Возможно, существуют лишние или недопустимые ключи для:
Сообщение 8956, уровень 16, состояние 1, строка 2
Строка индекса (1:29080:1) со значениями (job_id = '23F28D02-81F0-42E4-912E-FFBEFCB6A10C' and instance_id = 41076), указывающими на строку данных, определяемую по (instance_id = 41076).
Сообщение 8952, уровень 16, состояние 1, строка 2
Ошибка в таблице: таблица "sysjobhistory" (идентификатор 965578478). Строке индекса "nc1" (идентификатор 2) не соответствует ни одна строка данных. Возможно, существуют лишние или недопустимые ключи для:
Сообщение 8956, уровень 16, состояние 1, строка 2
Строка индекса (1:29080:2) со значениями (job_id = '23F28D02-81F0-42E4-912E-FFBEFCB6A10C' and instance_id = 41077), указывающими на строку данных, определяемую по (instance_id = 41077).
Сообщение 8952, уровень 16, состояние 1, строка 2
Ошибка в таблице: таблица "sysjobhistory" (идентификатор 965578478). Строке индекса "nc1" (идентификатор 2) не соответствует ни одна строка данных. Возможно, существуют лишние или недопустимые ключи для:
Сообщение 8956, уровень 16, состояние 1, строка 2
Строка индекса (1:29080:3) со значениями (job_id = '23F28D02-81F0-42E4-912E-FFBEFCB6A10C' and instance_id = 41078), указывающими на строку данных, определяемую по (instance_id = 41078).



Если в окне "очистка журнала" (скрин) выбрать >= 6 месяцев, то ошибка не появляется и все корректно отрабатывает, но мне нужно, чтобы я мог удалять записи > 1 дня.
...
Рейтинг: 0 / 0
Ошибка при выполнении плана обслуживания
    #39997177
dreft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Marat2020, спасибо большое, подтолкнул на решение.


В общем сделал CHECKDB базы msdb, показало 8 ошибок.

Ну и помогло
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
USE [master]
GO
ALTER DATABASE [msdb] SET  SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
ALTER DATABASE [msdb] SET  SINGLE_USER
GO
DBCC CHECKDB (msdb, REPAIR_ALLOW_DATA_LOSS)
GO
ALTER DATABASE [msdb] SET  MULTI_USER
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ошибка при выполнении плана обслуживания
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]