Come copio il mio database SQL Azure in un'istanza locale di SQL Server?


12

Ho un database OLTP ospitato su un'istanza di SQL Azure. Voglio estrarre una copia del database dal cloud in modo da poter eseguire alcuni estratti pesanti e query in stile OLAP su di esso senza influire sul database di origine.

Come estrarre una copia del database in un'istanza locale di SQL Server?

Risposte:


9

Utilizzare la migrazione guidata di SQL Azure :

La Migrazione guidata di SQL Azure (SQLAzureMW) offre le opzioni per l'analisi, la generazione di script e la migrazione dei dati (tramite BCP) da:

  1. Da SQL Server a SQL Azure
  2. SQL Azure a SQL Server
  3. SQL Azure a SQL Azure

Non sembra funzionare con LocalDB, ho un errore che dice che "La crittografia non è supportata" nel passaggio quando si seleziona il database di destinazione. Lo strumento non è in grado di connettersi alla mia istanza di
localdb

@ red2nb - Non so nulla di LocalDB, ma forse poiché l'errore suggerisce che non è un problema con LocalDB, ma un problema con il database di destinazione che viene crittografato.
Nick Chammas,

4

Componi uno bcpscript che esporti i contenuti di tutte le tue tabelle in file locali.

Inizia scrivendo una query che genererà un bcpcomando per esportare ogni tabella nel tuo database di destinazione in un percorso sul tuo computer di destinazione:

SELECT 
      'bcp '
    + SCHEMA_NAME(schema_id) + '.' + name
    + ' out '
    + ' D:\local_backup_directory\' + SCHEMA_NAME(schema_id) + '.' + name + '.txt'
    + ' -c '
    + ' -S servername.database.windows.net '
    + ' -d database_name '
    + ' -U username '
    + ' -P password'
FROM sys.tables;

Eseguire questa query utilizzando bcpsul database SQL Azure dal computer in cui si desidera copiare e salvare i risultati in un cmdfile. Eseguire quel cmdfile per esportare ogni tabella in un file di testo.

C:\> REM ask bcp to save the results of the above query to a file
C:\> bcp "SELECT      'bcp '    + SCHEMA_NAME(schema_id) + '.' + name   + ' out '   + ' D:\backup_directory\' + SCHEMA_NAME(schema_id) + '.' + name + '.txt'    + ' -c '    + ' -S servername.database.windows.net '    + ' -d database_name '  + ' -U username '   + ' -P password' FROM sys.tables;" queryout output_path\bcp_script.cmd -c -S servername.database.windows.net -d database_name -U username -P password

C:\> REM execute the bcp commands saved to file
C:\> output_path\bcp_script.cmd

Questo è un approccio rapido e sporco e non è adatto per database di grandi dimensioni o schemi complessi.



2

Ho notato che c'è un nuovo strumento in questo elenco, è il backup del database SQL di Azure di Idera . È gratuito e di solito sono buoni strumenti, quindi vale la pena provare.

Un altro modo di esportare database (ma questa volta solo schema, nessun dato) in Azure è usare i pacchetti DAC (file .dacpac estratti da Management Studio o Visual Studio 2010). Funziona solo da SQL 2008 R2 SP1 +.

Puoi leggere i dettagli sulle applicazioni di livello dati qui:


0

è possibile utilizzare la procedura guidata di importazione dei dati SSMS. Ecco un buon post sul blog a riguardo, con foto. Il punto chiave è selezionare il fornitore di dati .NET per il database di origine. Ho avuto molti problemi nel tentativo di farlo funzionare con altri provider (e predefiniti - nativi).

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.