IBM Cloud Docs
IBM Cloudant-Replikation

IBM Cloudant-Replikation

Die IBM® Cloudant® for IBM Cloud®-Replikation ist der Prozess, durch den der Status von zwei Datenbanken synchronisiert wird.

Jede Änderung, die in der Quellendatenbank vorgenommen wurde, wird in der Zieldatenbank nachvollzogen. Sie können eine Replikation zwischen einer beliebigen Anzahl von Datenbanken entweder fortlaufend oder als einmalige Task einrichten.

Abhängig von Ihren Anwendungsanforderungen verwenden Sie die Replikation, um Statusinformationen und Inhalte gemeinsam zu nutzen und zusammenzufassen.

Die Replikation erfolgt nur in eine Richtung. Für die gegenseitige Synchronisierung von zwei Datenbanken müssen Sie in beide Richtungen replizieren. Führen Sie diesen Prozess durch, indem Sie aus database1 in database2 und, separat dazu, aus database2 in database1 replizieren.

Wenn die Replikation abgeschlossen ist, befinden sich erstens alle aktiven Dokumente in der Quellendatenbank auch in der Zieldatenbank. Zweitens werden Dokumente, die aus der Quellendatenbank gelöscht werden, ebenfalls aus der Zieldatenbank entfernt (sofern sie vorhanden sind).

Replikationsoperation

Die Replikation hat zwei Formen: Push- oder Pull-Replikation

  • Push-Replikation -Dabei handelt es sich bei der Quelle um eine lokale Datenbank und das Ziel ist eine ferne Datenbank.
  • Pull Replication -Dabei handelt es sich bei der Quelle um eine ferne Datenbankinstanz, und das Ziel ist die lokale Datenbank.

Die Pull-Replikation ist nützlich, wenn Ihre Quellendatenbank eine permanente IP-Adresse hat und Ihre Zieldatenbank lokal vorhanden ist und eine dynamisch zugeordnete IP-Adresse (z. B. durch DHCP) hat. Die Pull-Replikation ist geeignet, wenn Sie auf ein mobiles oder ein anderes Gerät von einem zentralen Server replizieren.

In allen Fällen müssen die in der Quellen- und der Zielspezifikation angeforderten Datenbanken vorhanden sein. Ist dies nicht der Fall, wird ein Fehler im JSON-Objekt zurückgegeben.

Sehen Sie sich die folgende Beispielanforderung an, die zwischen einer Datenbank auf dem Quellenserver example.comund einer Zieldatenbank in IBM Cloudantrepliziert werden soll.

POST /_replicate
Content-Type: application/json
Accept: application/json

{
  "source" : "https://$USERNAME1:$PASSWORD1@example.com/db",
  "target" : "https://$USERNAME2:$PASSWORD2@$ACCOUNT2.cloudant.com/db",
}

Sehen Sie sich die folgende Beispielfehlerantwort an, wenn eine der angeforderten Datenbanken für eine Replikation nicht vorhanden ist.

{
  "error" : "db_not_found",
  "reason" : "could not open https://example.com/db/"
}

Fortlaufende Replikation

Die Synchronisierung einer Datenbank während der Replikation erfolgt standardmäßig einmal, wenn die Replikationsanforderung gesendet wird. Um sicherzustellen, dass die Replikation aus der Quellendatenbank in die Zieldatenbank fortlaufend erfolgt, setzen Sie das Feld continuous des JSON-Objekts in der Anforderung auf den Wert true.

Bei fortlaufender Replikation werden Änderungen in der Quellendatenbank so lange in die Zieldatenbank repliziert, bis Sie die Replikation explizit abbrechen.

Änderungen werden zwischen den beiden Datenbanken repliziert, während eine Netzverbindung zwischen den beiden Instanzen verfügbar ist.

Während des Betriebs wird der Replikationsprozess nicht gestoppt, wenn die Verarbeitung aller aktuellen Aktualisierungen abgeschlossen ist. Vielmehr wird der Replikationsprozess fortgesetzt, um auf weitere Aktualisierungen an der Quellendatenbank zu warten, die er dann auf das Ziel anwendet.

Die fortlaufende Replikation erzwingt fortlaufende Prüfungen in der Quellendatenbank. Diese Prüfungen haben eine steigende Anzahl von Datenbankzugriffen zur Folge, auch wenn sich der Inhalt der Quellendatenbank nicht geändert hat. Datenbankzugriffe werden im Rahmen der Arbeit gezählt, die innerhalb einer Multi-Tenant-Datenbankkonfiguration durchgeführt wird.

Datenbank _replicator

Die Datenbank _replicator ist eine spezielle Datenbank in Ihrem Konto, in die Sie Replikationsdokumente mit der Methode PUT oder POST einfügen können, um die gewünschten Replikationen anzugeben.

Bevor Sie eine Replikation starten, müssen Sie die Datenbank _replicator erstellen. Senden Sie zum Erstellen einer Datenbank eine Anforderung mit der Methode PUT an den folgenden Endpunkt:

https://$ACCOUNT.cloudant.com/_replicator

Weitere Informationen finden Sie unter Datenbanken.

Zum Abbrechen einer Replikation müssen Sie das Replikationsdokument löschen (DELETE). Die im Replikationsdokument bereitgestellten Felder werden in der Beschreibung Create or modify a replication operation unter "Request information" beschrieben.

Alle Designdokumente und _local -Dokumente, die zur Datenbank /_replicator hinzugefügt werden, werden ignoriert.

Wichtige Hinweise

  • Durch einen neuen und leistungsfähigeren Replikationsscheduler wird das vorherige Verhalten der IBM Cloudant-Replikationsmechanismen geändert. Stellen Sie sicher, dass Ihre Anwendungen aktualisiert werden.
  • Replikationen können die Leistung einer IBM Cloudant-Instanz erheblich beeinträchtigen. Durch Leistungstests können Sie sich ein Bild von den Auswirkungen auf Ihre Umgebung bei einer steigenden Anzahl gleichzeitiger Replikationen machen.
  • Eine fortlaufende Replikation kann zu vielen internen Aufrufen führen. Diese hohe Anzahl von Aufrufen kann sich auf die Kosten für Multi-Tenant-Benutzer von IBM Cloudant-Systemen auswirken. Standardmäßig ist die fortlaufende Replikation nicht aktiviert.
  • Die Zieldatenbank muss vorhanden sein. Sie wird nicht automatisch erstellt, wenn sie nicht vorhanden ist. Fügen Sie die Angabe "create_target":true in dem JSON-Dokument hinzu, das die Replikation beschreibt, wenn die Zieldatenbank vor der Replikation nicht vorhanden ist. Weitere Informationen finden Sie unter Zieldatenbank während der Replikation erstellen.
  • Replikatordatenbanken müssen wie jeder andere wertvolle Datenspeicher verwaltet und gepflegt werden. Weitere Informationen finden Sie unter Pflege der Replikationsdatenbank.

Aus Sicherheitsgründen empfiehlt das IBM Cloudant-Team, dass Sie für Replikationsjobs IAM-API-Schlüssel oder API-Schlüssel der traditionellen IBM Cloudant-Authentifizierung verwenden und keine Berechtigungsnachweise auf Kontoebene. Weitere Informationen finden Sie in der IAM-Anleitung oder im Dokument zur API für traditionelle Authentifizierung und im Dokument zur API für traditionelle Autorisierung.