Kopieren Sie Wartungspläne auf einen anderen Server


18

Gibt es eine Möglichkeit, Wartungspläne von einem SQL Server 2012 auf einen anderen zu kopieren? Auf beide Server kann nicht gleichzeitig (in verschiedenen Netzwerken) über dieselbe Kopie von Management Studio zugegriffen werden.

Antworten:


20

Wechseln Sie zu dem Server, auf dem die Aufträge vorhanden sind, und markieren Sie im Objekt-Explorer von Management Studio unter Verwaltung> SQL Server-Agent den Ordner Aufträge. Drücken Sie F7(oder Ansicht> Objekt-Explorer-Details). Im rechten Bereich sollten mehrere Jobs angezeigt werden. Markieren Sie diejenigen, die Sie kopieren möchten, und klicken Sie mit der rechten Maustaste auf Script Job As> Create To> Clipboard. Stellen Sie nun eine Verbindung zum anderen Server her, öffnen Sie ein neues Abfragefenster, fügen Sie es ein und drücken Sie F5. Viel einfacher als mit SSIS zu mucken.

Abhängig von den geplanten Maßnahmen müssen Sie möglicherweise weitere Schritte ausführen. Stellen Sie anstelle der Datenbankinstanz eine Verbindung zur Integration Services-Instanz her, erweitern Sie Gespeicherte Pakete> MSDB> Wartungspläne, klicken Sie mit der rechten Maustaste auf einen beliebigen Plan und wählen Sie Paket exportieren. Führen Sie auf dem anderen Server dieselben Schritte aus, klicken Sie jedoch mit der rechten Maustaste auf Wartungspläne und wählen Sie Paket importieren. Sie müssen dies für jeden Plan tun.


10

Ich habe einen hackigeren Weg gefunden.

Jeder Ausführungsplan ist ein Datensatz in der msdb.sysssispackagesTabelle.

Sie können Datensätze aus der msdb.sysssispackagesTabelle des Quellservers in die msdb.sysssispackagesTabelle des Zielservers kopieren .

Erstellen Sie einfach einen Verbindungsserver auf dem Quellserver und verwenden Sie diese Einfügung vom Quellserver:

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: Das Ersetzen des Servernamens ist für die Verarbeitung der Zielverbindung im Wartungsplan-Designer von entscheidender Bedeutung.

WICHTIG: Beim Kopieren von Datensätzen wird nur die Struktur des Wartungsplans kopiert. Um Jobs neu zu erstellen, MÜSSEN Sie nach Abschluss der Kopie jeden Mantainence-Plan bearbeiten, den Zeitplan zurücksetzen und speichern.


Schlagen Sie vor, beim Ersetzen abschließende Backslashes ('ab \', 'yz \') zu verwenden, um zu vermeiden, dass andere Teile der Daten ersetzt werden.
Crokusek

-2
  1. log as "sa" wird sonst nicht angezeigt.

  2. um schnell zu sehen:

Bildbeschreibung hier eingeben


OP hat nach Wartungsplänen gefragt, die von Jobs getrennt sind und keine Erstellungsskripte wie für Jobs generieren können.
Jordanien
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.