Bagaimana cara menyalin database SQL Azure saya ke turunan SQL Server lokal?

12

Saya memiliki database OLTP yang dihosting pada contoh SQL Azure. Saya ingin menarik salinan basis data dari cloud sehingga saya dapat menjalankan beberapa ekstrak dan pertanyaan gaya OLAP terhadapnya tanpa memengaruhi basis data sumber.

Bagaimana cara menarik salinan database ke contoh SQL Server lokal?

Nick Chammas
sumber

Jawaban:

9

Gunakan Wisaya Migrasi SQL Azure :

SQL Azure Migration Wizard (SQLAzureMW) memberi Anda opsi untuk menganalisis, membuat skrip, dan memigrasikan data (melalui BCP) dari:

  1. SQL Server ke SQL Azure
  2. SQL Azure ke SQL Server
  3. SQL Azure ke SQL Azure
Nick Chammas
sumber
Tampaknya tidak berfungsi dengan LocalDB, saya memiliki kesalahan mengatakan bahwa 'Enkripsi tidak didukung' pada langkah ketika Anda memilih basis data tujuan. Alat ini tidak dapat terhubung ke instance localdb saya
tobiak777
@ red2nb - Saya tidak tahu apa-apa tentang LocalDB, tapi mungkin karena kesalahan menunjukkan itu bukan masalah dengan LocalDB, tetapi masalah dengan database tujuan yang dienkripsi.
Nick Chammas
4

Tulis bcpskrip yang mengekspor konten semua tabel Anda ke file lokal.

Mulailah dengan menulis kueri yang akan menampilkan bcpperintah untuk mengekspor setiap tabel di basis data target Anda ke jalur di mesin tujuan Anda:

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;

Jalankan permintaan ini menggunakan bcpterhadap database SQL Azure Anda dari mesin yang ingin Anda salin dan simpan hasilnya ke cmdfile. Jalankan cmdfile itu untuk mengekspor setiap tabel ke file teks.

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

Ini adalah pendekatan cepat dan kotor, dan tidak cocok untuk database besar atau skema rumit.

Nick Chammas
sumber
2

Saya perhatikan ada alat baru dalam daftar ini, itu Backup Database Azure SQL milik Idera . Gratis dan mereka biasanya membuat alat yang bagus, jadi patut dicoba.

Cara lain untuk mengekspor basis data (tapi kali ini hanya skema, tidak ada data) ke Azure adalah dengan menggunakan paket DAC (file .dacpac diekstrak dari Management Studio atau Visual Studio 2010). Ini hanya berfungsi dari SQL 2008 R2 SP1 +.

Anda dapat membaca detail tentang Aplikasi Data-tier di sini:

Marian
sumber
0

Anda dapat menggunakan panduan impor data SSMS. Ini adalah posting blog yang bagus tentang itu, dengan gambar. The titik kunci adalah untuk memilih penyedia data NET untuk database sumber. Saya punya banyak masalah saat mencoba membuatnya bekerja dengan penyedia lain (dan bawaan - asli).

pengguna16741
sumber