GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So richten Sie die CouchDB-Replikation unter Ubuntu 16.04 ein

Im heutigen Artikel werden wir die CouchDB-Replikation auf Ubuntu 16.04 einrichten. CouchDB ist eine NoSQL-Datenbank, die cassandra sehr ähnlich ist. Statt Java von Cassandra ist CouchDB in Erlang geschrieben und seit 2008 ein Projekt der Apache Software Foundation. Diese Datenbank ist dokumentenorientiert, ähnlich wie MongoDB. Für dieses Tutorial benötigen Sie zwei Knoten, auf denen Ubuntu 16.04 Server ausgeführt wird. Ich werde KVM-Instanzen in meinem Laptop verwenden, Sie können entweder VM oder physische Maschinen verwenden. Also fangen wir an.

Installation und CouchDB auf dem Ubuntu-Knoten

Lassen Sie uns zuerst die Quellenliste aktualisieren

sudo apt update

Als nächstes installieren wir das Paket software-properties-common, mit dem wir PPA-Repositories hinzufügen können. Es ist möglicherweise standardmäßig enthalten, aber wenn dies nicht der Fall ist, müssen Sie diesen Befehl ausführen

sudo apt install software-properties-common

Als nächstes fügen wir ein Repository für couchdb hinzu, von wo aus wir die Datenbanksoftware installieren werden

sudo add-apt-repository ppa:couchdb/stable

Dann können wir couchdb mit einem einfachen Befehl installieren:

sudo apt-get install couchdb

Nachdem dieser Befehl ausgeführt wurde, ist couchdb installiert und wir werden auf Port 5984 ausgeführt. Können wir curl verwenden, um Informationen über die Datenbank zu erhalten

curl localhost:5984

Wie wir sehen, läuft es schon.

So erstellen und löschen Sie eine Datenbank

Couchdb wird durch HTTP-Anfragen manipuliert. Wenn Sie etwas erledigt haben möchten, stellen Sie eine Anfrage an localhost auf dem Standardport, auf dem die CouchDB läuft. Das ist Port 5984. Aus Sicherheitsgründen können Sie dies nur auf localhost tun, auf der Maschine, auf der couchdb läuft.

Lassen Sie uns die Datenbank hinzufügen:

miki@ubuntu-1:~$ curl -X PUT localhost:5984/new_database
{"ok":true}

Lassen Sie uns nun alle Datenbanken auf dem System auflisten:

miki@ubuntu-1:~$ curl -X GET http://127.0.0.1:5984/_all_dbs
["_replicator","_users","new_database"]

Die ersten beiden sind standardmäßig vorhanden, die new_database ist das, was wir erstellt haben. Dann löschen wir es. Das Löschen von Datenbanken erfolgt mit folgendem Befehl

miki@ubuntu-1:~$ curl -X DELETE http://127.0.0.1:5984/new_database
{"ok":true}

Führen Sie nun den zweiten Befehl erneut aus

miki@ubuntu-1:~$ curl -X GET http://127.0.0.1:5984/_all_dbs
["_replicator","_users"]

Wir sehen, dass die new_database fehlt, da wir sie gelöscht haben.

Futon - die CouchDB-GUI

Wenn Sie http://localhost:5984/_utils besuchen Mit Ihrem Browser finden Sie den Futon. Futon ist das GUI-Frontend von CouchDB. Aber wie erwähnt, erlaubt CouchDB aus Sicherheitsgründen nur die Verwaltung von localhost, also von dem Server, auf dem Sie CouchDB installiert haben. Sie können die IP-Adresse des Servers nicht anstelle von localhost eingeben. Wenn Sie also Ihren Server von Ihrem Laptop aus administrieren möchten, müssten wir einen kleinen Trick anwenden. Wir müssten einen SSH-Tunnel zum Server erstellen, ein Mini-VPN erstellen und Ihren Server glauben machen, dass die Anfrage von localhost kommt. Geben Sie dazu auf Ihrem lokalen Computer den folgenden Befehl ein:

miki@ThinkPad-X220T:~$ ssh -L5984:127.0.0.1:5984 [email protected]

Dadurch wird der benötigte Tunnel erstellt, und als Nächstes können Sie Ihren Browser starten und zu http://localhost:5984/_utils/index.html navigieren

Es wird Ihnen eine ähnliche Benutzeroberfläche geben

Da wir im nächsten Kapitel eine Datenbank replizieren werden, müssen wir unsere Zieldatenbank so einstellen, dass sie Replikationen von anderen Orten als localhost akzeptiert. Dies kann im Parameter bind_address auf der Konfigurationsseite von Futon eingestellt werden. Es muss auf 0.0.0.0 gesetzt werden um auf allen IPs zu lauschen und nicht nur auf localhost. Etwa so:

Sie können dies auf beiden Knoten tun (Sie müssten einen neuen SSH-Tunnel für andere Knoten erstellen), aber im Allgemeinen muss nur das Ziel, auf dem die Replikation erstellt wird, alle IP-Adressen überwachen. Die Quelle kann weiterhin nur localhost abhören.

