SSMS
 sql >> Database >  >> Database Tools >> SSMS

Migrazione del database SQL con SSMS

La migrazione di MSSQL tra server può essere difficile senza le linee guida adeguate per tenerti in pista. In questo articolo, illustrerò i vari modi per migrare i database di Microsoft SQL Server tra server o istanze. Che tu abbia bisogno di spostare un singolo database, molti database, accessi o stored procedure e viste, abbiamo tutto ciò che ti serve!

Ci sono molte circostanze in cui sarà necessario spostare un database o ripristinare i database. I motivi più comuni sono:

  • Spostamento su un server completamente nuovo.
  • Spostamento in un'istanza diversa di SQL.
  • Creazione di un server di sviluppo o passaggio a un server di produzione.
  • Ripristino dei database da un backup.

Esistono due modi principali per spostare i database SQL. Manualmente con Microsoft SQL Server Management Studio (SSMS) o con la riga di comando. Il metodo che scegli dipende da ciò che devi realizzare. Se stai spostando un singolo database o solo alcuni, il backup e il ripristino manuali dei database con SSMS sarà l'approccio più semplice. Se stai spostando molti database (pensa più di 10), l'utilizzo del metodo della riga di comando accelererà il processo. Il metodo della riga di comando richiede più lavoro di preparazione in anticipo, ma se stai trasferendo dozzine di database, vale la pena dedicare il tempo alla configurazione dello script invece di migrare ogni database singolarmente. Se non sei sicuro di quale metodo utilizzare, prova prima l'approccio manuale mentre ti senti a tuo agio con il processo. Consiglio di leggere fino in fondo per una comprensione più approfondita della metodologia.

Riferimenti utili per la terminologia

SSMS – Acronimo di Microsoft S QL S sempre M gestione S studio.

Server di origine – Il server o l'istanza da cui stai spostando i database da o disattivato .

Server di destinazione – Il server o l'istanza in cui stai spostando i database in .

Il metodo manuale

Spostare i database SQL con il metodo manuale può essere molto semplice. È il processo preferito per il trasferimento di pochi o più piccoli database. Per seguire questa parte della guida, devi avere installato MSSQL e Microsoft SQL Server Management Studio (SSMS).

Backup dei database sul server di origine

1. Iniziare effettuando l'accesso al server di origine (il server da cui si spostano i database o da cui si spostano fuori). Ti consigliamo di aprire Microsoft SQL Server Management Studio selezionando Start> Microsoft SQL Server>  Microsoft SQL Server Management Studio .

2.Accedere al server SQL utilizzando l'autenticazione di Windows o l'autenticazione SQL.

3. Espandi il server (nel nostro caso SQL01 ), espandi Banche dati , seleziona il primo database che desideri spostare (nella foto sotto).

4. Fare clic con il pulsante destro del mouse sul database e selezionare Attività quindi fare clic su Backup .

5. Da qui sei ora al Backup del database schermo. Puoi scegliere un tipo di backup come Completo o Differenziale , assicurati che sia selezionato il database corretto e imposta la destinazione per il backup SQL. Per il nostro esempio, possiamo lasciare il Backup Digita come Completo .

6. In Backup Digita , seleziona la casella "Backup di sola copia .” Se stai eseguendo DPM o un'altra forma di backup del server, esegui il backup senza Solo copia flag causerà un'interruzione nella catena del registro di backup.

7. Vedrai una posizione in Destinazione per il percorso del nuovo backup. In genere rimuoverai questa voce quindi Aggiungi uno nuovo per selezionare una cartella a cui SQL ha accesso in lettura/scrittura. Aggiunta di una nuova Destinazione di backup mostra un percorso simile al seguente:

C:\Programmi\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\

Questo percorso C:\ è dove si trova il backup del database archiviato. Prendere nota di questa posizione per riferimento futuro, poiché questo è il percorso predefinito per i backup archiviati e dovrà disporre dell'accesso in lettura/scrittura appropriato per i servizi SQL.

Nota:gli utenti esperti potrebbero sentirsi a proprio agio nel lasciare la destinazione così com'è, a condizione che le autorizzazioni sulla cartella di output siano corrette.

8. Quindi, aggiungi un nome file alla fine di questo percorso come AdventureWorks2012-081418 .bak – Assicurati di terminare il nome del file con l'estensione .bak e seleziona OK

