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"

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

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