Ich habe einen Snapshot meiner Instanz erstellt und einige unerwünschte Änderungen in der Datenbank vorgenommen.
Jetzt möchte ich meine Instanz aus diesem Snapshot wiederherstellen.
Wenn ich es versuche, wird mir zusätzlich zu der Instanz, die ich habe, eine weitere Instanz erstellt.
Ich gebe "DB Instance Identifier" an und erhalte danach zwei Instanzen mit derselben ID.
Meine Frage: Gibt es eine Möglichkeit, den Snapshot einer vorhandenen Instanz wiederherzustellen?
Denn in einem anderen Fall wird eine neue Instanz mit einem anderen Endpunkt (Hostname) erstellt und ich muss meine Konfigurationen ändern, um auf die Datenbank zugreifen zu können. Oder gibt es einen besseren Weg, um solche Fälle zu verwalten?
mysql
amazon-web-services
amazon-rds
SmxCde
quelle
quelle
Antworten:
Nein, Sie können Ihre vorhandene DB-Instanz weder in einer manuellen Sicherung noch in einem Snapshot zu einem bestimmten Zeitpunkt wiederherstellen.
Die einzige Möglichkeit, die manuelle Sicherung oder den automatisierten Snapshot zu verwenden, besteht darin, damit eine neue RDS DB-Instanz zu erstellen. Sobald die neue DB-Instanz erstellt wurde, können Sie den Endpunkt der DB in Ihrer App / Ihrem Code ändern und die alte DB-Instanz löschen.
Fazit: Sie müssen die Konfigurationseinstellungen in Ihrer App ändern. Keine andere Option.
quelle
CNAME
in DNS zu konfigurieren und auf Ihren RDS-Hostnamen zu verweisen. Konfigurieren Sie dann die Anwendung neu, um den c-Namen zu verwenden. Dann müssen Sie in Zukunft nur noch eine Änderung vornehmen - in DNS.Wenn jemand hierher gekommen ist (genau wie ich), um nur Daten wiederherzustellen, ohne Ihre Konfiguration zu ändern.
Hier sind die Schritte:
quelle
Benennen Sie die ursprüngliche Instanz um und benennen Sie die neue Instanz mit dem ursprünglichen Namen
https://aws.amazon.com/blogs/aws/endpoint-renaming-for-amazon-rds/
quelle
Ich hatte heute das gleiche Problem. Ich denke, Sie haben zwei Möglichkeiten, ohne die Konfigurationseinstellung der Anwendung zu ändern.
Löschen Sie die alte Instanz wie von Mike vorgeschlagen und stellen Sie sie dann wieder her.
Benennen Sie zuerst die alte Instanz um (aktivieren Sie beim Umbenennen die Option "Sofort anwenden").
quelle
Wie @MaXimus sagte (ich kann noch keine Kommentare hinzufügen) können Sie:
Wie
Renaming to Replace an Existing DB Instance
hier angegeben: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RenameInstance.htmlquelle
Lösung, wenn Sie AWS CLI ausführen möchten. Ersetzen Sie ORIG_NAME und NEW_NAME durch Ihre Werte
--db-subnet-group-name
--vpc-security-group-ids
--publicly-accessible
Eine kurze Version der aws rds restore-db-instance-to-point-in-time wäre also:
quelle
Nachdem Sie die wiederhergestellte Datenbank mit einem neuen Namen erstellt haben, können Sie die aktuelle Instanz in ... alt umbenennen. Dadurch wird auch die Datenbank-URL umbenannt. Nachdem auch die URL geändert wurde, müssen Sie die wiederhergestellte Datenbank in den zuvor verwendeten Namen umbenennen und warten, bis sich die URL der Datenbank ändert. Dann müssen Sie Ihre Dienste neu starten, und sie stellen eine Verbindung zur wiederhergestellten Datenbank her.
Dies verursacht überhaupt keinen Ausfall.
quelle