Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come faccio a copiare il database SQL Azure sul mio server di sviluppo locale?

Esistono diversi modi per farlo:

  1. Utilizzo di SSIS (SQL Server Integration Services) . Importa solo data nella tua tavola Le proprietà delle colonne, i vincoli, le chiavi, gli indici, le stored procedure, i trigger, le impostazioni di sicurezza, gli utenti, gli accessi e così via non vengono trasferiti. Tuttavia è un processo molto semplice e può essere eseguito semplicemente tramite la procedura guidata in SQL Server Management Studio.
  2. Utilizzo di una combinazione di Script di creazione SSIS e DB . In questo modo otterrai i dati e tutti i metadati mancanti che non vengono trasferiti da SSIS. Anche questo è molto semplice. Innanzitutto trasferire i dati tramite SSIS (vedere le istruzioni di seguito), quindi creare lo script DB Create dal database di SQL Azure e riprodurlo nuovamente nel database locale.
  3. Infine, puoi utilizzare il servizio di importazione/esportazione in SQL Azure . Questo trasferisce i dati (con un oggetto schema) ad Archiviazione BLOB di Azure come BACPAC. Sarà necessario un account di archiviazione di Azure e farlo nel portale Web di Azure. È semplice come premere un pulsante "Esporta" nel portale Web di Azure quando si seleziona il database che si desidera esportare. Lo svantaggio è che è solo una procedura manuale, non conosco un modo per automatizzarla tramite strumenti o script, almeno la prima parte che richiede un clic sulla pagina web.

Procedura manuale per il metodo n. 1 (utilizzando SSIS) è il seguente:

  • In Sql Server Management Studio (SSMS) crea un nuovo database vuoto sulla tua istanza SQL locale.
  • Scegli Importa dati dal menu contestuale (fai clic con il pulsante destro del mouse sul database -> Attività -> Importa dati...)
  • Digitare i parametri di connessione per l'origine (SQL Azure). Seleziona ".Net Framework Data Provider for SqlServer" come provider.
  • Scegli il database locale vuoto esistente come destinazione.
  • Segui la procedura guidata:sarai in grado di selezionare i dati delle tabelle che desideri copiare. Puoi scegliere di saltare uno qualsiasi dei tavoli che non ti servono. Per esempio. se conservi i registri dell'applicazione nel database, probabilmente non ne avrai bisogno nel backup.

Puoi automatizzarlo creando il pacchetto SSIS e rieseguendolo ogni volta che vuoi reimportare i dati. Tieni presente che puoi importare solo utilizzando SSIS in un DB pulito, non puoi eseguire aggiornamenti incrementali al database locale dopo averlo già eseguito una volta.

Metodo n. 2 (dati SSID più oggetti schema) è molto semplice. Per prima cosa segui i passaggi descritti sopra, quindi crea lo script di creazione DB (fai clic con il pulsante destro del mouse sul database in SSMS, scegli Genera script -> Crea database). Quindi riproduci di nuovo questo script sul tuo database locale.

Metodo n. 3 è descritto nel Blog qui:http://dacguy.wordpress.com/2012/01/24/sql-azure-importexport-service-has-hit-production/. È disponibile un clip video con il processo di trasferimento del contenuto del database nell'archiviazione BLOB di Azure come BACPAC. Successivamente puoi copiare il file localmente e importarlo nella tua istanza SQL. Il processo di importazione di BACPAC nell'applicazione di livello dati è descritto qui:http://msdn.microsoft.com/en-us/library/hh710052.aspx.