Cross-Abonnement Kopieren von Datenbanken zur Windows Azure SQL-Datenbank
Wir sind über split-unser Test-und Produktions-Instanzen unter Windows Azure in zwei separaten Abonnements. Derzeit haben wir 3 Windows Azure SQL-Datenbank-Instanzen, die sich innerhalb des gleichen Abonnements:
- Produktion
- Reporting
- Testen
Um vollständig zu isolieren Produktion sind wir aufteilen in:
- Produktion Abo
- Produktion
- Reporting
- Test-Abonnement
- Testen
Im moment verwenden wir die CREATE DATABASE X AS COPY OF [ServerName].Y
Befehl zum kopieren von Datenbanken von der Produktion zu testen, bevor wir verschleiern die live-Daten. Dieser Vorgang kann durchgeführt werden, solange die Datenbanken sind geo-befindet sich in der gleichen data-Center - und wir haben eine shared login über die Instanzen, die die Datenbank erstellt, in den ersten Platz (Wie von diesem Artikel).
Aber der Artikel gibt nicht an, ob die Quell-und Ziel-Instanz müssen, gehören zu den gleichen Abonnement -. Sind wir in der Lage, kopieren Sie die Datenbank zwischen den Produktions-Abo und Test-Abo (Und Vice verca) angenommen, wir verwenden eine einheitliche login?
- für die Zeit, die Sie ausgegeben, um zu schreiben, diese Frage, die Sie getestet haben würde. Und ich kenne die Antwort nicht, aber ich weiß sicher, dass Sie können verschieben Sie eine Azure-SQL-Datenbank-Server zwischen Abonnements. Das könnte auch das Schlimmste Szenario - Bewegen Sie den
Server
von Sub-1 Sub-2 kopieren Sie die Datenbank, dann Bewegen Sie denServer
wieder zu Sub-1. Verschieben von Datenbanken zwischen Server-Abonnements sollten nicht aufrufen, keine Ausfallzeiten, so ist dies nur ein logischer Vorgang. Aber ich bin mir nicht sicher, ob es ein limit, wie viele Male pro Abrechnungszeitraum können Sie den server um. - "für die Zeit, die Sie ausgegeben, um zu schreiben, diese Frage, die Sie getestet haben würde." Tut mir Leid, ich verstehe nicht, diese Antwort; wenn Sie angegeben sind, könnten wir testen, ob es möglich ist, wir habe nur noch ein Abo, das ist etwas, was ich möchte Klarstellung, bevor wir split mit den Abonnements. In Bezug auf das bewegen der server; es scheint übertrieben zu bewegen, eine ganze Instanz zwischen Abonnements. Vor allem wenn das Ziel ist, trennen Sie die Umgebungen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, Sie haben bereits eine Lösung, aber für jemand der Landung hier können Sie die Azure PowerShell-API zum Erstellen eines neuen server in der Quell-Abonnement erstellen Sie eine Kopie und wechseln Sie über den neuen server der Ziel-Abonnement
Beispiel-code verfügbar ist, auf technet
Der code ist selbsterklärend, jedoch im Interesse, ALSO best practices,
Schlüssel Teile des Codes sind
Erstellen Sie einen neuen server:
Erstellen Sie eine Datenbank kopieren:
Transfer der server
Für jemand der Landung hier, es hat möglich erscheinen zu verwenden
CREATE DATABASE newDB AS COPY OF [server].[olddb] ( OPTION [, OPTION ...] )
auch wenn sich die Server in verschiedenen Abonnements.Sehen Sie mehr an Erstellen einer Datenbank (Azure SQL-Datenbank) - MSDN
Beispiel aus MS Docs:
In meinem setup habe ich den admin-account und Passwort (login) auf beiden Servern identisch, dass wahrscheinlich hilft.
Die Operation wird fehlschlagen, wenn Sie nicht über admin-Berechtigungen auf dem ursprünglichen server.
Habe ich gefunden, durch die Prüfung, ich bin nicht in der Lage, um die Edition zu wechseln, vom Standard-bis Premium-trotz anderem die 'Edition' - option - ich bin nicht sicher, warum das so ist.
Können Sie einfach ein backup (Export) auf blob-Speicher, und Importieren Sie dann in das neue Abonnement.
http://msdn.microsoft.com/en-us/library/f6899710-634e-425a-969d-8db1267e9471
Update:
Wenn Sie können, verwenden Sie SSMS, diese Antwort ist richtig. Ich möchte nur hinzufügen, einige details.
CREATE DATABASE AS COPY OF
funktioniert nicht cross-AbonnementHabe ich erstellt Kopien von Datenbanken auf Azure-Abonnements erfolgreich.
Hier sind die Schritte -
Auf dem Ziel-Azure-Abonnement erstellen Sie eine Datenbank-server (wenn Sie nicht bereits eine erstellt haben), und auf das anlegen einer neuen DB (jeder name, egal), aber mit dem gleichen Kennwort wie der Quell-Datenbank auf dem Quell-Azure-Abonnement. Für mich es hat nicht funktioniert mit unterschiedlichen Kennwörtern, so dass ich nur voran ging mit den gleichen, aber ich bin sicher, es gibt einen Weg, um es Arbeit mit unterschiedlichen Passwörtern sowie.
Führen Sie diese auf die neu erstellte Datenbank in der Ziel-Azure -
DATENBANK ERSTELLEN NEWDBNAME
ALS KOPIE [Quelle Azure Server Name hier].[Quelle DB]
Lassen Azure Umgang mit dem neuen DB-Preisniveau (Basic, Standard, etc), da kann man sofort ändern Sie es vom portal, nachdem die DB erstellt wird. In meinem Fall ist der Ziel-DB wurde mit dem gleichen Preisniveau wie die Quell-DB.
Auch die Namen der server in azure sind in der Regel - NAME.database.windows.net. Also in deinem source name oben, nur NAMEN.
Nun auf Ihre Ziel-Azure-Abonnement haben Sie 2 Datenbanken auf dem neuen DB-server. Eine, die in Schritt 1 erstellt wurde und die anderen in Schritt 2, das ist das eigentliche kopieren. Sie können weiter gehen und sicher löschen Sie die eine, die Sie nicht brauchen.
Wenn Sie kopieren möchten anderen Quell-DBs zum gleichen Ziel-server erstellt, der in 1 oben, führen Sie einfach den gleichen Befehl erneut aus.
Können Sie dies tun, in SSMS auf dem Ziel-server unter Verwendung
kopieren sourcesrv.database.windows.net die ist in ein anderes Abonnement.
Jedoch müssen Sie zunächst überprüfen Sie die Verbindung SSMS auf dem Quellserver zu, oder Sie bekommen eine völlig verwirrende Fehlermeldung verbirgt das eigentliche problem.
Dem Quell-server kann man Sie sich regelmäßig verbinden, aber nicht von der IP-Adresse Sie gerade auf. In diesem Fall müssen Sie die IP auf dem server die firewall-Regeln. Dies ist leicht getan mit dem dialog, der erscheint, wenn Sie versuchen, eine Verbindung von SSMS:
Lassen Sie die Standard-radiobutton aktiviert ("meine client-IP") und drücken Sie OK.
Lassen Sie diesen überprüfen und es schlägt fehl, um Sie zu authentifizieren, anstatt zu sagen Sie den richtigen Grund wie oben, es sagt Ihnen, Sie können nicht machen Sie eine Kopie auf dem QUELL-server!
Beachten Sie, dass zu der Zeit des Schreibens, die beiden Server müssen konfiguriert werden, mit dem gleichen admin-Anmeldeinformationen, sonst wird die CREATE DATABASE-Befehl schlägt fehl mit dieser gleichen verwirrenden Fehlermeldung.
Es gibt eine einfache Lösung, die vielleicht nicht verfügbar, wenn diese Frage beantwortet wurde. Keine SMS-oder PowerShell benötigt. Es kann alles getan werden, in das portal. Gehen Sie in den source-SQL-Datenbank und klicken Sie auf Exportieren. Dieser erstellt eine .bacpac-Datei in Azure Storage. Gehen Sie auf den SQL-Zielserver, und klicken Sie auf "Importieren". Getan.
Hinweis 1: wenn die Ziel-SQL-Server ist in einem anderen Konto/Abo, kein Zugriff auf den Quell-Konto Azure-Speicher, nur manuell laden Sie die Datei von der Quelle Azure-Speicher hochladen und es zu einem Azure-Speicher-Instanz, die das Ziel zugreifen können.
Hinweis 2: die importierte Datenbank wird einen Namen haben, enthält der export-Datum. Sie können den Namen ändern, indem ausgeführt
ALTER DATABASE [dbname] MODIFY NAME = [newdbname]
auf der Ziel-Datenbank. Sie können dies sogar in dem portal mit dem neuen Abfrage-Editor.