Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ошибка при выполнении плана обслуживания / 4 сообщений из 4, страница 1 из 1
10.09.2020, 08:57
    #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
10.09.2020, 09:41
    #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
10.09.2020, 09:58
    #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
10.09.2020, 10:11
    #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
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ошибка при выполнении плана обслуживания / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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