Есть ли способ скопировать планы обслуживания из одного SQL Server 2012 в другой? Оба сервера не доступны через одну и ту же копию Management Studio одновременно (в разных сетях).
источник
Есть ли способ скопировать планы обслуживания из одного SQL Server 2012 в другой? Оба сервера не доступны через одну и ту же копию Management Studio одновременно (в разных сетях).
Перейдите на сервер, на котором существуют задания, в обозревателе объектов Management Studio выберите «Управление»> «Агент SQL Server» и выделите папку «Задания». Нажмите F7(или View> Object Explorer Details). Вы должны увидеть несколько рабочих мест на правой панели. Выделите те, которые вы хотите скопировать, щелкните правой кнопкой мыши, Script Job As> Create To> Clipboard. Теперь подключитесь к другому серверу, откройте новое окно запроса, вставьте и нажмите F5. Гораздо проще, чем гадить с SSIS.
Возможно, вам придется предпринять дополнительные шаги, в зависимости от того, что планы делают. Подключитесь к экземпляру Integration Services, а не к экземпляру базы данных, разверните Хранимые пакеты> MSDB> Планы обслуживания, щелкните правой кнопкой мыши любой план и выберите Экспорт пакета. На другом сервере выполните те же действия, но щелкните правой кнопкой мыши Планы обслуживания и выберите Импортировать пакет. Вы должны будете сделать это для каждого плана.
Я нашел более хакерский способ.
Каждый План выполнения - одна запись в msdb.sysssispackages
таблице.
Вы можете скопировать записи из msdb.sysssispackages
таблицы исходного сервера в msdb.sysssispackages
таблицу конечного сервера.
Просто создайте связанный сервер на исходном сервере и используйте эту Вставку с исходного сервера:
INSERT INTO
YOUR-DEST-SERVER-NAME.msdb.dbo.sysssispackages
SELECT
name,
id,
description,
createdate,
folderid,
ownersid,
cast(
cast(
replace(
cast(
CAST(packagedata AS VARBINARY(MAX)) AS varchar(max)
),
'YOUR-SOURCE-SERVER-NAME', 'YOUR-DEST-SERVER-NAME')
as XML)
as VARBINARY(MAX)) as packagedata,
packageformat,
packagetype,
vermajor,
verminor,
verbuild,
vercomments,
verid,
isencrypted,
readrolesid,
writerolesid
FROM
msdb.dbo.sysssispackages AS sysssispackages_1
WHERE
(name = 'YourMaintenancePlanName')
ИНФОРМАЦИЯ: Замена имени сервера имеет решающее значение для обработки целевого соединения в конструкторе плана обслуживания.
ВАЖНО: Копирование записей только копирует структуру плана обслуживания. Чтобы воссоздать задания, когда вы закончите копирование, вы ДОЛЖНЫ отредактировать каждый план Mantainence, сбросить расписание и сохранить его.
войти как "sa" в противном случае не будет отображаться.
быстро увидеть:
источник