it-swarm.com.de

Wie kopiere ich die SQL Azure-Datenbank auf meinen lokalen Entwicklungsserver?

Weiß jemand, wie ich eine SQL Azure-Datenbank auf meinen Entwicklungscomputer kopieren kann? Ich würde gerne aufhören zu zahlen, um eine Entwicklungsdatenbank in der Cloud zu haben, aber dies ist der beste Weg, um Produktionsdaten zu erhalten. Ich kopiere meine Produktionsdatenbank in eine neue Entwicklungsdatenbank, aber ich möchte diese Datenbank lokal haben. 

Irgendwelche Vorschläge? 

131
BZink

Dafür gibt es mehrere Möglichkeiten:

  1. Verwenden von SSIS (SQL Server Integration Services). Es importiert nur data in Ihre Tabelle. Spalteneigenschaften, Abhängigkeiten, Schlüssel, Indizes, gespeicherte Prozeduren, Trigger, Sicherheitseinstellungen, Benutzer, Anmeldungen usw. werden nicht übertragen. Es ist jedoch ein sehr einfacher Prozess, der einfach durch den Assistenten in SQL Server Management Studio ausgeführt werden kann. 
  2. Verwendung einer Kombination aus SSIS- und DB-Erstellungsskripts. Dadurch erhalten Sie Daten und alle fehlenden Metadaten, die nicht von SSIS übertragen werden. Das ist auch sehr einfach. Übertragen Sie zunächst Daten mit SSIS (siehe Anweisungen unten), erstellen Sie dann ein DB Create-Skript aus der SQL Azure-Datenbank und spielen Sie es in Ihrer lokalen Datenbank erneut ab. 
  3. Schließlich können Sie den Import/Export-Dienst in SQL Azure verwenden. Dadurch werden Daten (mit einem Schemaobjekt) als BACPAC an Azure Blob Storage übertragen. Sie benötigen ein Azure-Speicherkonto und tun dies im Azure-Webportal. Drücken Sie im Azure-Webportal auf die Schaltfläche "Exportieren", wenn Sie die Datenbank auswählen, die Sie exportieren möchten. Der Nachteil ist, dass es nur ein manuelles Verfahren ist. Ich kenne keinen Weg, dies durch Tools oder Skripts zu automatisieren - zumindest der erste Teil, der einen Klick auf die Webseite erfordert.

Die manuelle Prozedur für Methode # 1 (unter Verwendung von SSIS) lautet wie folgt:

  • Erstellen Sie in SQL Server Management Studio (SSMS) eine neue leere Datenbank in Ihrer lokalen SQL-Instanz.
  • Wählen Sie Daten importieren aus dem Kontextmenü (Rechtsklick auf die Datenbank -> Aufgaben -> Daten importieren ...).
  • Geben Sie die Verbindungsparameter für die Quelle ein (SQL Azure). Wählen Sie als Provider ".Net Framework Data Provider für SqlServer" aus.
  • Vorhandene leere lokale Datenbank als Ziel auswählen.
  • Folgen Sie dem Assistenten - Sie können Tabellendaten auswählen, die Sie kopieren möchten. Sie können wählen, ob Sie die nicht benötigten Tabellen überspringen möchten. Z.B. Wenn Sie Anwendungsprotokolle in der Datenbank speichern, benötigen Sie sie wahrscheinlich nicht für Ihre Sicherung. 

Sie können es automatisieren, indem Sie ein SSIS-Paket erstellen und es jederzeit erneut ausführen, wenn Sie die Daten erneut importieren möchten. Beachten Sie, dass Sie nur mithilfe von SSIS in eine saubere Datenbank importieren können. Sie können keine inkrementellen Aktualisierungen für Ihre lokale Datenbank durchführen, wenn Sie dies einmal ausgeführt haben. 

Methode # 2 (SSID-Daten plus Schemaobjekte) ist sehr einfach. Gehen Sie zunächst die oben beschriebenen Schritte durch, und erstellen Sie dann ein DB-Erstellungsskript (klicken Sie mit der rechten Maustaste auf die Datenbank in SSMS, wählen Sie "Skripts erstellen" -> "Datenbank erstellen"). Spielen Sie dieses Skript dann erneut in Ihrer lokalen Datenbank ab.