Lokales Replizieren einer Datenbank

Das Replizieren einer Datenbank erfolgt, wie alles andere in CoucdDB, auch per HTTP-Anfrage. Sie müssen die Quell- und die Zieldatenbank angeben. Das Ziel kann eine lokale oder entfernte Datenbank sein. Da wir Ubuntu-1 bereits so eingestellt haben, dass es auf alle IP-Adressen hört, erstellen wir eine Datenbank, die wir auf dem Ubuntu-2-Host replizieren.

miki@ubuntu-2:~$ curl -X PUT localhost:5984/db-replica
{"ok":true}

Sehen wir uns nun an, wie wir diese Datenbank lokal replizieren können. Auf demselben Server

curl -H 'Content-Type: application/json' -X POST http://localhost:5984/_replicate -d ' {"source": "http://localhost:5984/db-replica", "target": "http://localhost:5984/foo", "create_target": true, "continuous": true} '
{"ok":true,"_local_id":"f8fa7b615b4e951d7ab7254ed58d049d+continuous+create_target"}

Dieser Befehl sollte eine Datenbank foo auf dem lokalen Host erstellen und als Quelle die Datenbank db-replica verwenden, die wir bereits zuvor erstellt haben. Wir haben auch die Option kontinuierlich aktiviert, was bedeutet, dass die Datenbank regelmäßig synchronisiert wird, wenn Sie Änderungen an der Quelldatenbank vornehmen, die in diesem Fall db-replica ist. Nachdem Sie diesen Befehl ausgeführt haben, können Sie nach allen verfügbaren Datenbanken suchen

miki@ubuntu-2:~$ curl -X GET localhost:5984/_all_dbs

["_replicator","_users","db-replica","foo"]

Die foo-Datenbank wurde erstellt.

Remote-Replikation

Versuchen wir es jetzt remote, unsere Quelle ist wieder db-replica auf dem Ubuntu-2-Server und unser Ziel wird remote auf unserem Ubuntu-1-Server sein. Es wird eine neue Datenbank erstellt, wenn sie nicht vorhanden ist (Parameter create_target) und es wird das Replikat kontinuierlich für alle Änderungen synchronisieren, sobald sie auftreten.

miki@ubuntu-2:~$ curl -H 'Content-Type: application/json' -X POST http://localhost:5984/_replicate -d ' {"source": "http://localhost:5984/db-replica", "target": "http://192.168.122.223:5984/remotefoo", "create_target": true, "continuous": true} '
{"ok":true,"_local_id":"cf7f6399835a893ab48282cb269eb1ab+continuous+create_target"}

Lassen Sie uns die dbs auf dem Ubuntu-1-Server überprüfen

miki@ubuntu-1:~$ curl -X GET localhost:5984/_all_dbs
["_replicator","_users","dbtest","remotefoo"]

Wir können sehen, wie die Remote-Replikation funktioniert. Falls Sie nur eine einmalige Replikation wünschen, müssten Sie den kontinuierlichen Parameter auf „false“ ändern oder ihn einfach weglassen. Wenn Sie couchDB-Protokolle sehen möchten , Sie finden es im Verzeichnis /var/log/couchdb/couch.log. Sie benötigen sudo- oder root-Rechte, um darauf zuzugreifen, und wenn Sie Protokolle interaktiv ansehen möchten, wird dieser Befehl dies tun

sudo tail -f /var/log/couchdb/couch.log

Schlussfolgerung

Wir sind die grundlegenden Befehle und die Verwendung von CouchDB durchgegangen. Das Erstellen einer neuen Datenbank, das Löschen, die Replikation lokal oder über das Netzwerk erfolgen alle über HTTP-Anforderungen und können in Ihre App codiert werden. Das Überprüfen von Protokollen erfolgt mit dem normalen Befehl tail -f, und wenn eine GUI benötigt wird, haben wir Futon, das intuitiv genug ist, um Ihnen bei allen Aufgaben zu helfen, die Sie in der Befehlszeile nicht bequem genug ausführen können. Das ist alles für diesen Artikel, danke fürs Lesen und guten Tag.


Ubuntu
  1. So richten Sie HAProxy in Ubuntu 16.04 ein

  2. So richten Sie die UFW-Firewall unter Ubuntu 18.04 ein

  3. So richten Sie Elasticsearch unter Ubuntu 18.04 und 16.04 LTS ein

  4. Rsyslog-Server auf Ubuntu 20.04 einrichten - Wie geht das?

  5. So installieren Sie CouchDB unter Ubuntu 20.04

So richten Sie den Git-Server unter Ubuntu 20.04 ein

So richten Sie den Rsyslog-Server unter Ubuntu ein

So richten Sie einen DHCP-Server unter Ubuntu ein

So richten Sie die Netzwerkbindung in Ubuntu 20.04 ein

So installieren Sie Apache CouchDB in Ubuntu 20.04

So richten Sie die UFW-Firewall unter Ubuntu 20.04 ein