MongoDB

Version vom 28. Juni 2012, 12:07 Uhr von Supervisor (Diskussion | Beiträge) (1 Version: Import von alexwiki - alt)

(von "humongous" = gigantisch, enorm, riesig)

Betrieb von Alex und MongoDB

Alex kann ab der Version 7.6.4.1 mit MongoDB's arbeiten. Voraussetzungen:

  • Version > 7.6.4.1
  • 64 bit Betriebssystem für Server oder Standalonebetrieb
    • (Client kann überall laufen)
  • "connectionInfo" im ALEX-Config-File = LOKALER Ordner in der Form ([drive]:/.../)[name].[port].mongo/.
    • zB.: Gültige "connectionInfo" für MongoDB:
      • Kunde.mongo/
      • .mongo/
      • 9000.mongo/
      • Kunde.9000.mongo/
      • C:/AlexDat/Kunde.9000.mongo/
      • D:/AlexDat/Kunde.9000.mongo/
      • C:/AlexDat/Kunde.mongo/
  • im Client-Server Betrieb -> Bfx.Alex.Server == Datenbankserver!
  • Besonderheit [port] im Pfadname
    • im Client Server Betrieb ist ein [port] notwendig damit Sicherung automatisiert werden kann
    • Im reinen Standalone Betrieb ist kein [port] im Pfadname notwendig
    • MongoDB startet eigenes HTTP-Interface mit 'Port' + 1000
    • siehe auch ALEX-Ports

Die Ordnerstruktur einer MongoDB sieht wie folgt aus:

[drive]:/.../[name].[port].mongo/     // Stammverzeichnis = "connectionInfo"
                                /db/  // Datenverzeichnis
                                /log/ // Logverzeichnis

Wenn Alex gestartet wird, wird automatisch das mongod.exe (liegt bei den Alex-Exe) gestartet. Ob dieses exe im Vordergrund oder unsichtbar gestartet wird hängt ab von folgendem:

  • im ALEX-Config-File ist 'showMongod' auf "true" oder "false" gesetzt.
  • im ALEX-Config-File ist bei 'connectionInfo' ein Port angegeben -> mongod.exe läuft im Vordergrund
  • im ALEX-Config-File ist bei 'connectionInfo' kein Port angegeben -> mongod.exe läuft im Hintergrund

Erstellen neuer Datenbanken

Gleiches Vorgehen mit Bfx.Alex.Tools wie Sybase. Siehe Form von "connectionInfo".

Konvertieren bestehender Datenbanken

ALEX-Config-File "convertFrom"

Funktioniert zurzeit nur für Datenbanken ohne 7up

Um eine SQL-Datenbank umzuwandeln, muß man sie im ALEX-Config-File unter (db.)"convertFrom" eintragen.

Die zu erzeugende neue MongoDB gibt man im (db.)"connectionInfo" an.

mit Bfx.Alex.Standalone.exe einsteigen -> Alex konvertiert altes DB-Format in MongoDB-Format.

Richtwert für die Dauer: getestet BitFactory CRM: 600.000 Objekte (= select count(*) from TBfxXObject) -> ca. 10 min

  • 1.000.000 Objekte -> ca. 15 min
  • 2.000.000 Objekte -> ca. 30 min
  • 4.000.000 Objekte -> ca. 60 min
  • 8.000.000 Objekte -> ca. 120 min
  • 16.000.000 Objekte -> ca. 240 min

AKH Linz: ca. 12.000.000 Objekte -> ca. 180 min

MongoDB und Abfragen

MongoDB-Queries

Fehlermeldung nach Konvertierung

"ACHTUNG: \'convertFrom\' -> connectionInfo [drive]:/.../[name].[port].mongo/ nicht leer!"

-> "convertFrom" herauslöschen aus Config-File.

Sicherung

mit mongodump.exe (im Alex Verzeichnis) und 2 mal at-Befehl:

Zwei mal, damit gesichert wird wenn der mongod.exe Prozess läuft und wenn er nicht läuft!

mongodump.exe --host localhost:[port] --out [drive]:/.../[backup]/ 
mongodump.exe --dbpath [drive]:/.../[name].[port].mongo/db/ --out [drive]:/.../[backup]/

Beispiel für tägliche Sicherung um 3 Uhr früh, einzugeben in Eingabeaufforderung:

at 03:00 /every:Mo,Di,Mi,Do,Fr,Sa,So "X:\BitFactory\AlexExe\mongodump.exe" --host localhost:4400 --out X:\BitFactory\Alex.4400.Mongo\backup\
at 03:00 /every:Mo,Di,Mi,Do,Fr,Sa,So "X:\BitFactory\AlexExe\mongodump.exe" --dbpath X:\BitFactory\Alex.4400.Mongo\db\ --out X:\BitFactory\Alex.4400.Mongo\backup\

Mo,Di,Mi,Do,Fr,Sa,So muß je nach Sprache des installierten Windows Betriebssystem umgeändert werden. Englisch: M,T,W,Th,F,S,Su

Sicherung wiederherstellen

  • mit mongorestore.exe (im Alex Verzeichnis)

Die wiederhergestellte Datenbank kann dann mit der vorhandenen ausgetauscht werden.

mongorestore.exe --dbpath [drive]:/.../restore.mongo/db/ [drive]:/.../[backup]/

Administrative Tools von Drittherstellern

MongoExplorer

MongoVUE

Technische Informationen für Interessierte

Song zur MongoDB

MongoDB Home

MongoDB Starting and Stopping

MongoDB Interactive Shell

MongoDB Queries

http://en.wikipedia.org/wiki/MongoDB

http://en.wikipedia.org/wiki/Document-oriented_database