Methode # 3 wird im Blog hier beschrieben: http://dacguy.wordpress.com/2012/01/24/sql-Azure-importexport-service-has-hit-production/ . Es gibt einen Videoclip, in dem der DB-Inhalt als BACPAC in den Azure Blob-Speicher übertragen wird. Danach können Sie die Datei lokal kopieren und in Ihre SQL-Instanz importieren. Der Import von BACPAC in die Data-Tier-Anwendung wird hier beschrieben: http://msdn.Microsoft.com/en-us/library/hh710052.aspx .

119
seva titov

Ich wollte nur eine vereinfachte Version von Dumbledads Antwort hinzufügen, da es die richtige ist.

  1. Exportieren Sie die Azure SQL-Datenbank in eine BACPAC-Datei im Blob-Speicher.
  2. Klicken Sie in SQL Management Studio mit der rechten Maustaste auf Ihre Datenbank und klicken Sie auf "Datenebenenanwendung importieren".
  3. Sie werden aufgefordert, die Informationen einzugeben, um zur BACPAC-Datei in Ihrem Azure-Blob-Speicher zu gelangen.
  4. Als nächstes ein paar Mal schlagen und ... Fertig!
29
Josh Mouch

Ich denke, es ist jetzt viel einfacher.

  1. Starten Sie SQL Management Studio 
  2. Klicken Sie mit der rechten Maustaste auf "Datenbanken" und wählen Sie "Datenschicht-Anwendung importieren ...".
  3. Der Assistent führt Sie durch den Verbindungsaufbau zu Ihrem Azure-Konto, das Erstellen einer BACPAC-Datei und das Erstellen Ihrer Datenbank.

Zusätzlich verwende ich SQL Backup und FTP ( https://sqlbackupandftp.com/ ), um tägliche Sicherungen auf einem sicheren FTP-Server durchzuführen. Ich ziehe einfach eine aktuelle BACPAC-Datei von dort und importiere sie im selben Dialog, wodurch eine lokale Datenbank schneller und einfacher erstellt werden kann.

20
ThisGuy

In SQL Server 2016 Management Studio wurde der Vorgang zum Abrufen einer Azure-Datenbank auf Ihrem lokalen Computer optimiert.

Klicken Sie mit der rechten Maustaste auf die Datenbank, die Sie importieren möchten, klicken Sie auf Aufgaben> Datenebenenanwendung exportieren und exportieren Sie Ihre Datenbank in eine lokale .dacpac-Datei.

In Ihrer lokalen Ziel-SQL-Server-Instanz können Sie mit der rechten Maustaste auf Datenbanken> Datenschichtanwendung importieren klicken. Sobald sie lokal ist, können Sie die Datenbank sichern und wiederherstellen.

20
Adam Skinner

Kopieren Sie die Azure-Datenbankdaten in die lokale Datenbank: Jetzt können Sie das SQL Server Management Studio wie folgt verwenden:

  • Stellen Sie eine Verbindung zur SQL Azure-Datenbank her.
  • Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf die Datenbank.
  • Wählen Sie die Option "Aufgaben"/"Datenbank in SQL Azure bereitstellen".
  • Verbinden Sie im Schritt "Bereitstellungseinstellungen" den lokalen SQL Server und erstellen Sie eine neue Datenbank.

enter image description here

"Weiter"/"Weiter"/"Fertig stellen"

14
Atom

Sie können auch SQL Azure Data Sync im Windows Azure Management Portal auschecken. Sie können damit eine gesamte Datenbank abrufen und wiederherstellen, einschließlich des Schemas und der Daten zwischen SQL Azure und SQL Server.

8
Voclare

Es ist ziemlich einfach. Dies funktionierte für mich ... in Bezug auf das Aufrufen einer Azure SQL-Datenbank auf Ihrem lokalen Computer ...:

  1. Öffnen Sie Ihr SQL Management Studio und stellen Sie eine Verbindung zu Ihrem Azure SQL Server her.
  2. Wählen Sie die Datenbank aus, die Sie auf Ihren lokalen Rechner laden möchten, und klicken Sie mit der rechten Maustaste. Wählen Sie "Generate Scripts". Befolgen Sie die Anweisungen ...

ABER, seien Sie vorsichtig, wenn Sie AUCH die DATA sowie die Scripts wünschen, vergewissern Sie sich vor der Generierung, dass Sie die erweiterten Optionen überprüfen. Blättern Sie zu "Datentypen für Script" und stellen Sie sicher, dass Sie " Schema und Daten "... oder was auch immer für Sie geeignet ist.

Sie erhalten eine Nice-SQL-Skriptdatei, die auf Ihrem lokalen Computer ausgeführt werden kann. Sie erstellt die Datenbank und füllt sie mit allen Daten.

Bedenken Sie, dass ich in meinem Fall keine FK oder andere Einschränkungen habe ... außerdem gab es nicht viele Daten.

Ich empfehle das generell nicht als Backup-Mechanismus ...

4

msdeploy.exe verwenden

Vorsichtsmaßnahme: msdeploy.exe kann die Zieldatenbank nicht selbst erstellen. Sie müssen sie daher zuerst manuell erstellen.

  1. Kopieren Sie die Verbindungszeichenfolge auf der Seite mit den Datenbankeigenschaften. Stellen Sie es so ein, dass es ein korrektes Passwort enthält .database properties page
  2. Rufen Sie die Verbindungszeichenfolge für die Ziel-DB ab.
  3. Führen Sie msdeploy.exe so aus:

    "c:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -dest:dbDacFx="destination_DB_connection_string",dropDestinationDatabase=true -source:dbDacFx="Azure_DB_connection_string",includeData=true -verbose
    

SqlPackage.exe verwenden

  1. Exportieren Sie die Azure-Datenbank in ein bacpac-Paket.

    "c:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\SqlPackage.exe" /a:Export /ssn:"Azure_db_server" /sdn:"Azure_db_name" /su:"user_name" /sp:"password" /tf:"file.bacpac"
    
  2. Importieren Sie das Paket in eine lokale Datenbank.

    "c:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\SqlPackage.exe" /a:Import /SourceFile:"file.bacpac" /TargetServerName:".\SQLEXPRESS" /TargetDatabaseName:CopyOfAzureDb
    
3
Gebb

Bitte versuchen Sie Folgendes: http://mooneyblog.mmdbsolutions.com/index.php/2011/01/11/simple-database-backups-with-sql-Azure/ .

Eine andere Alternative wäre SQL Azure Data Sync .

Es gibt einen weiteren Blogeintrag, auf den ich vor ein paar Tagen gestoßen bin, ihn aber jetzt nicht finden konnte. Ich werde diesen Beitrag aktualisieren, sobald ich ihn gefunden habe.

3
Gaurav Mantri

Sie können es mit dem Tool "Assistent für die Migration von SQL-Datenbanken" versuchen. Dieses Tool bietet die Option zum Importieren und Exportieren von Daten aus Azure SQL.

Bitte überprüfen Sie weitere Details hier.

https://sqlazuremw.codeplex.com/

Ich konnte den SSIS-Import Export nicht zum Laufen bringen, da ich den Fehler "Fehler beim Einfügen in die schreibgeschützte Spalte" id "" bekam. Ich könnte auch nicht mit/- http://sqlazuremw.codeplex.com/ arbeiten, und die obigen Links zu SQL Azure Data Sync haben bei mir nicht funktioniert.

Aber ich habe einen ausgezeichneten Blog-Post über BACPAC-Dateien gefunden: http://dacguy.wordpress.com/2012/01/24/sql-Azure-importexport-service-has-hit-production/

In das Video im Beitrag Der Autor des Blogposts durchläuft sechs Schritte:

  1. Erstellen oder wechseln Sie zu einem Speicherkonto im Azure Management Portal ..__ Sie benötigen die Blob-URL und den primären Zugriffsschlüssel für das Speicherkonto

  2. Der Blogbeitrag empfiehlt, einen neuen Container für die bacpac-Datei anzulegen, und Schlägt die Verwendung des Azure Storage Explorer für diesen Zweck vor. (NB . Sie benötigen die Blob-URL und den primären Zugriffsschlüssel des Speicherkontos , Um sie dem Azure Storage Explorer hinzuzufügen.) 

  3. Wählen Sie im Azure-Verwaltungsportal die Datenbank aus, die Sie exportieren möchten, und klicken Sie im Abschnitt "Importieren und Exportieren" der Multifunktionsleiste .__ auf "Exportieren". 

  4. Der resultierende Dialog erfordert Ihren Benutzernamen und Ihr Kennwort für die Datenbank , Die Blob-URL und den Zugriffsschlüssel. Vergessen Sie nicht, den Container in die Blob-URL einzuschließen und einen Dateinamen anzugeben (z. B. https://testazurestorage.blob.core.windows.net/dbbackups/mytable.bacpac ).

  5. Nachdem Sie auf Fertig stellen geklickt haben, wird die Datenbank in die BACPAC-Datei (_) exportiert. Dies kann eine Weile dauern. Wenn Sie im Azure Storage Explorer einchecken, wird u. U. sofort eine Null-Byte-Datei angezeigt. Dies ist der Import-/Exportdienst von .__, der überprüft, ob er Schreibzugriff auf den Blob-Store hat. 

  6. Anschließend können Sie mit dem Azure Storage Explorer die BACPAC-Datei herunterladen und mit der rechten Maustaste in SQL Server Management Studio Auf den Datenbankordner des lokalen Servers klicken und ImportData Tier-Anwendung auswählen, die gestartet wird Der Assistent liest die BACPAC-Datei ein, um die Kopie Ihrer Azure-Datenbank zu erstellen. Der Assistent Kann auch eine direkte Verbindung zum Blob-Store herstellen, um die BACPAC -Datei zu erhalten, wenn Sie sie nicht zuerst lokal kopieren möchten.

Der letzte Schritt ist möglicherweise nur in der SQL Server 2012 Edition von SQL Server Management Studio verfügbar (dies ist die von mir ausgeführte Version). Ich habe keine früheren auf dieser Maschine zu überprüfen. Im Blogbeitrag verwendet der Autor das Befehlszeilentool DacImportExportCli.exe für den Import, der meiner Meinung nach unter http://sqldacexamples.codeplex.com/releases verfügbar ist.

2
dumbledad

Die akzeptierte Antwort ist veraltet. Ich habe eine bessere Antwort gefunden: Verwenden Sie Import Data-Tier Application

Ausführlichere Informationen finden Sie in diesem Artikel: Wiederherstellen der Azure SQL-Datenbank auf einem lokalen Server

2
Weimin Ye

In Bezug auf das Thema "Ich konnte den SSIS-Import/-Export nicht zum Laufen bringen, da der Fehler" Fehler beim Einfügen in die schreibgeschützte Spalte "id" '. .__ angezeigt wurde. Dies kann durch Angabe des Mapping-Bildschirms umgangen werden möchte, dass Identitätselemente eingefügt werden können.

Danach hat alles gut funktioniert, indem der SQL-Import/Export-Assistent zum Kopieren von Azure in die lokale Datenbank verwendet wurde.

Ich hatte nur SQL-Import/Export Wizard, der mit SQL Server 2008 R2 (gut funktioniert) und Visual Studio 2012 Express zum Erstellen einer lokalen Datenbank geliefert wurde.

2
rsh

Laden Sie Optillect SQL Azure Backup herunter - es gibt eine 15-tägige Testversion, also reicht es aus, um Ihre Datenbank zu verschieben :)

1
Optillect Team

Ich verwende immer die Import/Export-Funktion, die scheinbar die einfachste von allen ist.

Schritt 1:

Laden Sie die Sicherung wie folgt von der Azure-Instanz ab. Wählen Sie die Datenbank aus. → Klicken Sie mit der rechten Maustaste → Aufgaben → Datenebenenanwendung exportieren.

Schritt 2: Geben Sie der Sicherungsdatei einen bestimmten Namen und speichern Sie sie an Ihrem gewünschten Ort

Schritt 3: Sie haben eine Sicherungskopie der Datenbank von der SQL-Instanz auf Ihre lokale Datenbank erstellt. Lass es auf dem lokalen wiederherstellen. Kopieren Sie die gesicherte Datenbank auf Ihr Laufwerk C: Öffnen Sie nun die PowerShell mit Administratorrechten und navigieren Sie zum Laufwerk C:

Schritt 4: Hier können Sie das Powershell-Skript herunterladen, um die Datei master keyRemoveMasterKey.ps1 zu entfernen.

Schritt 5: Führen Sie das Skript wie folgt aus .\RemoveMasterKey.ps1 -bacpacPath "C:\identity.bacpac"

Jetzt können Sie es in Ihrer lokalen Umgebung auf MSSQL 2017 wiederherstellen.

Schritt 6: Stellen Sie eine Verbindung zu Ihrem lokalen Server her und klicken Sie auf Datenbanken → Import-Data-Tier-Application

Schritt 7: Geben Sie der Datenbank einen Namen zum Wiederherstellen. 

Jetzt sehen Sie alles in Grün!

Lesen Sie mein blog mit Diagrammen.

1
Sajeetharan

Sie können die neuen Azure Mobile Services verwenden, um einen nächtlichen Backup-Export von SQL Azure in eine .bacpac-Datei durchzuführen, die in Azure Storage gehostet wird. Diese Lösung ist 100% ig Cloud-basiert, erfordert kein Drittanbieter-Tool und erfordert keine lokal gehostete SQL Server-Instanz, um etwas herunterzuladen, zu kopieren oder zu sichern. 

Es gibt ungefähr 8 verschiedene Schritte, die jedoch alle einfach sind: http://geekswithblogs.net/BenBarreth/archive/2013/04/15/wie- your-sql-Azure.aspx

1
Ben Barreth

Verwenden Sie den Import/Export-Dienst in SQL Azure, um eine BACPAC-Datei zu erstellen.

Dann werfen Sie einen Blick auf diese Methode in einem anderen Artikel von Stack Overflow.

Azure SQL Database Bacpac Local Restore

0
Jeff Bailey

Der Trick für mich bestand darin, PKs/FKs/Einschränkungen in leerer DB zu replizieren und dann Einschränkungen beim Importieren von Daten zu deaktivieren (siehe https://stackoverflow.com/a/161410 ).

Etwas präziser:

  1. Erstellen Sie manuell eine leere Ziel-Datenbank.
  2. Klicken Sie mit der rechten Maustaste auf Quell-DB> Aufgaben> Generieren von Skripts.
  3. Führen Sie die Skriptdatei in einer leeren Ziel-DB aus (jetzt hat der DB korrekte PKs/FKs/Einschränkungen, aber keine Daten).
  4. Deaktivieren Sie alle Einschränkungen.
  5. Daten importieren (Klicken Sie mit der rechten Maustaste auf die Ziel-Datenbank> Aufgaben> Daten importieren).
  6. Aktivieren Sie die Einschränkungen erneut.

Hoffe das hilft!

0

Wenn jemand Probleme hat, einen Bacpac einer Datenbank zu importieren, der Azure SQL Sync verwendet, hat Sandrino Di Mattia eine große einfache Anwendung entwickelt, um dieses Problem zu lösen.

  1. Exportieren Sie einen Bacpac Ihrer Datenbank
  2. Herunterladen von Mattia binär
  3. Mit dieser Konsolen-App reparieren Sie den heruntergeladenen Bacpac
  4. Starten Sie SSMS
  5. Klicken Sie mit der rechten Maustaste auf "Datenbanken" und wählen Sie "Import Data-Tier Application" aus.
  6. Wähle den reparierten Bacpac aus.
0
Géza

Wenn jemand eine kostenlose und effektive Option zum Sichern der Datenbank auf Local möchte (und nichts dagegen hat, die Datenbank manuell zu sichern), verwenden Sie die in der neuesten Version von Microsoft Visual Studio 2015 Community Edition (kostenlos) oder Professional/Premium/Ultimate integrierte Schema- und Datenvergleichsfunktion Auflage. Es wirkt wie ein Zauber!

Ich habe ein BizPark-Konto bei Azure und es gibt keine Möglichkeit, die Datenbank direkt zu sichern, ohne zu bezahlen. Ich habe diese Option in VS Works gefunden. 

Die Antwort stammt von https://stackoverflow.com/a/685073/6796187

0
Crennotech

Jetzt können Sie das SQL Server Management Studio dazu verwenden.

  • Stellen Sie eine Verbindung zur SQL Azure-Datenbank her.
  • Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf die Datenbank.
  • Wählen Sie die Option "Aufgaben"/"Datenbank in SQL Azure bereitstellen".
  • Wählen Sie im Schritt "Bereitstellungseinstellungen" Ihre lokale Datenbankverbindung aus.
  • "Weiter"/"Weiter"/"Fertig stellen" ...
0
ferhrosa

Hallo, ich verwende das SQLAzureMW-Tool für die Migration und Verwaltung von SQLAzure DB. Sehr nützlich. Es wurde von Codeplex heruntergeladen, derzeit ist es jedoch nicht verfügbar, der Codeplex wird heruntergefahren. Das gleiche Anwendungstool ist jetzt in GttHub verfügbar. Dieser Link erläutert die Verwendung dieses Tools und die Anwendung zum Herunterladen.

https://github.com/twright-msft/Azure-content/blob/master/articles/sql-database/sql-database-migration-wizard.md

0
Raja Subbiah

In SQL Server Management Studio

Klicken Sie mit der rechten Maustaste auf die zu importierende Datenbank, klicken Sie auf Aufgaben> Datenebenenanwendung exportieren und exportieren Sie Ihre Datenbank in eine lokale DACPAC-Datei.

In Ihrer lokalen SQL Server-Zielinstanz können Sie mit der rechten Maustaste auf Datenbanken> Datenebenenanwendung importieren klicken, und wenn diese lokal ist, können Sie beispielsweise die Datenbank sichern und wiederherstellen.

0
Ali Sufyan