10. Dopo aver premuto OK su Seleziona destinazione backup prompt, sei pronto per eseguire il backup del database! Tutto quello che devi fare ora è premere OK e il database inizierà il backup. Vedrai una barra di avanzamento nell'angolo in basso a sinistra e, quando il backup è completo, apparirà una finestra che dice "Il backup del database 'AdventureWorks2012' è stato completato con successo. '

Passare al percorso di destinazione, annotato in precedenza, (in questo caso C:\Programmi\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\ ) vedrai il file appena creato (in questo caso AdventureWorks2012-081418.bak ) – Congratulazioni! Questo file è l'esportazione completa del database ed è pronto per essere importato nel nuovo server. Se hai più database, ripeti i passaggi precedenti per ogni database che stai spostando. Dopo aver copiato tutto il database, procedi al passaggio successivo del ripristino dei database sul server di destinazione.

Ripristino dei database sul server di destinazione

Ora dovresti avere un file .bak di tutti i tuoi database sul server di origine. Questi file di database devono essere trasferiti al server di destinazione. Esistono numerosi modi per spostare i dati sul server di destinazione; puoi usare USB, Robocopy o FTP. Dopo aver copiato un database, puoi archiviarlo sul tuo server di destinazione, per il nostro esempio, lo abbiamo archiviato sull'unità C in una cartella denominata C:\dbbackups .

1. Aprire Microsoft SQL Server Management Studio.

2. Accedi al server SQL utilizzando l'autenticazione di Windows o l'autenticazione SQL.

3. Espandere il server e fare clic con il pulsante destro del mouse su Database e seleziona Ripristina database.

4. Il Ripristina database la schermata è molto simile al Backup del database schermo.In Sorgente, seleziona Dispositivo invece di Database . Selezionando Dispositivo consente di ripristinare direttamente da un file. Dopo aver scelto Dispositivo , fai clic sull'icona Sfoglia […]

5. Seleziona Aggiungi , quindi vai alla cartella in cui si trovano i tuoi file .bak. (In questo caso, C:\dbbackups ).

6. Seleziona il primo database .bak che desideri ripristinare e fai clic su OK.

7. Fare clic su OK e ora sei pronto per importare il database. Prima di importare, diamo un'occhiata alla sezione Opzioni sul lato sinistro. In Opzioni, vedrai altre configurazioni per il ripristino dei database come Sovrascrivi il database esistente , Mantieni le impostazioni di replica e Limitare l'accesso al database ripristinato . In questo caso, non stiamo sostituendo un database esistente, quindi lascerò tutte queste opzioni deselezionate. Se desideri sostituire un database esistente (ad esempio, il database di cui è stato eseguito il backup contiene dati più recenti rispetto al server di destinazione o stai sostituendo un database di sviluppo o produzione), seleziona semplicemente Sovrascrivi il database esistente .

Nota:gli utenti esperti potrebbero sentirsi a proprio agio nel lasciare la destinazione così com'è, a condizione che le autorizzazioni sulla cartella di output siano corrette.

8. Facendo clic su OK avvia il processo di ripristino come indicato dalla finestra popup che dice 'Database 'AdventureWorks2012' ripristinato con successo.' Hai migrato il tuo database dal server di origine al server di destinazione.

Ripetere questo processo per ogni database di cui si esegue la migrazione. È quindi possibile aggiornare i riferimenti del percorso negli script/nell'applicazione in modo che puntino al nuovo server, verificare che la migrazione sia andata a buon fine.

Migrazione degli accessi a Microsoft SQL Server

Dopo aver importato i database, se non riesci a connetterti utilizzando il tuo login SQL, potresti ricevere l'errore "Accesso non riuscito per l'utente" esempio.' (Microsoft SQL Server, errore:18456). ' Perché il database è nel Accesso tradizionale e modello utente , gli accessi vengono archiviati separatamente nel server di origine e le credenziali non sono contenute nel database stesso. Da questo momento in poi, il server di destinazione può essere configurato per utilizzare il Contained Database User Model che mantiene gli accessi nel database e fuori dal server di origine. Fino ad allora, dovremo muoverci e interagire con gli utenti come parte del modello tradizionale. Continua di seguito per procedere con la migrazione dei tuoi utenti SQL.

