nosql:administration_oracle_nosql_db_11gr2
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
nosql:administration_oracle_nosql_db_11gr2 [2013/06/16 21:55] – [Daten wieder einspielen] gpipperr | nosql:administration_oracle_nosql_db_11gr2 [2014/06/21 19:35] – [Administration der Oracle NoSQL Database 11gR2 (1) - Backup und Recovery] gpipperr | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Administration der Oracle NoSQL Database 11gR2 (1) - Backup und Recovery | ||
+ | |||
+ | Oft wird in der NoSQL Welt das Thema Backup sehr stiefmütterlich behandelt, mit der Begründung „bei genügend Server Knoten kann ja bei einem Ausfall nichts passieren“, | ||
+ | |||
+ | |||
+ | |||
+ | Die Verwaltung der Umgebung erfolgt über das Kommandozeilen Werkzeug. | ||
+ | |||
+ | |||
+ | Aufruf mit: | ||
+ | |||
+ | <code bash> | ||
+ | |||
+ | java -jar $KVHOME/ | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== Backup des Store ==== | ||
+ | |||
+ | Mit Hilfe des Snapshot Kommando (snapshot create -name < | ||
+ | |||
+ | Ablauf einer Sicherung: | ||
+ | * Snapshot erzeugen | ||
+ | * Daten von $KVROOT/< | ||
+ | * im Prinzip würden auch jeweilige Master auf den Knoten ausreichen. | ||
+ | * Snapshot löschen | ||
+ | |||
+ | Beispiel: | ||
+ | <code bash> | ||
+ | |||
+ | # Anlegen | ||
+ | kv-> snapshot create -name freitag_14_06_2013 | ||
+ | Created snapshot named 130614-123305-freitag_14_06_2013 | ||
+ | |||
+ | # Was für Snapshots existieren | ||
+ | kv-> show snapshot | ||
+ | |||
+ | #Löschen | ||
+ | kv-> snapshot remove -name 130614-123305-freitag_14_06_2013 | ||
+ | Removed snapshot 130614-123305-freitag_14_06_2013 | ||
+ | |||
+ | </ | ||
+ | |||
+ | === Konfiguration eines SN sichern === | ||
+ | |||
+ | Fällt die Hardware eines SN komplett aus, ist es hilfreich eine Sicherungskopie der SN Konfiguration des Nodes zuvor erstellt zu haben. | ||
+ | |||
+ | Befehl: | ||
+ | <code bash> | ||
+ | java -jar KVHOME/ | ||
+ | </ | ||
+ | |||
+ | Mit der erzeugen Datei, in unseren Beispiel " | ||
+ | |||
+ | |||
+ | Ablauf um einen kompletten Node wieder neu anzulegen: | ||
+ | * Neuen Host gleich wie alten Host konfigurieren (IP/ | ||
+ | * Auf den neuen Host $KVROOT anlegen | ||
+ | * Zip File aus dem Config Backup auf den neuen host in $KVROOT auspacken | ||
+ | * SN neu starten | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Restore eines Stores ===== | ||
+ | |||
+ | Für den Restore stehen zwei Möglichkeiten zur Verfügung, den Snapshot direkt wieder einspielen oder die Daten erneut laden. | ||
+ | |||
+ | ====Snapshot direkt wieder einspielen==== | ||
+ | |||
+ | Die Topologie hat sich nicht verändert d.h. alle Knoten sind unverändert konfiguriert und online! | ||
+ | Nur dann lassen die direkt die Snapshots wieder einspielen! | ||
+ | |||
+ | |||
+ | Ablauf: | ||
+ | |||
+ | * Verzeichnis restore anlegen in $KVROOT/< | ||
+ | * Snapshot in das Recovery Verzeichnis verschieben auf dem der passende Storage Node läuft | ||
+ | * Storage Node neu starten, beim Start erkennt der Node die Snapshot Dateien zum Recovery | ||
+ | |||
+ | === Test 1 - Restore eines Nodes === | ||
+ | |||
+ | Beispiel: | ||
+ | |||
+ | <code bash> | ||
+ | # Verzeichnis anlegen | ||
+ | mkdir $KVROOT/ | ||
+ | |||
+ | #snapshot daten dahin verschieben | ||
+ | mv $KVROOT/ | ||
+ | |||
+ | |||
+ | # Service stoppen | ||
+ | java -jar $KVHOME/ | ||
+ | |||
+ | # Starten | ||
+ | nohup java -jar $KVHOME/ | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | Ein erster Test war allerdings nicht so recht erfolgreich, | ||
+ | |||
+ | |||
+ | === Test 2 - gesamten Store zurücksetzen === | ||
+ | |||
+ | Ablauf: | ||
+ | * Snapshot angelegt | ||
+ | * Daten im Store " | ||
+ | * Store komplett gestoppt | ||
+ | * alle Recovery Verzeichnisse auf allen Knoten auf Snapshot verlinkt | ||
+ | * Store wieder gestartet | ||
+ | |||
+ | Im zweiten Test wird auf allen Knoten in den SN Verzeichnissen recovery auf das snapshot Verzeichnis gelinkt um beim Neustart der Knoten die alten Daten wieder einzulesen. | ||
+ | |||
+ | |||
+ | <code bash> | ||
+ | # Admin Konsole starten | ||
+ | java -jar $KVHOME/ | ||
+ | |||
+ | # Snapshot anlegen | ||
+ | kv-> snapshot create -name sonntag | ||
+ | Created snapshot named 130616-183718-sonntag on all 10 nodes | ||
+ | |||
+ | # Sequence Nummer aus Ping merken: | ||
+ | java -jar $KVHOME/ | ||
+ | #wie | ||
+ | Rep Node [rg1-rn3] | ||
+ | Rep Node [rg2-rn3] | ||
+ | Rep Node [rg3-rn3] | ||
+ | |||
+ | |||
+ | # Daten über Testprogramm löschen | ||
+ | |||
+ | # Auf allen Knoten Store stoppen | ||
+ | java -jar $KVHOME/ | ||
+ | |||
+ | |||
+ | # Auf allen Knoten!! | ||
+ | # wie hier auf 1! | ||
+ | cd $KVROOT/ | ||
+ | ln -s snapshots/ recovery | ||
+ | cd $KVROOT/ | ||
+ | ln -s snapshots/ recovery | ||
+ | cd $KVROOT/ | ||
+ | ln -s snapshots/ recovery | ||
+ | |||
+ | # Auf allen Knoten die Dienste neu starten | ||
+ | nohup java -jar $KVHOME/ | ||
+ | |||
+ | # Warten bis Store wieder online | ||
+ | java -jar $KVHOME/ | ||
+ | |||
+ | # Sequence Nummer sind nun zurück gesetzt: | ||
+ | |||
+ | Rep Node [rg1-rn3] | ||
+ | Rep Node [rg2-rn3] | ||
+ | Rep Node [rg3-rn3] | ||
+ | |||
+ | |||
+ | # Anzahl der Daten im Store mit Testprogramm prüfen: | ||
+ | # > Daten sind wieder da! | ||
+ | |||
+ | # alle Recovery Links wieder entfernen | ||
+ | cd $KVROOT/ | ||
+ | unlink recovery | ||
+ | #usw. (darauf achten das beim unlink | ||
+ | |||
+ | </ | ||
+ | |||
+ | Mit diesem Ablauf ließ sich der Store wieder komplett auf den Snapshot Punkt zurücksetzen. | ||
+ | |||
+ | **!!Achtung!!** \\ | ||
+ | !!Der Snapshot wird mit dieser Methode automatisch gelöscht!! | ||
+ | |||
+ | === Quelle === | ||
+ | |||
+ | siehe Doku : http:// | ||
+ | |||
+ | ==== 3. Daten wieder einspielen ==== | ||
+ | |||
+ | Mit dem Lade Programm " | ||
+ | |||
+ | |||
+ | Verwendung: | ||
+ | < | ||
+ | java -jar KVHOME/ | ||
+ | | ||
+ | | ||
+ | -host < | ||
+ | -port < | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Parameter: | ||
+ | |||
+ | * -source < | ||
+ | * -store < | ||
+ | * -host < | ||
+ | * -port < | ||
+ | * -status < | ||
+ | |||
+ | Beispiel: | ||
+ | |||
+ | |||
+ | |||
+ | <code bash> | ||
+ | |||
+ | java -jar $KVHOME/ | ||
+ | |||
+ | Load succeeded, wrote 2818 records | ||
+ | |||
+ | |||
+ | java -jar $KVHOME/ | ||
+ | |||
+ | Load succeeded, wrote 2902 records | ||
+ | |||
+ | |||
+ | java -jar $KVHOME/ | ||
+ | |||
+ | Load succeeded, wrote 2780 records | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | Nach dem laden ALLER Snapshots der drei SN sind ALLE Daten wieder da. \\ | ||
+ | Alle Daten werden geladen und für existierende Schlüssel die Values überschrieben. | ||
+ | |||
+ | |||
+ | === Quelle === | ||
+ | |||
+ | http:// | ||
+ | |||
nosql/administration_oracle_nosql_db_11gr2.txt · Zuletzt geändert: 2014/06/21 19:36 von gpipperr