MongoDB

(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
    • 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' gesetzt -> mongod.exe läuft im Vordergrund
  • 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"

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 -> der angegebene Ornder wird automatisch erzeugt und darf NICHT zuvor händisch im WindowsExplorer angelegt werden.

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

Alex-V7.7-Sybase-DB mit 1,8 GB: nur 1.648.741 Objekte -> ca. 210 min!

MongoDB und Abfragen

MongoDB-Queries

Fehlermeldung nach Konvertierung

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

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


Log-File "Bfx.Alex.MongoConverter.Client.log" durchschauen ob [error] vorhanden.

-> Falls Ja und nicht selbsterklärend, bei Kollegen nachfragen.


genauer Ablauf bei Umstellung: Mongo - Umstellung

Sicherung

Bei einer V7.7 .mongo Datenbank muss folgendes .bat File eingerichtet werden:

C:\Alex7.7\mongodump.exe --host 127.0.0.1:9000 --out C:\AlexDat\Kunde.9000.mongo\backup
C:\Alex7.7\mongodump.exe --dbpath C:\AlexDat\Kunde.9000.mongo\db --out C:\AlexDat\Kunde.9000.mongo\backup

Zusätzlich muss eine interaktive Aufgabenplanung erstellt werden.

ab V7.8

Alex-Server sichert automatisch jeden Tag um 3 Uhr früh in den "backup" Unterordner.

Dieser "backup"-Ordner wird autom. in eine ".bfx_BACKUP"-Datei gezippt - diese wird neben dem "backup"-Ordner abgelegt.

-> Alle ".bfx_BACKUP"-Datei müssen vom Kunden täglich weggesichert werden. (Es gibt maximal 7 Stück davon, für jeden Wochentag eine.)

Dazu muß der Mongo-Server Port im Mongo-Pfad codiert werden!

siehe auch: ALEX-Ports Mongo-Server Port

Beispiel:

C:\BitFactory\AlexDat\Kunde.1234.mongo
                             ^
                             |
                            Port (darf nicht mit anderen Ports kollidieren)

Sicherung wiederherstellen

Die wiederhergestellte Datenbank kann dann mit der vorhandenen ausgetauscht werden.

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