Benutzer-Werkzeuge

Webseiten-Werkzeuge


nosql:install_oracle_nosql_db_11gr2

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.

 Ü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 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
  • FW Konfiguration plannen, falls FW zwischen den Knoten und der eigentlichen Anwendung
  • Java auf den Servern aufsetzen
  • Deploy der Oracle NoSQL Software
  • Aufsetzen der Store Struktur

Download Software

Die benötigte Software:

Installation Linux Umgebung

  • Installation Oracle Linux 6.4 Basis ( Desktop Umgebung nur bei Bedarf)
  • Yum Repository prüfen, Konfiguration bei Bedarf anlegen
    # cd /etc/yum.repos.d
    # wget http://public-yum.oracle.com/public-yum-ol6.repo
  • Update mit „yum update“
  • SELinux deaktiviert :
    [root@nosqldb01 ~]# 
    vi /etc/selinux/config
    ..
    SELINUX=disabled
    ..
     
    [root@nosqldb01 ~]#  reboot
     
    [root@nosqldb01  ~]#  getenforce
  • 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

groupadd -g 1000 oinstall
useradd -u 1100 -g oinstall oracle
passwd oracle

Software Verzeichnis anlegen

mkdir -p /opt/oracle
chown -R oracle:oinstall /opt/oracle
chmod -R 775 /opt/oracle

Java Version prüfen - JDK nach Bedarf installieren

Als User root!

Kopieren von jdk-7u25-linux-x64.rpm auf dem Server und installieren/aktivieren.

# 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

Alternativ kann auch Oracle JRockit eingesetzt werden, siehe hier als Anleitung jrockit Installation Oracle-Base.com.
Für das Oracle Sun JDK ist hier ein hilfreicher Link 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!

jps-m
 
# falls fehler
# über /usr/bin verlinken
ln -s /usr/java/jdk1.7.0_21/bin/jps /usr/bin/jps

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.

mkdir -p /opt/oracle/product/11.2.0/
unzip kv-cc-2.0.39.zip -d /opt/oracle/product/11.2.0/

Umgebungsvariable KVHOME in der Bash setzen und je nach Vorlieben permanent einrichten:

export KVHOME=/opt/oracle/product/11.2.0/Kv-2.0.39

Testen der Installation mit:

# zeigt die installierte Software Version
java -jar $KVHOME/lib/kvclient.jar
11gR2.2.0.39

Anlegen der Storage Location

User Oracle!

Anlegen des KVROOT Verzeichnisses, hier werden später dann die Daten abgelegt.

mkdir /opt/oracle/kvdata

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 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.

FW Konfiguration plannen, falls FW zwischen den Knoten und der eigentlichen Anwendung

Soll eine FW den Zugriff zwischen den Store und der Applikation kontrollieren, sind die folgenden Regeln zu beachten: Oracle NoSQL Netzwerk Konfiguration.

Der Client/Applikation Server, der mit dem Store arbeiten soll, muss auf JEDEN Knoten des Store über den passenden Port zugreifen können!

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:

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

Update V3! Für die Version 3 ist nun auch der Parameter -store-security anzugeben, soll der Store sich wie in der Version 2 verhalten mit dem Wert „none“.

Oracle NoSQL Database Storage Node Agent (SNA) starten

nohup java -jar $KVHOME/lib/kvstore.jar start -root $KVROOT &

Logfile prüfen:

  cd $KVROOT
  vi snaboot_0.log

Java Prozesse auf der Maschine lassen sich mit jps und jstat Java 7 - Mehr als eine Insel auf der Maschine überwachen. Liegen aber normalerweise nicht im Pfad, sondern im Bin Verzeichnis des aktuellen JDK!

/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>

Connect prüfen:

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

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

 java -jar $KVHOME/lib/kvstore.jar stop -root $KVROOT 

Autostart einrichten

Autostart über init.d Mechanismus einrichten.

Beispiel:

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

Start Script einrichten:

# datei nach /etc/init.d/nosql
 
# rechte
chmod 777 /etc/init.d/nosql
 
# 
chkconfig  --add nosql
 
#
chkconfig  | grep nosql

KV Store einrichten und konfigurieren

Die Administration der Umgebung erfolgt über ein Kommando Zeilen Werkzeug.

Aufruf:

java -jar $KVHOME/lib/kvstore.jar runadmin -port 5000 -host $HOSTNAME 
 
Kv->

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

Kv-> configure -name GPIDB
Store configured: GPIDB

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:

kv-> plan deploy-datacenter -name jupiter -rf 3 -wait
Executed plan 1, waiting for completion...
Plan 1 ended successfully

Ergebnis anzeigen lassen:

kv-> show plans
1 Deploy Datacenter (1) SUCCEEDED 

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:

kv-> show topology
store=GPIDB numPartitions=0 sequence=1
dc=[dc1] name=jupiter repFactor=3 

Für den deploy-sn Befehl benötigen wir die obigen Ausgaben, wir fügen im ersten Schritt den Node hinzu:

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

Nach dem Hinzufügen des ersten Knoten können wir hier den administrativen Prozess konfigurieren.

kv-> plan deploy-admin -sn sn1 -port 5001 -wait
Executed plan 3, waiting for completion...
Plan 3 ended successfully

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.

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

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“.

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

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 Number of Partitions

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

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>“.

Siehe auch:Oracle NoSQL Installation automatisieren

Test der Umgebung

Ping auf die Storage Knoten:

java -jar $KVHOME/lib/kvstore.jar ping -port 5000 -host nosqldb01

Umgebung mit verify überprüfen:

java -jar KVHOME/lib/kvstore.jar runadmin -port 5000 -host $HOSTNAME
kv-> verify
Im Browser Status prüfen

Aufruf der Admin Console im Browser über den Server Namen und den Admin Port 5001

Aufruf über den Browser: 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.

java -jar $KVHOME/lib/kvstore.jar stop -root $KVROOT 
 
rm -r $KVROOT 

Quellen

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
"Autor: Gunther Pipperr"
nosql/install_oracle_nosql_db_11gr2.txt · Zuletzt geändert: 2014/06/06 14:58 von Gunther Pippèrr