Existe-t-il un moyen de copier des plans de maintenance d'un SQL Server 2012 vers un autre? Les deux serveurs ne sont pas accessibles via la même copie de Management Studio en même temps (sur des réseaux différents).
Existe-t-il un moyen de copier des plans de maintenance d'un SQL Server 2012 vers un autre? Les deux serveurs ne sont pas accessibles via la même copie de Management Studio en même temps (sur des réseaux différents).
Réponses:
Accédez au serveur sur lequel se trouvent les travaux, dans l'Explorateur d'objets de Management Studio, accédez à Gestion> Agent SQL Server et mettez en surbrillance le dossier Travaux. Appuyez sur F7(ou Affichage> Détails de l'explorateur d'objets). Vous devriez voir plusieurs travaux dans le volet droit. Mettez en surbrillance celles que vous souhaitez copier, cliquez avec le bouton droit sur Script Job As> Create To> Clipboard. Connectez-vous maintenant à l'autre serveur, ouvrez une nouvelle fenêtre de requête, collez et appuyez sur F5. Beaucoup plus facile que de nettoyer avec SSIS.
Vous devrez peut-être prendre des mesures supplémentaires, selon ce que font les plans. Connectez-vous à l'instance Integration Services plutôt qu'à l'instance de base de données, développez Packages stockés> MSDB> Plans de maintenance, cliquez avec le bouton droit sur n'importe quel plan et choisissez Exporter le package. Sur l'autre serveur, suivez les mêmes étapes, mais cliquez avec le bouton droit sur Plans de maintenance et choisissez Importer le package. Vous devrez le faire pour chaque plan.
J'ai trouvé un moyen plus hacking.
Chaque plan d'exécution est un enregistrement dans le msdb.sysssispackages
tableau.
Vous pouvez copier des enregistrements de la msdb.sysssispackages
table du serveur source vers la msdb.sysssispackages
table du serveur de destination.
Créez simplement un serveur lié sur le serveur source et utilisez cette insertion à partir du serveur source:
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')
INFO: Remplacer le nom du serveur est crucial pour gérer la connexion de destination sur le concepteur de plan de maintenance.
IMPORTANT: les enregistrements de copie ne copient que la structure du plan de maintenance. Pour recréer des travaux, lorsque vous avez terminé la copie, vous DEVEZ modifier chaque plan de maintien, réinitialiser le calendrier et l'enregistrer.