SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Microsoft SQL Server » Запрос списка баз из "субплана"
Запрос списка баз из "субплана" [сообщение #1137] Thu, 15 December 2022 12:43 Переход к следующему сообщению
gevchik в настоящее время не в онлайне  gevchik
Сообщений: 3
Зарегистрирован: December 2022
Junior Member
Добрый день.
Прошу подсказать код для вывода списка баз в созданных ранее "Планах обслуживания".
Существуют несколько "субпланов" с задачей резервного копирования, нужно периодически выводить список баз участников.
MSSQL2016
Заранее спасибо.
Re: Запрос списка баз из "субплана" [сообщение #1138 является ответом на сообщение #1137] Thu, 15 December 2022 14:08 Переход к предыдущему сообщениюПереход к следующему сообщению
BlackEric в настоящее время не в онлайне  BlackEric
Сообщений: 358
Зарегистрирован: June 2022
Senior Member
Эти данные должны хранится в таблицах sysmaintplan_log, sysmaintplan_logdetail и sysmaintplan_subplans
Re: Запрос списка баз из "субплана" [сообщение #1140 является ответом на сообщение #1138] Thu, 15 December 2022 15:05 Переход к предыдущему сообщениюПереход к следующему сообщению
gevchik в настоящее время не в онлайне  gevchik
Сообщений: 3
Зарегистрирован: December 2022
Junior Member
Эти таблицы видел, но не хватает понимания\знания языка, как собственно вытащить из них "список баз".
Re: Запрос списка баз из "субплана" [сообщение #1147 является ответом на сообщение #1140] Fri, 16 December 2022 19:00 Переход к предыдущему сообщениюПереход к следующему сообщению
BlackEric в настоящее время не в онлайне  BlackEric
Сообщений: 358
Зарегистрирован: June 2022
Senior Member
Цитата:

Select distinct p.[name] as 'Maintenance_Plan'
, RIGHT(smpld.line4,LEN(smpld.line4)-6) as 'Backup_Type'
, sp.subplan_name as 'Subplan_Name'
, smpld.line3 as 'Database_Names'
, job.[name] As 'Job_Name'
From msdb.dbo.sysjobs As job
join msdb.dbo.sysmaintplan_subplans sp
On sp.job_id = job.job_id
inner join msdb.dbo.[sysmaintplan_plans] p
On p.id = sp.plan_id
join msdb.dbo.sysmaintplan_log smpl
On p.id = smpl.plan_id
and sp.subplan_id =smpl.subplan_id
join msdb.dbo.sysmaintplan_logdetail smpld
On smpl.task_detail_id=smpld.task_detail_id
Where
job.[enabled] = 1
and smpld.line3 <> ''
Как-то так
Re: Запрос списка баз из "субплана" [сообщение #1185 является ответом на сообщение #1147] Mon, 26 December 2022 17:25 Переход к предыдущему сообщениюПереход к следующему сообщению
gevchik в настоящее время не в онлайне  gevchik
Сообщений: 3
Зарегистрирован: December 2022
Junior Member
Если я правильно понимаю, этот код тащит данные из логов. Это немного не то конечно, но спасибо.
Re: Запрос списка баз из "субплана" [сообщение #1215 является ответом на сообщение #1140] Wed, 28 December 2022 20:02 Переход к предыдущему сообщению
komrad в настоящее время не в онлайне  komrad
Сообщений: 14
Зарегистрирован: July 2022
Junior Member
мейнтенанс план - это ssis пакет и джоб, который его вызывает

пакет хранится в [msdb].[dbo].[sysssispackages]:


    SELECT name
        , CAST(CAST(packagedata AS varbinary(MAX)) AS XML) AS package
    FROM [msdb].[dbo].[sysssispackages]
    WHERE name = 'мейнтенанс план'
в тексте пакета есть список баз:

<DTS:ObjectData>
<SQLTask:SqlTaskData xmlns:SQLTask="www.microsoft.com/sqlserver/dts/tasks/sqltask " SQLTask:Connection="{23038076-86CA-42D8-A91B-E4D771996BAB}" SQLTask:DatabaseSelectionType="4" SQLTask:ServerVersion="15" SQLTask:ExtendedLogging="True" SQLTask:LocalConnectionForLogging="Local server connection" SQLTask:TaskName="Check Database Integrity" SQLTask:IgnoreDatabasesInNotOnlineState="False" SQLTask:IncludeIndexes="True" SQLTask:PhysicalOnly="True" SQLTask:Tablock="False" SQLTask:MaximumDegreeOfParallelismUsed="False">
<SQLTask:SelectedDatabases SQLTask:DatabaseName="XX_TM01" />
<SQLTask:SelectedDatabases SQLTask:DatabaseName="YY_TM01" />
<SQLTask:SelectedDatabases SQLTask:DatabaseName="NN_TM01" />

</SQLTask:SqlTaskData>
</DTS:ObjectData>

Как отсюда вытащить запросом базы - не подскажу, я не силен в работе с xml.
Может кто другой поможет с запросом.

Предыдущая тема: Как из MSSQL Server отправить картинку почтой
Следующая тема: T-SQL Language Changes in SQL Server 2022
Переход к форуму:
  


Текущее время: Fri Nov 15 05:11:04 GMT+3 2024

Общее время, затраченное на создание страницы: 0.00953 секунд