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

Откуда:
Сообщений: 27
Коллеги добрый день!

Возник следующий вопрос! По некоторым причинам у меня перекосило настройки бэкапов.
Бэкапы были настроены следующим образом: созданы Maintenance Plan -ы и соответственно привязаны к Job's-ам SQL агента. Бэкапы делались на другой (физически) сервер, который теперь не доступен (причины недоступности это отдельная тема). У меня возникли проблемы при перенастройке планов, поэтому я решил просто удалить их и создать новые. Планы я удалил, а вот job-ы агента удалить не получается, так как они ссылаются на планы. При удалении возникает такая-вот ошибка:

------------------------------
ADDITIONAL INFORMATION:

The Job 'Daily_TransactionLog_xxxxxxxx.Subplan_1' does not exist on the server. (Microsoft.SqlServer.Smo)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.4035.00&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.ObjectDoesNotExist&LinkId=20476

------------------------------
BUTTONS:

OK
------------------------------

Можно ли как-то удалить их из списка, что бы не замусоривать сервер, или они будут висеть бесконечно?

Спасибо!
28 сен 09, 15:21    [7715935]     Ответить | Цитировать Сообщить модератору
 Re: Удаление job's SQL агента  [new]
ТАРАКАН
Member

Откуда:
Сообщений: 439
select @@Version
?
28 сен 09, 15:33    [7716028]     Ответить | Цитировать Сообщить модератору
 Re: Удаление job's SQL агента  [new]
ТАРАКАН
Member

Откуда:
Сообщений: 439
версия в ошибке :) 9.00.4035

лично я вот этим пользовался. Выполнять поочереди:

USE [msdb]
declare @job_name varchar(100)
set @job_name = N'SystemDB-MaintenancePlan.Subplan_1'
delete sysmaintplan_log
FROM sysmaintplan_subplans AS subplans INNER JOIN
sysjobs_view AS syjobs ON subplans.job_id = syjobs.job_id INNER JOIN
sysmaintplan_log ON subplans.subplan_id = sysmaintplan_log.subplan_id
WHERE (syjobs.name = @job_name)

USE [msdb]
declare @job_name varchar(100)
set @job_name = N'SystemDB-MaintenancePlan.Subplan_1'
delete sysmaintplan_subplans
FROM sysmaintplan_subplans AS subplans INNER JOIN
sysjobs_view AS syjobs ON subplans.job_id = syjobs.job_id
WHERE (syjobs.name = @job_name)

declare @job_name varchar(100)
set @job_name = N'SystemDB-MaintenancePlan.Subplan_1'
delete
from msdb.dbo.sysjobs_view where name = @job_name
delete
FROM msdb.dbo.sysmaintplan_plans
where name = 'SystemDB-MaintenancePlan'
28 сен 09, 15:37    [7716074]     Ответить | Цитировать Сообщить модератору
 Re: Удаление job's SQL агента  [new]
Weiss Mike
Member

Откуда:
Сообщений: 27
job_name - имя плана?
28 сен 09, 16:23    [7716378]     Ответить | Цитировать Сообщить модератору
 Re: Удаление job's SQL агента  [new]
Weiss Mike
Member

Откуда:
Сообщений: 27
Не помогло. При всех запросах писал 0 rows affected
28 сен 09, 16:31    [7716429]     Ответить | Цитировать Сообщить модератору
 Re: Удаление job's SQL агента  [new]
ТАРАКАН
Member

Откуда:
Сообщений: 439
Weiss Mike
job_name - имя плана?

имя вашего джоба, который выв не можите удалить, а имя плана самый последний если есть план который не получается удалить.
28 сен 09, 16:53    [7716535]     Ответить | Цитировать Сообщить модератору
 Re: Удаление job's SQL агента  [new]
Weiss Mike
Member

Откуда:
Сообщений: 27
Перед последним declare "USE [msdb]" нужно ставить?
28 сен 09, 17:05    [7716607]     Ответить | Цитировать Сообщить модератору
 Re: Удаление job's SQL агента  [new]
Weiss Mike
Member

Откуда:
Сообщений: 27
Что-то видать я криво делаю
28 сен 09, 17:35    [7716807]     Ответить | Цитировать Сообщить модератору
 Re: Удаление job's SQL агента  [new]
ТАРАКАН
Member

Откуда:
Сообщений: 439
USE [msdb]
declare @job_name varchar(100)
set @job_name = N'SystemDB-MaintenancePlan.Subplan_1'
delete sysmaintplan_log
FROM sysmaintplan_subplans AS subplans INNER JOIN
sysjobs_view AS syjobs ON subplans.job_id = syjobs.job_id INNER JOIN
sysmaintplan_log ON subplans.subplan_id = sysmaintplan_log.subplan_id
WHERE (syjobs.name = @job_name)

USE [msdb]
declare @job_name varchar(100)
set @job_name = N'SystemDB-MaintenancePlan.Subplan_1'
delete sysmaintplan_subplans
FROM sysmaintplan_subplans AS subplans INNER JOIN
sysjobs_view AS syjobs ON subplans.job_id = syjobs.job_id
WHERE (syjobs.name = @job_name)

USE [msdb]
declare @job_name varchar(100)
set @job_name = N'SystemDB-MaintenancePlan.Subplan_1'
delete
from msdb.dbo.sysjobs_view where name = @job_name

---Это можно не выполнять если нет глючного плана
delete
FROM msdb.dbo.sysmaintplan_plans
where name = 'SystemDB-MaintenancePlan'
28 сен 09, 17:53    [7716905]     Ответить | Цитировать Сообщить модератору
 Re: Удаление job's SQL агента  [new]
Weiss Mike
Member

Откуда:
Сообщений: 27
Опс.. Перелогинился к серверу и битые джобы сами пропали :)
28 сен 09, 18:57    [7717160]     Ответить | Цитировать Сообщить модератору
 Re: Удаление job's SQL агента  [new]
Weiss Mike
Member

Откуда:
Сообщений: 27
В любом случае спасибо за советы, пригодятся на будущее.
28 сен 09, 18:58    [7717162]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить