Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

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

Dafür gibt es mehrere Möglichkeiten:

  1. Verwenden von SSIS (SQL Server Integration Services) . Es importiert nur data in deinem Tisch. Spalteneigenschaften, Einschränkungen, Schlüssel, Indizes, gespeicherte Prozeduren, Trigger, Sicherheitseinstellungen, Benutzer, Anmeldungen usw. werden nicht übertragen. Es ist jedoch ein sehr einfacher Prozess und kann einfach durch den Assistenten in SQL Server Management Studio durchgeführt werden.
  2. Verwendung einer Kombination aus SSIS- und DB-Erstellungsskripten . Dadurch erhalten Sie Daten und alle fehlenden Metadaten, die nicht von SSIS übertragen werden. Dies ist auch sehr einfach. Übertragen Sie zuerst Daten mit SSIS (siehe Anweisungen unten), erstellen Sie dann ein DB Create-Skript aus der SQL Azure-Datenbank und spielen Sie es auf Ihrer lokalen Datenbank ab.
  3. Schließlich können Sie den Import/Export-Dienst in SQL Azure verwenden . Dadurch werden Daten (mit Schemaobjekten) als BACPAC an Azure Blob Storage übertragen. Sie benötigen ein Azure Storage-Konto und tun dies im Azure-Webportal. Es ist so einfach wie das Drücken einer „Exportieren“-Schaltfläche im Azure-Webportal, wenn Sie die Datenbank auswählen, die Sie exportieren möchten. Der Nachteil ist, dass es sich nur um ein manuelles Verfahren handelt. Ich kenne keine Möglichkeit, dies durch Tools oder Skripte zu automatisieren – zumindest für den ersten Teil, der einen Klick auf die Webseite erfordert.

Manuelles Verfahren für Methode Nr. 1 (unter Verwendung von SSIS) lautet wie folgt:

  • Erstellen Sie in Sql Server Management Studio (SSMS) eine neue leere Datenbank auf 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 (SQL Azure) ein. Wählen Sie als Anbieter ".Net Framework Data Provider for SqlServer" aus.
  • Wählen Sie eine vorhandene leere lokale Datenbank als Ziel.
  • Folgen Sie dem Assistenten – Sie können Tabellendaten auswählen, die Sie kopieren möchten. Sie können alle Tabellen überspringen, die Sie nicht benötigen. Z.B. Wenn Sie Anwendungsprotokolle in der Datenbank aufbewahren, benötigen Sie sie wahrscheinlich nicht in Ihrem Backup.

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 mit SSIS in eine saubere Datenbank importieren können, Sie können keine inkrementellen Aktualisierungen an Ihrer lokalen Datenbank vornehmen, wenn Sie dies bereits einmal getan haben.

Methode #2 (SSID-Daten plus Schemaobjekte) ist sehr einfach. Führen Sie zuerst 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 generieren -> 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 mit dem Prozess der Übertragung von DB-Inhalten in Azure Blob Storage als BACPAC. Danach können Sie die Datei lokal kopieren und in Ihre SQL-Instanz importieren. Der Vorgang zum Importieren von BACPAC in eine Data-Tier-Anwendung wird hier beschrieben:http://msdn.microsoft.com/en-us/library/hh710052.aspx.