2014-06-25 3 views
8

Ich habe meine MySql-Datenbank auf Amazon RDS auf meiner Production Instance gehostet. Ich habe eine andere RDS-Instanz für Entwicklungszwecke. Jetzt suche ich nach dem besten/schnellsten Weg, Datenbank Backup/Snapshot von Production Instance zu Development Instance wiederherzustellen, weil Meine Datenbank sehr groß ist und Backup-Download-Prozess ist sehr zeitaufwendig Job sowie es blockiert alle Tabellen für Lese-/Schreib-Transaktion . Oder Gibt es eine Option für das Herunterladen von Backups, ohne die Transaktion zu blockieren/zu ändern/transacion auszuwählen?Download MySql Backup/Snapshot von Amazon RDS

Danke.

EDIT:

Hier ein mistek ich getan habe, in Frage oben meine ich Konto sagen kein Instanz. Ich habe zwei verschiedene Konten, eines für die Produktion und eines für die Entwicklung/Prüfung. und ich möchte den Snapshot von der Instanz des Produktionskontos zur Instanz des Entwicklungskontos wiederherstellen, und beide Instanzen befinden sich in derselben Region (z. B. Singapur).

+0

Verwandte: http://stackoverflow.com/questions/18192609/can-rds-snapshots-be-transferred-across-aws-accounts –

Antwort

6

Vorausgesetzt, Sie haben klargestellt, dass Sie das Backup erstellen und es an eine andere RDS-Instanz zurückgeben müssen, die sich in einem anderen AWS-Konto befindet. die einzige Möglichkeit, wie Sie das sql-dump oder die Datenbank sichern und wiederherstellen können; Sie können den Snapshot zwischen Konten nicht übernehmen und teilen.

Die eine Art, wie Sie die E/A-Blockierung und Transaktionsengpässe auf die Seite bringen können, ist die Verwendung von Read-Replica. Auf diese Weise wird der gesamte Sicherungsprozess in der Read-Replica durchgeführt und Ihre Hauptinstanz wird nicht beeinflusst.

  • erstellen Lese-Replik
  • die Replik zulassen zu so viel wie möglich bevölkert
  • dann Ihre SQL Backup-Tool gelten für diese Replik Instanz & erstellen die Sicherungs
  • Setzen Sie die Sicherung verbinden in S3
  • Gehen sie auf die neue Instanz und es wieder zurück

PS - Überlegungen:

  1. Da wir ein read-replica verwenden, ist möglicherweise ein veralteter Wert (replication - lag) zwischen der Hauptinstanz und dem read-replic vorhanden. Sie müssen dies berücksichtigen, bevor Sie den Prozess starten. Die Replikation erfolgt asynchron.

  2. Sie sollten versuchen, die Sicherungsoperationen von einer EC2-Instanz aus durchzuführen, um die Latenz-, Netzwerkbandbreiten-Pipeline zu nutzen.

+0

dank @Naveen, Wenn ich ein Backup von Lese-Replik nehme , dann liegen sehr viele Replikationsmöglichkeiten auf meiner schweren schreibintensiven Datenbank, die Sie in Ihrem ersten Punkt erwähnt haben. Wie nehme ich backup (ich sage sqldump, ich weiß noch keine andere Option!) Mit Datenintegrität? –