SQL Tips & Tricks, spostare un’istanza da un server all’altro

Se avete molti database, job di SQL Agent e login con permessi particolari, spostare una istanza di SQL Server da un server all’altro può richiedere parecchio tempo. Tuttavia tenere aggiornato il motore del database è importante e non sempre è possibile farlo sullo stesso server, magari per la necessità di un upgrade del sistema operativo.

Recentemente ho migrato una vecchia installazione da Windows Server 2003 e SQL Server 2005, di seguito qualche suggerimento.

Dopo aver configurato il nuovo server nel modo ottimale, per prima cosa è necessario ricreare le login del database. Quelle Windows si autenticano tramite Active Directory, per quelle SQL è necessario invece esportare anche la password.

SQL Server Management Studio ci consente di esportare contemporaneamente tutte le login con un semplice trucco.

Per prima cosa si evidenzia il contenitore “Account di accesso” e poi si preme F7 (Visualizza > Dettagli Esplora Oggetti):

A questo punto nella nuova finestra è possibile selezionare contemporaneamente tutti i login ed esportare uno script di creazione:

Lo script può essere salvato ed eseguito sul nuovo server per ripristinare tutte le login precedenti:

Con la stessa tecnica esportiamo i job di SQL Agent e tutto ciò che deve essere fatto in massa:

I database possono essere spostati in due modi differenti:

  • Backup & Restore
    È il modo più lento ma più sicuro per spostare i database e che non altera il server sorgente
  • Detach & Attach
    Ideale quando i database sono di grandi dimensioni perché comporta il solo spostamento dei file di dati e di log. Durante lo spostamento però i database sono completamente inaccessibili.

Una volta montati i database sul server nuovo è consigliabile innalzare il livello di compatibilità per beneficiare di tutte le funzionalità della nuova versione:

Per ultimo ricordate di abbinare nuovamente le login di SQL Server ai database. A differenza delle login Windows (che vengono automaticamente riconosciute) quelle di SQL Server rimangono scollegate pur avendo lo stesso nome utente. Ad esempio: avete creato la login “simone” sul vecchio server ed anche sul nuovo, il database restorato mostra correttamente i permessi per “simone”, nonostante tutto l’accesso non sarà garantito.

Un apposito script corregge e abbina nuovamente i permessi:

Spostare una istanza di SQL richiede un po’ di lavoro e qualche script, ma seguendo tutti i passaggi non ci saranno sorprese. Se poi si accede al database tramite un CNAME ci si rende indipendenti dal nome macchina, evitando di riconfigurare ogni volta tutti i client.

 

Per supporto commerciale puoi contattare Ahead Informatica al numero +39 0113473770
oppure lascia tuoi recapiti e sarai contattato il prima possibile:



 

Lascia un commento