Il backup e il ripristino dei database hanno spostato i tuoi accessi SQL in relazione ai database (i tuoi accessi sono ancora associati ai database corretti con le autorizzazioni corrette) ma gli accessi effettivi stessi non sono stati trasferiti al nuovo server. Puoi verificarlo aprendo SSMS (SQL Server Management Studio) sul server di destinazione e passando a Server> Sicurezza> Accesso S. Noterai che tutti gli accessi SQL personalizzati che hai creato sul server precedente non sono stati trasferiti qui, ma se vai su Server> Database> Il tuo database (AdventureWorks2012 in questo caso)> Sicurezza> Utenti vedrai il login corretto associato al database.

Se hai uno o due utenti SQL, puoi semplicemente eliminare l'associazione dell'utente al database in Server> Database> AdventureWorks2012> Sicurezza> Utenti , ricrea l'utente in Server> Sicurezza> Accessi e mapparlo nel database corretto.

Se hai molti accessi, dovrai seguire una procedura aggiuntiva descritta di seguito. Per migrare tutti gli utenti SQL, apri una Nuova query finestra sul server di origine ed eseguire il seguente script:

Script di accesso SQL

+

Questo script crea due stored procedure nel database di origine che aiutano con la migrazione di questi accessi. Apri una finestra Nuova query ed esegui quanto segue:
EXEC sp_help_revlogin

Questa query genera uno script che crea nuovi accessi per il server di destinazione. Copia l'output di questa query e salvalo per dopo. Dovrai eseguirlo sul server di destinazione.

Dopo aver copiato l'output di questa query, accedi a SSMS sul server di destinazione e apri una finestra Nuova query. Incolla il contenuto dello script precedente (dovrebbe avere una serie di righe simili a -- Login:BUILTIN\Administrators
CREATE LOGIN [BUILTIN\Administrators] DA WINDOWS CON DEFAULT_DATABASE =[master]) e premi Esegui.

Ora hai importato correttamente tutti gli accessi SQL e ora puoi verificare che i database siano stati migrati al server di destinazione utilizzando le tue credenziali precedenti.

Migrazione di viste e stored procedure

Le viste e le stored procedure verranno migrate con il database se si utilizzano i tipici backup su nastro SQL. Segui le istruzioni seguenti se devi migrare viste e stored procedure in modo indipendente.

  1. Apri Microsoft SQL Management Studio sul server di origine.
  2. Accedi al tuo server SQL.
  3. Espandi il server e anche i database .
  4. Fai clic con il pulsante destro del mouse sul nome del tuo database e vai su Attività> Genera script .
  5. Fai clic su Avanti .
  6. Cambieremo Script dell'intero database e di tutti gli oggetti del database a Seleziona oggetti database specifici e controlla solo Viste e Procedure memorizzate.
  7. Fai clic su Avanti, nota l'opzione Salva su file. Prendere nota del percorso del file elencato. Nel mio caso, è C:\Users\Administrator\Documents\script.sql - Il percorso delle viste salvate e delle stored procedure.
  8. Fai clic su Avanti>> Avanti>>Fine, e seleziona C:\Utenti\Amministratore\Documenti\script.sql e copialo sul server di destinazione.
  9. Vai al server di destinazione, apri SSMS e accedi al server SQL.
  10. Vai a File> Apri> File oppure utilizzare la scorciatoia da tastiera CTRL+O per aprire lo script SQL. Seleziona il file C:\Users\Administrator\Documents\script.sql per aprirlo.
  11. Vedrai lo script generato dal server di origine contenente tutte le viste e le procedure memorizzate. Fai clic su Esegui oppure usa la scorciatoia da tastiera F5 ed esegui lo script.
Nota:sfortunatamente, non esiste un modo integrato per farlo con la riga di comando. Esistono strumenti di terze parti e persino uno strumento di Microsoft chiamato mssql-scripter per script più avanzati.

Ora hai migrato le viste e le stored procedure sul tuo server di destinazione! Ripetere questo processo per ogni database di cui si esegue la migrazione. Una piccola guida fa molto nell'amministrazione del database. Ogni server SQL avrà le proprie configurazioni e gli ostacoli da affrontare, ma speriamo che questo articolo ti abbia fornito una solida base per la tua migrazione a Microsoft SQL Server.

Cerchi un servizio SQL ad alta disponibilità, indipendente dalla piattaforma, facilmente scalabile e in grado di crescere con la tua azienda? Dai un'occhiata al nostro prodotto SQL come servizio offerto su Liquid Web. Parla con uno dei nostri fantastici consulenti di hosting per trovare la soluzione perfetta per te!


No