Skopiuj plany konserwacji na inny serwer

19

Czy istnieje sposób na skopiowanie planów konserwacji z jednego programu SQL Server 2012 na inny? Oba serwery nie są dostępne za pośrednictwem tej samej kopii Management Studio w tym samym czasie (w różnych sieciach).

Greg Balajewicz
źródło

Odpowiedzi:

20

Przejdź do serwera, na którym istnieją zadania, w Eksploratorze obiektów Management Studio przejdź do opcji Zarządzanie> Agent programu SQL Server i zaznacz folder Zadania. Naciśnij F7(lub Widok> Szczegóły Eksploratora obiektów). Powinieneś zobaczyć wiele zadań w prawym panelu. Podświetl te, które chcesz skopiować, kliknij prawym przyciskiem myszy, Zadanie skryptu jako> Utwórz do> Schowek. Teraz połącz się z drugim serwerem, otwórz nowe okno zapytania, wklej i naciśnij F5. O wiele łatwiej niż mucking z SSIS.

Może być konieczne podjęcie dodatkowych kroków, w zależności od planów. Połącz się z instancją Integration Services, a nie z instancją bazy danych, rozwiń Zapisane pakiety> MSDB> Plany konserwacji i kliknij prawym przyciskiem myszy dowolny plan i wybierz Eksportuj pakiet. Na drugim serwerze wykonaj te same kroki, ale kliknij prawym przyciskiem myszy Plany konserwacji i wybierz Importuj pakiet. Będziesz musiał to zrobić dla każdego planu.

Aaron Bertrand
źródło
11

Znalazłem bardziej hakerski sposób.

Każdy plan wykonania jest jednym rekordem w msdb.sysssispackagestabeli.

Możesz skopiować rekordy z msdb.sysssispackages tabeli serwera źródłowego do msdb.sysssispackagestabeli serwera docelowego.

Po prostu utwórz serwer połączony na serwerze źródłowym i użyj tego Wstaw z serwera źródłowego:

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')

INFORMACJE: Zastąp nazwę serwera ma kluczowe znaczenie dla obsługi połączenia docelowego w projektancie planu konserwacji.

WAŻNE: Kopiowanie zapisów kopiuje tylko strukturę planu konserwacji. Aby odtworzyć zadania, po zakończeniu kopiowania MUSISZ dokonać edycji każdego Planu Mantainence, zresetować harmonogram i zapisać go.

Riccardo Bassilichi
źródło
1
Sugeruj użycie końcowych ukośników odwrotnych w zastępowaniu („ab \”, „yz \”), aby uniknąć zamiany innych części danych.
crokusek
-2
  1. zaloguj jako „sa”, w przeciwnym razie nie zostanie wyświetlone.

  2. aby szybko zobaczyć:

wprowadź opis zdjęcia tutaj

ingconti
źródło
OP pytał o plany konserwacji, które są niezależne od zadań i nie mogą wygenerować skryptów tworzenia w sposób, w jaki można dla zadań.
Jordania