Punkt-zu-Punkt-Wiederherstellung (PITR)
IBM Cloud® Databases for MongoDB Enterprise Edition bietet PITR mit einer beliebigen Zeitmarke, die größer als der früheste verfügbare Wiederherstellungspunkt ist. Um den frühesten Wiederherstellungspunkt über die API zu erkennen, verwenden Sie den Zeitmarkenendpunkt für die Wiederherstellung nach Zeitpunkt.
Beim Zurückschreiben an einen bestimmten Punkt innerhalb der letzten 7 Tage mit einer Zurückschreibungszeit nach der letzten Transaktion schlägt Ihre Zurückschreibung mit der folgenden Nachricht fehl: recovery ended before configured recovery target is reached.
Schlägt Ihre Zurückschreibung aus diesem Grund fehl, stellen Sie bis zum letzten verfügbaren Punkt wieder her oder wählen Sie ein früheres Datum und eine frühere Zeit für die Zurückschreibung bis zu einem bestimmten Punkt in den letzten 7 Tagen
aus.
{
"point_in_time_recovery_data": {
"earliest_point_in_time_recovery_time": "2019-09-09T23:16:00Z"
}
}
In dieser Phase gibt der Endpunkt für den Zeitstempel der Point-in-Time-Wiederherstellung immer die aktuelle Zeit zurück – ungefähr eine Woche.
Snapshots
Enterprise EditionMongoDB bietet PITR über Snapshots, die von der Ops Manager. verwaltet werden.
Es gibt bestimmte PITR-Überlegungen, bei denen PITR nicht unterstützt wird.
PITR nach Versions-Upgrade
Nach einem Versions-Upgrade ist die Point-in-Time-Wiederherstellung (PITR) für die neue Version erst verfügbar, wenn ein erster Snapshot der aktualisierten Bereitstellung erstellt und von „ Ops Manager “ gesichert wurde. Bei der Point-in-Time-Wiederherstellung können Daten erst dann auf einen Zeitpunkt nach einem größeren Versions-Upgrade zurückgesetzt werden, wenn dieser erste Snapshot fertiggestellt ist. Dieser Snapshot ist nicht in Ihren verfügbaren Backups aufgeführt. Ein Rollback auf die frühere Version (innerhalb von 7 Tagen nach dem Upgrade) wird nur unterstützt, wenn diese Version noch unterstützt wird.
PITR ist für eine bestimmte Version vorübergehend nicht verfügbar, bis ein Snapshot für diese Version erstellt und erfolgreich gesichert wurde.
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.
Die neue Bereitstellung wird automatisch auf dieselbe Festplatten- und Speicherzuweisung angepasst wie die Quellbereitstellung zum Zeitpunkt der Sicherung, aus der Sie die Wiederherstellung durchführen. Insbesondere bei PITR entspricht dies möglicherweise nicht der aktuellen 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. Wenn der Bereitstellung nicht genügend Ressourcen zur Verfügung stehen, schlägt die Wiederherstellung fehl. Ordnen Sie also genügend Ressourcen für Ihre Daten und Workload zu.
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 sich vor der Wiederherstellung alle an der Instanz vorgenommenen Änderungen (Parameter wie „ shared_buffers “, „ max_connections “, „ deadlock_timeout “ und „ archive_timeout “), um sicherzustellen, dass die Einstellungen der Instanz nach Abschluss der Wiederherstellung korrekt sind.
Löschen Sie die Quellenbereitstellung nicht, während die Sicherung wiederhergestellt wird. Sie müssen warten, bis die neue Bereitstellung eingerichtet ist und die Sicherung wiederhergestellt wurde, bevor Sie die alte Bereitstellung löschen. Beim Löschen einer Implementierung werden auch die zugehörigen Sicherungen gelöscht. Die Zurückschreibung schlägt also nicht nur fehl, Sie können die Sicherung möglicherweise nicht wiederherstellen.
Wiederherstellung über die Benutzerschnittstelle
Nach Abschluss der ersten Sicherung Ihrer Implementierung wird die Option zur Wiederherstellung nach Zeitpunkt in der Benutzerschnittstelle angezeigt. Um eine PITR zu starten, geben Sie die Zeit ein, zu der die Wiederherstellung in koordinierter Weltzeit erfolgen soll.
Die Zeitmarke für die Wiederherstellung nach Zeitpunkt muss wie folgt formatiert sein: %Y-%m-%dT%H:%M:%SZ.
Um den Systemzustand zum letzten verfügbaren Zeitpunkt wiederherzustellen, 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, müssen Sie die Wiederherstellung über die Befehlszeile (CLI) durchführen; zu Ihrer Erleichterung steht Ihnen hierfür ein Befehl zur Verfügung.
Wiederherstellung mit der 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.
ibmcloud resource service-instance-create <INSTANCE_NAME> <SERVICE_ID> <SERVICE_PLAN_NAME> <REGION> -p '{"point_in_time_recovery_deployment_id":"DEPLOYMENT_ID", "point_in_time_recovery_time":"TIMESTAMP", "version":""}'
Folgende Parameter sind verfügbar:
instance_name(Erforderlich): Der von Menschen lesbare Name der neuen Instanz, die bereitgestellt werden soll, z. B.new-mongo.service_id(Erforderlich): In diesem Zusammenhang ist diesdatabases-for-mongodb.service_plan_name(erforderlich):standardoderenterprise.region(erforderlich): Die IBM Cloud®-Region, in der die neue Datenbank bereitgestellt werden soll, z. B.eu-gb.point_in_time_recovery_deployment_id(erforderlich): Die ID der Quellverteilung (auch als CRN bekannt).point_in_time_recovery_time: Der Zeitpunkt, auf den das Backup wiederhergestellt wird, im Format%Y-%m-%dT%H:%M:%SZ, Zum Beispiel,2024-05-10T08:15:00Z. Lassen Sie dieses Feld leer, um den letzten wiederherstellbaren Punkt zu erhalten.version: Die Datenbankversion, zum Beispiel "6.0 ". Lassen Sie dieses Feld leer, um die neueste, bevorzugte Version zu verwenden.key_protect_key: ID (CRN) des Key Protect Ressource verwendet. Dieses Feld ist für die BYOK-Verschlüsselung (Bring Your Own Key) optional.members_host_flavor: Die Größe des Instanzhosts, den Sie bereitstellen möchten. Wenn nicht angegeben, wird die neue Instanz mit demselben RAM und derselben CPU wie die Quellinstanz erstellt. Siehe diese Tabelle für die verfügbaren Werte.
Beispiel
ibmcloud resource service-instance-create big-mongo-restore databases-for-mongodb enterprise eu-gb -p '{"point_in_time_recovery_deployment_id":"crn:v1:bluemix:public:databases-for-mongodb:eu-gb:a/f19c0f5eff94b69ae419xyz2345ra7a0ed:3c647ad1-b9a8-2233-a47e-668d8b83e79f::", "members_host_flavor":"b3c.4x16.encrypted", "point_in_time_recovery_time":"", "version":""}'
Wiederherstellung mit der API
Der Resource Controller unterstützt die Einrichtung von Datenbankbereitstellungen und für das Einrichten und Wiederherstellen ist die Resource Controller API zuständig. Sie müssen die erforderlichen Schritte ausführen, um die Resource Controller API zu verwenden, bevor Sie sie für die Wiederherstellung einer Sicherung verwenden können.
Sobald Sie alle Informationen haben, lautet die Create-Anfrage „ POST “ an den /resource_instances Endpunkt gesendet.
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 folgenden Felder sind alle Pflichtfelder:
name: Der menschenlesbare Name der neuen Instanz, die bereitgestellt werden soll, z. B.new-mongo.resource_group: Die ID der Ressourcengruppe, zB5c49eabc12fgt65resource_plan_id: In diesem Zusammenhang ist diesdatabases-for-mongodb-enterprisetarget: Der IBM Cloud Region, in der die neue Datenbank bereitgestellt wird, z. B.eu-gb. Wiederherstellungen über Regionen hinweg werden unterstützt, mit Ausnahme der Wiederherstellung einer „eu-de“-Sicherung in einer anderen Region.
Zusätzlich parameters Objekt kann mit den folgenden Feldern versorgt werden:
point_in_time_recovery_deployment_id: Die ID der Quellbereitstellung (auch als CRN bezeichnet).point_in_time_recovery_time: Der Zeitpunkt, auf den das Backup wiederhergestellt wird, im Format%Y-%m-%dT%H:%M:%SZ, Zum Beispiel,2024-05-10T08:15:00Z. Lassen Sie dieses Feld leer, um den letzten wiederherstellbaren Punkt zu erhalten.version: Die Datenbankversion, zum Beispiel "6.0 ". Lassen Sie dieses Feld leer, um die neueste, bevorzugte Version zu verwenden.key_protect_key: ID (CRN) des Key Protect Ressource verwendet. Dieses Feld ist für die BYOK-Verschlüsselung (Bring Your Own Key) optional.members_host_flavor: Die Größe des Instanzhosts, den Sie bereitstellen möchten. Wenn nicht angegeben, wird die neue Instanz mit demselben RAM und derselben CPU wie die Quellinstanz erstellt. Sehen Sie sich die Tisch für verfügbare Werte.
Die Zeitmarke für die Wiederherstellung nach Zeitpunkt muss wie folgt formatiert sein: %Y-%m-%dT%H:%M:%SZ.
Backup mit Terraform wiederherstellen
Stellen Sie vor der Wiederherstellung sicher, dass Ihr point_in_time_recovery_time nicht älter als eine Woche ist. Wenn der Zeitstempel älter als 7 Tage ist, bis auf die Sekunde genau, schlägt die Validierung fehl.
Verwenden Sie die ibm_database_point_in_time_recovery-Datenquelle, um Ihre Datenbankinstanz mit point_in_time_recoverywiederherzustellen.
Die Zeitmarke für die Wiederherstellung nach Zeitpunkt muss wie folgt formatiert sein: %Y-%m-%dT%H:%M:%SZ.
Ihr Terraform-Script sieht wie folgt aus.
terraform {
required_providers {
ibm = {
version = "1.44.3"
source = "IBM-Cloud/ibm"
}
}
}
variable "ibmcloud_api_key" {
description = "<Enter your IBM Cloud API Key>"
}
provider "ibm" {
region = "us-south"
ibmcloud_api_key = var.ibmcloud_api_key
}
data "ibm_resource_group" "default_group" {
is_default = true
}
resource "ibm_database" "mongodb_enterprise" {
resource_group_id = data.ibm_resource_group.default_group.id
name = "testing-mongodb-pitr"
service = "databases-for-mongodb"
plan = "enterprise"
location = "us-south"
point_in_time_recovery_deployment_id = "<crn>"
point_in_time_recovery_time = "2022-09-14T14:47:45Z"
}
Das Obige führt zur Wiederherstellung in einer neuen Datenbank mit der gleichen Host- und Festplattengröße wie die Quelle. Wenn Sie die Hostgröße oder die Festplattengröße Ihrer Bereitstellung ändern möchten, lesen Sie die Terraform-Dokumentation für die richtige Formatierung.
Point-in-Time-Recovery (PITR) Offline-Wiederherstellung
IBM Cloud® Databases for MongoDB Enterprise Edition erfordert zwei Prozesse, um einen Restore einzuleiten. Zunächst wird eine Momentaufnahme von Ops Manager AppDBerstellt. Diese Momentaufnahme dient dann als PITR-Sicherung, die zum Zurückschreiben Ihrer Datenbank verwendet werden kann.
In einigen NotfallwiederherstellungDie Fähigkeit eines Dienstes oder einer Arbeitslast, sich von seltenen, schwerwiegenden Vorfällen und großflächigen Ausfällen, wie z. B. Dienstunterbrechungen, zu erholen. Dies umfasst eine Naturkatastrophe, die eine ganze Region betrifft, die Beschädigung einer Datenbank oder den Verlust eines Dienstes, der zu einer Arbeitsbelastung beiträgt. Die Auswirkungen übersteigen die Kapazitäten des Hochverfügbarkeitsdesigns. Szenarien kann der PITR-Prozess fehlschlagen. In solchen Fällen Databases for MongoDB Enterprise Edition Mit der Point-in-Time Recovery (PITR)-Offlinewiederherstellung kann der letzte verfügbare Snapshot wiederhergestellt werden. Die Option "Offlinewiederherstellung" stellt die Datenverfügbarkeit und die Ausfallsicherheit des Systems in einem Fall sicher, in dem die Momentaufnahmemethode nicht wie erwartet funktioniert.
Point-in-Time-Recovery (PITR) Offline-Wiederherstellung über die Benutzeroberfläche
Initiieren Sie eine Offlinewiederherstellung über das Dashboard IBM Cloud wie bei einem Standard-PITR. Wählen Sie die dritte Option für die Wiederherstellung nach Zeitpunkt aus.
Point-in-Time-Recovery (PITR) Offline-Wiederherstellung über die CLI
Initiieren Sie eine Offlinewiederherstellung über die Befehlszeilenschnittstelle von IBM Cloud mit einem Befehl wie dem folgenden:
ibmcloud resource service-instance-create big-mongo-restore databases-for-mongodb enterprise eu-gb -p '{"point_in_time_recovery_deployment_id":"crn:v1:bluemix:public:databases-for-mongodb:eu-gb:a/f19c0f5eff94b69ae419xyz2345ra7a0ed:3c647ad1-b9a8-2233-a47e-668d8b83e79f::", "members_host_flavor":"b3c.4x16.encrypted", "point_in_time_recovery_time":"", "version":"", "offline_restore": true}'
Geben Sie die folgenden Parameter an:
point_in_time_recovery_deployment_id-Dies ist der Quellen-CRN.point_in_time_recovery_time- Lassen Sie dieses Feld leer:"".offline_restore- Setzen Sie diesen Wert auf „true“.
Die Ausgabe des Befehls sieht wie folgt aus:
Creating service instance <INSTANCE_NAME> in resource group Default of account <ACCOUNT> as <USER>...
OK
Service instance <INSTANCE_NAME> was created.
Name: <INSTANCE_NAME>
ID: crn:v1:bluemix:public:databases-for-mongodb:eu-gb:a/f19c0f5eff94b69ae419xyz2345ra7a0ed:3c647ad1-b9a8-2233-a47e-668d8b83e79f::
GUID: 3c647ad1-b9a8-2233-a47e-668d8b83e79f
Location: <LOCATION>
State: provisioning
Type: service_instance
Sub Type: Public
Service Endpoints: public
Allow Cleanup: false
Locked: false
Created at: 2023-08-03T09:36:37Z
Updated at: 2023-08-03T09:36:41Z
Last Operation:
Status create in progress
Message Started create instance operation
Die Zeitmarke für die Wiederherstellung nach Zeitpunkt muss wie folgt formatiert sein: %Y-%m-%dT%H:%M:%SZ.
Point-in-Time-Recovery (PITR) Offline-Wiederherstellung über die API
Der Resource Controller unterstützt die Einrichtung von Datenbankbereitstellungen und für das Einrichten und Wiederherstellen ist die Resource Controller API zuständig. Führen Sie die erforderlichen Schritte zur Verwendung der Ressourcencontroller-API aus, bevor Sie sie für die Wiederherstellung aus einer Sicherung verwenden.
Nachdem Sie alle Informationen erhalten haben, ist die Erstellungsanforderung eine POST für /resource_instances, die wie folgt
aussieht:
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-ID>",
"resource_plan_id": "<SERVICE-ID>",
"parameters": {
"point_in_time_recovery_time":"<TIMESTAMP>",
"point_in_time_recovery_deployment_id":"<DEPLOYMENT_ID>",
"offline_restore": true
}
}'
Geben Sie die folgenden Parameter an:
point_in_time_recovery_deployment_id-Dies ist der Quellen-CRN.point_in_time_recovery_time- Lassen Sie dieses Feld leer:"".offline_restore- Setzen Sie diesen Wert auf „true“.
Die Zeitmarke für die Wiederherstellung nach Zeitpunkt muss wie folgt formatiert sein: %Y-%m-%dT%H:%M:%SZ.