Frage

Ich habe eine OLTP -Datenbank, die auf einer SQL Azure -Instanz gehostet wird. Ich möchte eine Kopie der Datenbank aus der Cloud abrufen, damit ich einige schwere Extrakte und Abfragen im OLAP-Stil dagegen ausführen kann, ohne die Quelldatenbank zu beeinflussen.

Wie ziehe ich eine Kopie der Datenbank auf eine lokale SQL -Serverinstanz ab?

War es hilfreich?

Lösung

Verwenden Sie das SQL Azure Migration Assistent:

Der SQL Azure Migration Assistent (SQLAZUREMW) bietet Ihnen die Optionen zur Analyse, Generationen von Skripten und migriert Daten (über BCP) aus:

  1. SQL Server zu SQL Azure
  2. SQL Azure zu SQL Server
  3. SQL Azure zu SQL Azure

Andere Tipps

Komponieren a bcp Skript, das den Inhalt aller Tabellen in lokale Dateien exportiert.

Schreiben Sie zunächst eine Abfrage, die a ausgibt bcp Befehl zum Exportieren jeder Tabelle in Ihre Zieldatenbank in einen Pfad auf Ihrem Zielgerät:

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;

Führen Sie diese Abfrage mit bcp gegen Ihre SQL -Azure -Datenbank aus der Maschine, in die Sie die Ergebnisse kopieren und auf a speichern möchten cmd Datei. Führen Sie das aus cmd Datei, um jede Tabelle in eine Textdatei zu exportieren.

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

Dies ist ein schneller und schmutziger Ansatz und ist und ist nicht geeignet Für große Datenbanken oder komplexe Schemata.

Das rote Tor hat ein treffend benanntes Namen SQL Azure Backup -Tool. Es ist kostenlos, aber Red Gate hat die Unterstützung dafür eingestellt.

Mir ist aufgefallen, dass es in dieser Liste ein neues Tool gibt, es ist Ideras Azure SQL Database Backup. Es ist kostenlos und sie machen normalerweise gute Werkzeuge, also ist es einen Versuch wert.

Eine andere Möglichkeit, Datenbanken (diesmal nur Schema, keine Daten) in Azure zu exportieren, besteht darin, DAC -Pakete (.DACPAC -Dateien aus Management Studio oder Visual Studio 2010) zu verwenden. Dies funktioniert nur aus SQL 2008 R2 SP1+.

Hier finden Sie Details zu den Data-Tier-Anwendungen hier:

Sie können den SSMS Data Import -Assistenten verwenden. Hier ist eine gute Blogeintrag darüber, mit Bildern. Das Kernpunkt ist, den .NET -Datenanbieter für die Quelldatenbank auszuwählen. Ich hatte viele Probleme, es mit anderen (und Standard - einheimischen) Anbietern zu machen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top