Benutzer-Werkzeuge

Webseiten-Werkzeuge


nosql:install_oracle_nosql_db_11gr2

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
nosql:install_oracle_nosql_db_11gr2 [2013/09/16 14:33] – [Clonen der Umgebung um die weitern Storage Node zu konfigurieren] gpipperrnosql:install_oracle_nosql_db_11gr2 [2013/09/16 14:38] – [FW Konfiguration plannen, falls FW zwischen den Knoten und der eigentlichen Anwendung] gpipperr
Zeile 1: Zeile 1:
-====== Installation Oracle NoSQL Database 11gR2 (11.2.2.0.39) ====== 
  
-==== Übersicht über die Architektur ==== 
- 
-In der folgenden Übersicht wird von einen Replikationsfaktor von Drei ausgegangen, d.h. es gibt für jede Storage mit seinen jeweiligen zugeordneten Partitionen je zwei "Kopien" die automatisch immer aktuell gehalten werden. 
-Es werden drei physikalische Server eingesetzt. 
- 
-{{ :nosql:oracle_nosql_architektur_uebersicht.png?500 | Übersicht über die Oracle NoSQL Architektur}} 
- 
-  * SN = Storage Node = Physikalischer Rechner mit lokalen Plattenplatz  
-  * SNA = Storage Node Agent = Kontroll Prozess 
-  * KVStore = Das Speicherarray mit den Storage Nodes 
-  * Storage Node Master = Pro Node ein Master (schreibt / ließt) und repliziert mit dem [[http://en.wikipedia.org/wiki/Paxos_%28computer_science%29| Paxos Protokoll]] zu seinen je zwei Replikaten und hat seinen eigenen lokalen Speicherbereich mit seinen ihm zugeteilten Partitionen ( mit eine je anderen Hashkey!) 
-  * Storage Node Replication = Kopie der Daten von einen Storage Node Master für die Ausfallsicherheit 
-  * Replikationsgruppe =Ein Master und min. eine Replika 
- 
- 
- 
- 
-==== Installation ==== 
- 
- 
-Installation einer Oracle NoSQL Datenbank auf drei Oracle Linux 6.4 Server 
- 
-Ablauf: 
-  * Betriebssystem auf den Servern bereitstellen 
-  * Java auf den Servern aufsetzen 
-  * Deploy der Oracle NoSQL Software 
-  * Aufsetzen der Store Struktur  
- 
- 
-=== Download Software === 
- 
-Die benötigte Software: 
-  * [[http://www.oracle.com/technetwork/products/nosqldb/downloads/index.html|Oracle NoSQL Database, Community Edition 11gR2 (11.2.2.0.39)]] 
-  * Oracle Linux 6.4 - Download über [[https://edelivery.oracle.com/EPD/Download/get_form?egroup_aru_number=16064752| edelivery ]] 
-  * Java Kit 7 - Download über [[http://www.oracle.com/technetwork/java/javase/downloads/index.html|Oracle Java SE Downloads ]] 
-    * oder alternativ : Oracle JRockit - Download über [[http://www.oracle.com/technetwork/middleware/jrockit/downloads/index.html | Oracle JRockit Downloads ]] 
- 
- 
-===== Installation Linux Umgebung ===== 
- 
-  * Installation Oracle Linux 6.4 Basis ( Desktop Umgebung nur bei Bedarf)  
-  * Yum Repository prüfen, Konfiguration bei Bedarf anlegen <code bash> 
-# cd /etc/yum.repos.d 
-# wget http://public-yum.oracle.com/public-yum-ol6.repo 
-</code>  
-  * Update mit "yum update" 
-  * SELinux deaktiviert :<code bash> 
-[root@nosqldb01 ~]#  
-vi /etc/selinux/config 
-.. 
-SELINUX=disabled 
-.. 
- 
-[root@nosqldb01 ~]#  reboot 
- 
-[root@nosqldb01  ~]#  getenforce 
- 
-</code> 
-  * Firewall Einstellungen prüfen und je nach Umgebung einstellen! 
-  * Auf die richtige Uhrzeit achten und per ntpd die Zeit auf allen Servern im Store immer richtig einstellen lassen! 
- 
-===Oracle User anlegen=== 
- 
-<code bash> 
-groupadd -g 1000 oinstall 
-useradd -u 1100 -g oinstall oracle 
-passwd oracle 
-</code> 
- 
- 
-===Software Verzeichnis anlegen === 
- 
-<code bash> 
-mkdir -p /opt/oracle 
-chown -R oracle:oinstall /opt/oracle 
-chmod -R 775 /opt/oracle 
-</code> 
- 
-===Java Version prüfen - JDK nach Bedarf installieren === 
-** Als User root! ** 
-\\ 
- 
-Kopieren von jdk-7u25-linux-x64.rpm auf dem Server und installieren/aktivieren. 
-<code bash> 
-# Java installieren 
-yum install  --nogpgcheck jdk-7u25-linux-x64.rpm 
- 
- 
-# Java aktivieren 
-# Neue Java Version dem OS bekannt geben 
-/usr/sbin/alternatives --install /usr/bin/java java /usr/java/jdk1.7.0_25/bin/java 17025 
-# Versionen anzeigen 
-/usr/sbin/alternatives --display java 
-# Version einstellen 
-/usr/sbin/alternatives --config java 
-# testen 
-java -version 
-</code> 
- 
-Alternativ kann auch Oracle JRockit eingesetzt werden, siehe hier als Anleitung [[http://www.oracle-base.com/articles/linux/jrockit-installation-on-linux.php|jrockit Installation Oracle-Base.com]]. 
-\\  
-Für das Oracle Sun JDK ist hier ein hilfreicher Link  [[http://www.gokhanatil.com/2011/07/how-to-installupdate-java-jdk-on-oracle.html|How to Install/Update Java (JDK) on Oracle Linux]] 
- 
-Das Programm jps muss auf dem Server im Pfad liegen/funktionieren, wird vom SNA benötigt! 
- 
-<code bash> 
-jps-m 
- 
-# falls fehler 
-# über /usr/bin verlinken 
-ln -s /usr/java/jdk1.7.0_21/bin/jps /usr/bin/jps 
- 
-</code> 
- 
- 
-===Software auf den Server kopieren und entpacken/installieren === 
-**User Oracle!** 
-\\ 
-Entpacken der Software in das Verzeichnis /opt/oracle/product/11.2.0, damit ist die eigentliche Installation der Software auch schon abgeschlossen. 
- 
-<code bash> 
-mkdir -p /opt/oracle/product/11.2.0/ 
-unzip kv-cc-2.0.39.zip -d /opt/oracle/product/11.2.0/ 
-</code> 
- 
-Umgebungsvariable KVHOME in der Bash setzen und je nach Vorlieben permanent einrichten: 
-<code bash> 
-export KVHOME=/opt/oracle/product/11.2.0/Kv-2.0.39 
-</code> 
- 
-Testen der Installation mit: 
-<code bash> 
-# zeigt die installierte Software Version 
-java -jar $KVHOME/lib/kvclient.jar 
-11gR2.2.0.39 
-</code> 
-==== Anlegen der Storage Location ==== 
-**User Oracle!** 
-\\ 
- 
-Anlegen des KVROOT Verzeichnisses, hier werden später dann die Daten abgelegt. 
- 
-<code bash> 
- 
-mkdir /opt/oracle/kvdata 
- 
-</code> 
- 
-==== Clonen der Umgebung um die weitern Storage Node zu konfigurieren ==== 
- 
-Die bestehende Umgebung stoppen und als Clone Template verwenden um die Hosts 2 und 3 anzulegen 
- 
-Tipp: 
-Daran denken das nach einen Clone einer Linux 6 Maschine die Netzwerkkarten Konfiguration stark verbogen wird, 
-siehe [[http://www.cyberciti.biz/tips/vmware-linux-lost-eth0-after-cloning-image.html|UDEV nach Clone reparieren]] ! 
- 
-Die Namensauflösung zwischen den Knoten prüfen und bei Bedarf die Namen in der hosts Datei eintragen. Darauf achten, dass auch der eigenen Name des Servers richtig aufgelöst wird. 
- 
- 
- 
-==== Boot Konfiguration erstellen ==== 
-** User Oracle auf jeden Knoten ** 
- 
-Vorüberlegungen: 
-Auf welchen Knoten soll der Admin Service laufen - in unserem Beispiel auf Node 1 
- 
- 
-Parameter bestimmen: 
- 
-  * **root** 
-    * KVROOT Verzeichnis für die abzulegenden Daten 
-  * **port** <port> 
-    * TCP/IP Port um den Knoten auf Client aus zu erreichen wie 5000 
-  * **admin** <port> 
-    * TCP/IP Port für die ADMIN Web Console wie 5001 
-  * **harange** <startPort,endPort> 
-    *  Portrange für die interne Kommunikation der Nodes untereinander wie 5010,5020 
-  * **servicerange** <startPort,endPort> 
-    *  Portrange für RMI basierende Dienste 
-  * **capacity** optional 
-    * Wieviele Replication Prozesse können auf diesen Server kaufen 
-  * **storagedir** optional 
-    *  Alternativer Speicherplatz für die Replication Prozesse 
-  * **num_cpus**  
-    *  Wie viele CPU's können die Replication nodes verbrauchen 
-  * **memory_mb**  
-    *  Wie viel Speicher können die Replication nodes verbrauchen 
- 
-Konfiguration anlegen: 
-<code bash> 
-export KVROOT=/opt/oracle/kvdata 
- 
-java -jar $KVHOME/lib/kvstore.jar makebootconfig -root $KVROOT          \ 
-                                                -port 5000              \ 
-                                                -admin 5001             \ 
-                                                -host $HOSTNAME         \ 
-                                                -harange 5010,5020      \ 
-                                                -servicerange 5021,5041 \ 
-                                                -capacity 3             \ 
-                                                -num_cpus 1             \ 
-                                                -memory_mb 500 
-</code> 
- 
- 
- 
-==== Oracle NoSQL Database Storage Node Agent (SNA) starten ==== 
- 
-<code bash> 
-nohup java -jar $KVHOME/lib/kvstore.jar start -root $KVROOT & 
-</code> 
- 
-Logfile prüfen: 
-<code bash> 
-  cd $KVROOT 
-  vi snaboot_0.log 
-</code> 
- 
-Java Prozesse auf der Maschine lassen sich mit jps und jstat [[http://openbook.galileocomputing.de/java7/1507_23_002.html#dodtp2da3a818-4728-47dc-84a7-105c87b85834|Java 7 - Mehr als eine Insel]] auf der Maschine überwachen. Liegen aber normalerweise nicht im Pfad, sondern im Bin Verzeichnis des aktuellen JDK! 
- 
-<code bash> 
-/usr/java/jdk1.7.0_21/bin/jps -v 
- 
-2033 kvstore 
-... 
- 
-/usr/java/jdk1.7.0_21/bin/jstat -gcutil <java prozessnummer von obiger Ausgabe> 
- 
-</code> 
- 
- 
- 
-Connect prüfen: 
-<code bash> 
-java -jar $KVHOME/lib/kvstore.jar ping -port 5000 -host $HOSTNAME 
- 
-SNA at hostname: nosqldb01, registry port: 5000 is not registered 
-No further information is available 
-</code> 
- 
-Die Meldung zeigt uns, dass zwar ein SNA Prozess auf dem Knoten schon läuft, diese aber noch nicht konfiguriert ist. 
- 
-Diese Konfiguration auf den beiden anderen Servern anlegen und über den Host Parameter vom obigen ping Kommando testen ob alle SNA Nodes erreichbar sind. 
- 
-Damit ist die Grundinstallation der Oracle NoSQL Umgebung abgeschlossen. 
- 
-===Um SNA wieder zu stoppen === 
-<code bash> 
- java -jar $KVHOME/lib/kvstore.jar stop -root $KVROOT  
-</code> 
- 
- 
-=== Autostart einrichten === 
- 
-Autostart über init.d Mechanismus einrichten. 
- 
-Beispiel: 
-<code bash nosql> 
-#!/bin/bash 
-# 
-# Run-level Startup script NoSQL 
-# 
-# chkconfig: 2345 08 92 
-# description:  Starts, stops Oracle NoSQL 
-# 
-# 
-### BEGIN INIT INFO 
-# Provides: OracleNoSQLKVStore 
-# Required-Start: 
-# Required-Stop: 
-# Default-Start: 2 3 4 5 
-# Default-Stop: 0 1 6 
-# Short-Description: start and stop OracleNoSQLKVStore 
-# Description: Start, stop and save OracleNoSQLKVStore 
-### END INIT INFO 
- 
- 
-# Source function library. 
-. /etc/init.d/functions 
- 
-ORACLE_USER=oracle 
-KVHOME=/opt/oracle/produkt/11.2.0/kv-2.0.39 
-KVROOT=/opt/oracle/kvdata/ 
- 
-#Start or stop the Oracle NoSQL Node 
-case "$1" in 
-    start) 
-        # Oracle NoSQL start 
-        echo -n "Starting Oracle: " 
-        su - $ORACLE_USER -c "nohup java -jar $KVHOME/lib/kvstore.jar start -root $KVROOT > /tmp/nohup.out 2>&1 &" 
-        echo "OK" 
-        ;; 
-    stop) 
-        # Oracle Nosql shutdown 
-        echo -n "Shutdown Oracle: " 
-        su - $ORACLE_USER -c "java -jar $KVHOME/lib/kvstore.jar stop -root $KVROOT" 
-        echo "OK" 
-        ;; 
-    status) 
-        # status 
-        echo -n "Status Oracle: " 
-        jps -m | grep kv 
-        ;;      
-    reload|restart) 
-        $0 stop 
-        $0 start 
-        ;; 
-    *) 
-        echo "Usage: $0 start|stop|restart|reload|status" 
-        exit 1 
-esac 
-exit 0 
-</code> 
- 
-Start Script einrichten: 
-<code bash> 
-# datei nach /etc/init.d/nosql 
- 
-# rechte 
-chmod 777 /etc/init.d/nosql 
- 
- 
-chkconfig  --add nosql 
- 
-# 
-chkconfig  | grep nosql 
- 
-</code> 
- 
-==== KV Store einrichten und konfigurieren ==== 
- 
-Die Administration der Umgebung erfolgt über ein Kommando Zeilen Werkzeug. 
- 
-Aufruf: 
-<code bash> 
-java -jar $KVHOME/lib/kvstore.jar runadmin -port 5000 -host $HOSTNAME  
- 
-Kv->  
- 
-</code> 
- 
- 
-Ablauf: 
-  * SNA müssen alle gestartet sein ( mit der Installation erfolgt) 
-  * KV Store einen Namen vergeben 
-  * Data Center anlegen 
-  * Admin Prozess auf einen Knoten anlegen 
-  * Storage Node Pool anlegen 
-  * Weitere Storage Knoten hinzufügen 
-  * Erzeugen und Verteilen der Replication Nodes 
- 
- 
- 
-=== KV Store einen Namen vergeben === 
- 
-Komandozeilen Werkzeug starten und mit dem Befehl „configure -name <NAME DER DATENBANK> „ einen Store Namen vergeben 
-<code bash> 
-Kv-> configure -name GPIDB 
-Store configured: GPIDB 
-</code> 
- 
-=== Data Center anlegen === 
- 
- 
-Ein Store kann nur ein Data Center enthalten und wird mit dem Befehl "plan deploy-datacenter" erstellt. 
-Mit -wait wartet die Console auf der Ergebnis des Befehls. 
- 
- 
-Parameter: 
-  * name  
-    * datacenter name - eindeutiger Name der Systemumgebung 
-  * rf 
-    * replication factor  - weiviele relicate der Daten sollen gehalten werden - bei uns 3 
- 
- 
-Ablauf: 
-<code bash> 
-kv-> plan deploy-datacenter -name jupiter -rf 3 -wait 
-Executed plan 1, waiting for completion... 
-Plan 1 ended successfully 
-</code> 
- 
-Ergebnis anzeigen lassen: 
-<code bash> 
-kv-> show plans 
-1 Deploy Datacenter (1) SUCCEEDED  
-</code> 
- 
- 
-=== Admin Prozess auf einen Knoten anlegen === 
- 
-Jeder KVStore hat eine administrative Datenbank. Auf dem Knoten der die Admin Datenbank halten soll, mit dem Kommandozeilen Werkzeug anmelden und dort mit den Befehlen deploy-sn und deploy-admin die administrative DB anlegen. 
- 
-Umgebung (topology) anzeigen lassen: 
- 
-<code bash> 
-kv-> show topology 
-store=GPIDB numPartitions=0 sequence=1 
-dc=[dc1] name=jupiter repFactor=3  
-</code> 
- 
-Für den deploy-sn Befehl benötigen wir die obigen Ausgaben, wir fügen im ersten Schritt den Node hinzu: 
-<code bash> 
-kv-> plan deploy-sn -dc dc1 -host nosqldb01 -port 5000 -wait 
-Executed plan 2, waiting for completion... 
-Plan 2 ended successfully 
- 
-kv->show topology 
- 
-# => zeigt nun den ersten Node mit an 
- 
-</code> 
- 
-Nach dem Hinzufügen des ersten Knoten können wir hier den administrativen Prozess konfigurieren. 
- 
- 
-<code bash> 
-kv-> plan deploy-admin -sn sn1 -port 5001 -wait 
-Executed plan 3, waiting for completion... 
-Plan 3 ended successfully 
-</code> 
- 
- 
-Für das Einrichten der Umgebung bzw. für unsere drei Knoten Test Umgebung ist das nun ausreichend, für produktive Umgebungen empfiehlt Oracle bis zu 3 administrative Services zu verwenden. 
- 
- 
-=== Storage Node Pool anlegen === 
- 
-Der Storage Node Pool enthält unser 3 Hosts als Storage Knoten. 
-Mit "pool create" wird der Pool angelegt, mit "pool join" werden die Knoten hinzugefügt werden. 
- 
-<code bash> 
- 
-kv-> pool create -name JupiterPool 
- 
-kv-> show topology 
-dc=[dc1] name=Jupiter 
- sn=[sn1]  dc=dc1 nosqldb01:5000 status=UNREPORTED 
- 
- 
-kv-> pool join -name JupiterPool -sn sn1 
-Added Storage Node sn1 to pool JupiterPool 
- 
-</code> 
- 
-===Weitere Storage Knoten hinzufügen=== 
- 
-Nun können die beiden anderen Knoten dem System hinzugefügt werden. 
-Hinzufügen eines Hosts mit "plan deploy-sn", anzeigen der System mit "show topology", hinzufügen zum Pool mit "pool join", anzeigen des Pools mit "show pool". 
- 
- 
-<code bash> 
-kv-> plan deploy-sn -dc dc1 -host nosqldb02 -port 5000 -wait 
-Executed plan 4, waiting for completion... 
-Plan 4 ended successfully 
- 
-kv-> pool join -name JupiterPool-sn sn2 
-Added Storage Node sn2 to pool JupiterPool 
- 
- 
-kv->  plan deploy-sn -dc dc1 -host nosqldb03 -port 5000 -wait 
-Executed plan 5, waiting for completion... 
-Plan 5 ended successfully 
- 
-kv-> pool join -name JupiterPool-sn sn3 
-Added Storage Node sn3 to pool JupiterPool 
- 
-</code> 
- 
-=== Erzeugen und Verteilen der Replication Nodes === 
- 
-Im letzten Schritt werden die Replication Nodes für die "Kopien" der Daten erstellt. 
-Dazu wird der Befehl "topology create" verwendet. 
- 
-Parameter: 
-  * topology name  - Name für die Topologie 
-  * pool name      - Name des Pools  
-  * number of partitions  - Anzahl der Partitionen 
- 
- 
-Ein wichtiger Wert ist hier die Anzahl der Partitionen. 
-Faustformel: (Total number of disks hosted by the storage nodes  /  Replication Factor) * 10 
-Genauer siehe [[http://docs.oracle.com/cd/NOSQL/html/AdminGuide/estimate-total-shards-and-machines.html#num-partitions|Number of Partitions]] 
- 
-<code bash> 
-kv-> topology create -name GPItopo -pool JupiterPool-partitions 300 
-Created: GPItopo 
- 
-kv-> plan deploy-topology -name GPItopo -wait 
-Executed plan 6, waiting for completion... 
-Plan 6 ended successfully 
- 
-</code> 
- 
- 
-Mit dem Kommando "show plans" prüfen ob alles geklappt hat. 
- 
-=== Skripten === 
- 
-Die Befehle lassen sich auch in einem Script bündeln und gemeinsam ausführen, in der Kommandoshell mit dem Befehl "load -file <path to file>" aufrufen oder als Parameter von "java -jar KVHOME/lib/kvstore.jar runadmin -port 5000 -host node01 load -file <path to file>". 
- 
-=== Test der Umgebung === 
- 
-Ping auf die Storage Knoten: 
- 
-<code bash> 
-java -jar $KVHOME/lib/kvstore.jar ping -port 5000 -host nosqldb01 
-</code> 
- 
- 
-Umgebung mit verify überprüfen: 
- 
-<code bash> 
- 
-java -jar KVHOME/lib/kvstore.jar runadmin -port 5000 -host $HOSTNAME 
-kv-> verify 
- 
-</code> 
- 
-== Im Browser Status prüfen == 
- 
-Aufruf der Admin Console im Browser über den Server Namen und den Admin Port 5001 
- 
-Aufruf über den Browser: 
-{{:nosql:admin_overview_nosql.png?300 |Admin Übersicht Oracle NoSQL}} 
- 
-Leider nicht Passwort geschützt! 
- 
- 
-=== Löschen einer Umgebung === 
- 
-Um eine Umgebung zurückzusetzen muss auf jeden Knoten alles gestoppt und der KVROOT gelöscht werden. 
- 
-<code bash> 
-java -jar $KVHOME/lib/kvstore.jar stop -root $KVROOT  
- 
-rm -r $KVROOT  
-</code> 
-==== Quellen ==== 
- 
-  * http://www.oracle.com/technetwork/products/nosqldb/overview/index.html 
-  * http://docs.oracle.com/cd/NOSQL/html/AdminGuide/index.html 
nosql/install_oracle_nosql_db_11gr2.txt · Zuletzt geändert: 2014/06/06 14:58 von gpipperr