Zeitpunktgesteuerte Wiederherstellung
IBM Cloud® Databases for MySQL bietet eine zeitpunktgesteuerte Wiederherstellung (Point-in-Time Recovery, PITR) für jeden beliebigen Zeitpunkt während der letzten sieben Tage. Die Bereitstellung wird fortlaufend inkrementell gesichert, und Transaktionen können wiederhergestellt werden, sodass eine neue Bereitstellung, die aus einem Backup wiederhergestellt wurde, auf jeden beliebigen Zeitpunkt innerhalb dieses 7-Tage-Fensters zurückgesetzt werden kann.
Auf der Registerkarte „Backups“ der Benutzeroberfläche Ihrer Bereitstellung werden alle Ihre PITR-Informationen unter „Point-in-Time-Wiederherstellung“ gespeichert.
Zu den enthaltenen Informationen gehört auch der früheste Zeitpunkt für eine PITR. Verwenden Sie den Befehl cdb mysql earliest-pitr-timestamp um den frühesten Wiederherstellungspunkt über die Befehlszeilenschnittstelle zu ermitteln.
ibmcloud cdb mysql earliest-pitr-timestamp <deployment name or CRN>
Verwenden Sie den Endpunkt /deployments/{id}/point_in_time_recovery_data, um den frühesten Wiederherstellungspunkt über die API zu ermitteln.
{
"point_in_time_recovery_data": {
"earliest_point_in_time_recovery_time": "2019-09-09T23:16:00Z"
}
}
Wiederherstellung
Sicherungen werden in einer neuen Bereitstellung wiederhergestellt. Wenn die Bereitstellung vollständig eingerichtet ist, werden Ihre Daten aus der Sicherungsdatei in die neue Bereitstellung zurückgeschrieben. Sicherungen sind auch über Konten wiederherstellbar, jedoch nur über die API und nur dann, wenn der Benutzer, der die Wiederherstellung durchführt, Zugriff auf das Quellen- und das Zielkonto hat.
Standardmäßig wird die neue Bereitstellung automatisch auf dieselbe Festplatten- und Speicherzuweisung wie die Quellenbereitstellung zum Zeitpunkt der Sicherung, von der Sie wiederherstellen, skaliert. Insbesondere im Fall von PITR ist dies möglicherweise nicht die aktuelle Größe Ihrer Bereitstellung. Wenn Sie die Ressourcen anpassen müssen, die der neuen Bereitstellung zugeordnet werden, verwenden Sie die optionalen Felder in der Benutzerschnittstelle, Befehlszeilenschnittstelle oder API, um die Größe der neuen Bereitstellung zu ändern. Vergewissern Sie sich, dass die Größe der Zuordnung für Ihre Daten und Ihre Workload ausreicht. Wenn der Bereitstellung nicht ausreichend Ressourcen zugewiesen werden, schlägt die Wiederherstellung fehl.
Während Speicher und Hauptspeicher wie in der Quellenbereitstellung wiederhergestellt werden, werden spezielle Instanzkonfigurationen nicht automatisch für die neue Instanz definiert. In diesem Fall müssen Sie nach einer Wiederherstellung die Konfiguration möglicherweise erneut ausführen. Notieren Sie alle Instanzänderungen vor der Ausführung der Wiederherstellung (Parameter wie shared_buffers, max_connections, deadlock_timeout, archive_timeout usw.), um sicherzustellen, dass die Instanz nach Abschluss der Wiederherstellung korrekt eingestellt wird.
Es ist äußerst wichtig, dass Sie die Quellbereitstellung nicht löschen, während die Sicherung wiederhergestellt wird. Warten Sie, bis die neue Bereitstellung eingerichtet und die Sicherung wiederhergestellt ist, bevor Sie die alte Bereitstellung löschen. Durch das Löschen einer Bereitstellung werden auch deren Sicherungen gelöscht, sodass nicht nur die Wiederherstellung fehlschlägt, sondern Sie möglicherweise auch die Sicherung nicht mehr wiederherstellen können.
Über die Benutzerschnittstelle
Um eine PITR zu starten, geben Sie die Zeit ein, zu der die Wiederherstellung in koordinierter Weltzeit erfolgen soll. Wenn Sie die Wiederherstellung nur auf den zuletzt verfügbaren Zeitpunkt beschränken möchten, wählen Sie diese Option aus. Wenn Sie auf Wiederherstellung klicken, werden die Optionen für Ihre Wiederherstellung angezeigt. Geben Sie einen Namen ein und wählen Sie die Version, die Region und die zugeordneten Ressourcen für die neue Bereitstellung aus. Klicken Sie auf Wiederherstellen, um den Prozess zu starten.
Wenn Sie Key Protect verwenden und über einen Schlüssel verfügen, verwenden Sie die Befehlszeilenschnittstelle für die Wiederherstellung. Aus Gründen der Benutzerfreundlichkeit wird ein Befehl bereitgestellt.
Über die Befehlszeilenschnittstelle
Der Resource Controller unterstützt die Einrichtung von Datenbankbereitstellungen und für das Einrichten und Wiederherstellen ist die Resource Controller CLI zuständig. Verwenden Sie den Befehl resource service-instance-create.
Verwenden Sie bei PITR die Parameter point_in_time_recovery_time und point_in_time_recovery_deployment_id. point_in_time_recovery_deployment_id ist die ID der Quellenimplementierung und point_in_time_recovery_time ist die Zeitmarke in koordinierter Weltzeit, in der die Wiederherstellung erfolgen soll. Wenn Sie die Wiederherstellung für den letzten möglichen Zeitpunkt vornehmen möchten, verwenden Sie den Befehl "point_in_time_recovery_time":" ".
ibmcloud resource service-instance-create <SERVICE_INSTANCE_NAME> <service-id> <region> -p '{"point_in_time_recovery_deployment_id":"DEPLOYMENT_ID", "point_in_time_recovery_time":"TIMESTAMP"}'
Ein vorformatierter Befehl für eine bestimmte Sicherung oder PITR ist in der Detailansicht der Sicherung verfügbar.
Optionale Parameter sind verfügbar, wenn Sie über die Befehlszeilenschnittstelle (CLI) wiederherstellen. Verwenden Sie sie, wenn Sie Ressourcen anpassen müssen, oder verwenden Sie einen Key Protect-Schlüssel für die BYOK-Verschlüsselung bei der neuen Verschlüsselung.
ibmcloud resource service-instance-create <SERVICE_INSTANCE_NAME> <service-id> standard <region> <--service-endpoints SERVICE_ENDPOINTS_TYPE> -p
'{"point_in_time_recovery_deployment_id":"DEPLOYMENT_ID", "point_in_time_recovery_time":"TIMESTAMP","key_protect_key":"KEY_PROTECT_KEY_CRN", "members_disk_allocation_mb":"DESIRED_DISK_IN_MB", "members_memory_allocation_mb":"DESIRED_MEMORY_IN_MB", "members_cpu_allocation_count":"NUMBER_OF_CORES"}'
Über die API
Der Ressourcen-Controller unterstützt die Bereitstellung von Datenbank-Deployments; die Bereitstellung und Wiederherstellung fallen in den Zuständigkeitsbereich der Ressourcen-Controller-API. Führen Sie die erforderlichen Schritte aus, um die Ressourcencontroller-API zu verwenden, bevor Sie sie zur Wiederherstellung aus einer Sicherung verwenden.
Sobald alle Informationen vorhanden sind, handelt es sich bei der Erstellungsanforderung um eine POST-Anforderung an den Endpunkt /resource_instances.
curl -X POST
https://resource-controller.cloud.ibm.com/v2/resource_instances
-H 'Authorization: Bearer <>'
-H 'Content-Type: application/json'
-d '{
"name": "<SERVICE_INSTANCE_NAME>",
"target": "<region>",
"resource_group": "<your-resource-group>",
"resource_plan_id": "<service-id>",
"parameters":{
"point_in_time_recovery_time":"<TIMESTAMP>",
"point_in_time_recovery_deployment_id":"<DEPLOYMENT_ID>"
}
}'
Die Parameter name, target, resource_group und resource_plan_id sind erforderlich. target ist die Region, in der sich die neue Bereitstellung befinden soll. Dies kann eine andere
Region als die Quellenbereitstellung sein. Regionenübergreifende Wiederherstellungen werden unterstützt, mit Ausnahme der Wiederherstellung einer eu-de-Sicherung in eine andere Region.
Verwenden Sie bei PITR die Parameter point_in_time_recovery_time und point_in_time_recovery_deployment_id. point_in_time_recovery_deployment_id ist die ID der Quellenbereitstellung und point_in_time_recovery_time ist die Zeitmarke (in UTC) für die Wiederherstellung. Wenn Sie die Wiederherstellung für den letzten möglichen Zeitpunkt vornehmen möchten, verwenden Sie den Befehl "point_in_time_recovery_time":" ".
Wenn Sie Ressourcen anpassen oder einen Key Protect-Schlüssel verwenden müssen, müssen Sie die optionalen Parameter key_protect_key, members_disk_allocation_mb, members_memory_allocation_mb, und/oder
members_cpu_allocation_count und ihre Werte zum Hauptteil der Anforderung hinzufügen.
PITR überprüfen
Überprüfen Sie die Datenbankprotokolle, um die korrekte Wiederherstellungszeit zu überprüfen. Zur Prüfung der Datenbankprotokolle muss die Protokollierungsintegration für Ihre Bereitstellung konfiguriert sein.
Wenn Sie eine Wiederherstellung durchführen, werden Ihre Daten aus der neuesten Teilsicherung zurückgeschrieben. Alle noch ausstehenden Transaktionen aus dem WAL-Protokoll werden verwendet, um Ihre Datenbank auf den Zeitpunkt zu bringen, bis zu dem Sie die Wiederherstellung durchgeführt haben. Wenn die Wiederherstellung abgeschlossen ist und die Transaktionen ausgeführt wurden, wird in den Protokollen eine Nachricht angezeigt. Sie können überprüfen, ob Ihre Protokolle die folgende Meldung enthalten.
LOG: last completed transaction was at log time 2019-09-03 19:40:48.997696+00
Es gibt zwei Szenarios, in denen die Wiederherstellung in den Protokollen nicht angezeigt wird.
- Ihre Bereitstellung verfügt bereits über eine aktuelle vollständige Sicherung und es gibt Aktivität, die nach der Sicherung ausgeführt wurde und wiedergegeben werden muss.
- Wenn Sie eine Zeit für die Wiederherstellung eingegeben haben, die einen späteren Zeitpunkt als die aktuelle Zeit oder als der letzte verfügbare PITR-Punkt angibt.
In beiden Fällen ist die Wiederherstellung in der Regel erfolgreich, aber es gibt keinen Eintrag in den Protokollen, um die genaue Zeit zu überprüfen, in der die Datenbank wiederhergestellt wurde.