SQL Azure veritabanımı yerel bir SQL Server örneğine nasıl kopyalarım?


12

Bir SQL Azure örneğinde barındırılan bir OLTP veritabanı var. Kaynak veritabanını etkilemeden bazı ağır özleri ve OLAP stili sorguları çalıştırabilmem için veritabanının bir kopyasını buluttan aşağı çekmek istiyorum.

Veritabanının bir kopyasını yerel bir SQL Server örneğine nasıl çekebilirim?

Yanıtlar:


9

SQL Azure Geçiş Sihirbazı'nı kullanın :

SQL Azure Geçiş Sihirbazı (SQLAzureMW) aşağıdakileri analiz etme, komut dosyaları oluşturma ve verileri taşıma (BCP üzerinden) seçenekleri sunar:

  1. SQL Server'dan SQL Azure'a
  2. SQL Azure'dan SQL Server'a
  3. SQL Azure'dan SQL Azure'a

LocalDB ile çalışmıyor gibi görünüyor, hedef veritabanını seçtiğinizde adımda 'Şifreleme desteklenmiyor' diyerek bir hata var. Araç localdb örneğime bağlanamıyor
tobiak777

@ red2nb - LocalDB hakkında hiçbir şey bilmiyorum, ancak belki de hatanın önerdiği gibi LocalDB ile ilgili bir sorun değil, şifrelenen hedef veritabanıyla ilgili bir sorun.
Nick Chammas

4

bcpTüm tablolarınızın içeriğini yerel dosyalara aktaran bir komut dosyası oluşturun.

bcpHedef veritabanınızdaki her bir tabloyu hedef makinenizdeki bir yola vermek için komut verecek bir sorgu yazarak başlayın :

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;

Bu sorguyu bcp, kopyalamak istediğiniz makineden SQL Azure veritabanınıza karşı yürütün ve sonuçları bir cmddosyaya kaydedin . cmdHer tabloyu bir metin dosyasına vermek için bu dosyayı yürütün .

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

Bu hızlı ve kirli bir yaklaşımdır ve büyük veritabanları veya karmaşık şemalar için uygun değildir .



2

Bu listede yeni bir araç olduğunu fark ettim, Idera'nın Azure SQL Veritabanı Yedeklemesi . Ücretsizdir ve genellikle iyi araçlar yaparlar, bu yüzden denemeye değer.

Veritabanlarını Azure'a vermenin başka bir yolu (ancak bu sefer yalnızca şema, veri yok) DAC paketleri (Management Studio veya Visual Studio 2010'dan ayıklanan .dacpac dosyaları) kullanmaktır. Bu yalnızca SQL 2008 R2 SP1 + 'dan çalışır.

Veri Katmanı Uygulamaları ile ilgili ayrıntıları buradan okuyabilirsiniz:


0

SSMS Verilerini içe aktarma sihirbazını kullanabilirsiniz. İşte resimlerle ilgili iyi bir blog yazısı . Kilit noktası kaynak veritabanı için .NET veri sağlayıcı seçmektir. Diğer (ve varsayılan - yerel) sağlayıcıları ile çalışmak için çalışırken bir sürü sorun vardı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.