Copia i piani di manutenzione su un altro server


19

Esiste un modo per copiare i piani di manutenzione da un SQL Server 2012 a un altro? Entrambi i server non sono accessibili contemporaneamente tramite la stessa copia di Management Studio (su reti diverse).

Risposte:


20

Passare al server in cui sono presenti i lavori, in Esplora oggetti di Management Studio selezionare Gestione> Agente SQL Server ed evidenziare la cartella Lavori. Premi F7(o Visualizza> Dettagli Esplora oggetti). Dovresti vedere più lavori nel riquadro a destra. Evidenziare quelli che si desidera copiare, fare clic con il tasto destro del mouse, Script Job As> Crea in> Appunti. Ora connettiti all'altro server, apri una nuova finestra di query, incolla e premi F5. Molto più facile che confondere con SSIS.

Potrebbe essere necessario eseguire ulteriori passaggi, a seconda dell'azione dei piani. Connettersi all'istanza di Integration Services, anziché all'istanza del database, espandere Pacchetti memorizzati> MSDB> Piani di manutenzione e fare clic con il pulsante destro del mouse su qualsiasi piano e scegliere Esporta pacchetto. Sull'altro server, seguire gli stessi passaggi, ma fare clic con il pulsante destro del mouse su Piani di manutenzione e selezionare Importa pacchetto. Dovrai farlo per ogni piano.


11

Ho trovato un modo più hacking.

Ogni piano di esecuzione è un record nella msdb.sysssispackagestabella.

È possibile copiare i record dalla msdb.sysssispackagestabella del server di origine alla msdb.sysssispackagestabella del server di destinazione.

È sufficiente creare un server collegato sul server di origine e utilizzare questo Inserisci dal server di origine:

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

INFORMAZIONI: Sostituire il nome del server è fondamentale per gestire la connessione di destinazione nel progettista del piano di manutenzione.

IMPORTANTE: la copia dei record copia solo la struttura del piano di manutenzione. Per ricreare i lavori, al termine della copia, DEVI modificare ogni piano di manutenzione, ripristinare la pianificazione e salvarla.


1
Suggerisci di utilizzare le barre rovesciate finali in replace ('ab \', 'yz \') per evitare di sostituire altre parti dei dati.
crokusek,

-2
  1. registra come "sa" altrimenti non verrà visualizzato.

  2. per vedere rapidamente:

inserisci qui la descrizione dell'immagine


OP stava chiedendo dei piani di manutenzione che sono separati dai lavori e non possono generare script di creazione nel modo in cui è possibile per i lavori.
Giordania,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.