MongoDB: Unterschied zwischen den Versionen

 
K (Orthografie- und Grammatik-Korrekturen durch Praktikant MichaelH (26 July 2022))
 
(42 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 3: Zeile 3:
= Betrieb von Alex und [http://www.mongodb.org MongoDB] =
= Betrieb von Alex und [http://www.mongodb.org MongoDB] =


Alex kann ab der Version [[7.6.x|7.6.4.1]] mit MongoDB's arbeiten.
Alex kann ab der Version [[7.6.x|7.6.4.1]] mit MongoDBs arbeiten.
Voraussetzungen:
Voraussetzungen:
* Version > 7.6.4.1
* Version > 7.6.4.1
Zeile 9: Zeile 9:
** (Client kann überall laufen)
** (Client kann überall laufen)
* "connectionInfo" im [[ALEX-Config-File]] = LOKALER Ordner in der Form ([drive]:/.../)'''[name].[port].mongo/'''.
* "connectionInfo" im [[ALEX-Config-File]] = LOKALER Ordner in der Form ([drive]:/.../)'''[name].[port].mongo/'''.
** zB.: Gültige "connectionInfo" für MongoDB:
** z.B.: Gültige "connectionInfo" für MongoDB:
*** Kunde.mongo/
*** Kunde.mongo/
*** .mongo/
*** .mongo/
Zeile 19: Zeile 19:
* im Client-Server Betrieb -> '''Bfx.Alex.Server == Datenbankserver!'''
* im Client-Server Betrieb -> '''Bfx.Alex.Server == Datenbankserver!'''
* Besonderheit [port] im Pfadname
* Besonderheit [port] im Pfadname
** im Client Server Betrieb ist ein [port] notwendig damit Sicherung automatisiert werden kann
** im Client Server Betrieb ist ein [port] notwendig, damit Sicherung automatisiert werden kann
** Im reinen Standalone Betrieb ist kein [port] im Pfadname notwendig
** Im reinen Standalone Betrieb ist kein [port] im Pfadname notwendig
** MongoDB startet eigenes HTTP-Interface mit 'Port' + 1000
** siehe auch [[ALEX-Ports]]
** siehe auch [[ALEX-Ports]]


Zeile 30: Zeile 29:
                                 /log/ // Logverzeichnis
                                 /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:
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 von Folgendem ab:
* im [[ALEX-Config-File]] ist 'showMongod' auf "true" oder "false" gesetzt.
* 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' 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
* im ALEX-Config-File ist bei 'connectionInfo' kein Port angegeben -> mongod.exe läuft im Hintergrund
Zeile 43: Zeile 42:
=== [[ALEX-Config-File]] "convertFrom" ===
=== [[ALEX-Config-File]] "convertFrom" ===


'''Funktioniert zurzeit nur für Datenbanken ohne 7up'''
Um eine '''SQL-Datenbank umzuwandeln''', muss man sie im [[ALEX-Config-File]] unter '''(db.)"convertFrom"''' eintragen.


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 Ordner wird automatisch erzeugt und darf NICHT zuvor händisch im WindowsExplorer angelegt werden.
 
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.  
mit Bfx.Alex.Standalone.exe einsteigen -> Alex konvertiert altes DB-Format in MongoDB-Format.  
Zeile 60: Zeile 57:
* 16.000.000 Objekte -> ca. 240 min
* 16.000.000 Objekte -> ca. 240 min


AKH Linz: ca. 12.000.000 Objekte -> ca. 180 min
Kundendatenbank / Kunde mit knapp 4.000 Mitarbeitern: 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 und Abfragen ===
[[MongoDB-Queries]]
[[Intern:MongoDB-Queries|MongoDB-Queries]]
 
=== Mögliche Fehlermeldungen ===
'''Fehlermeldung nach Konvertierung:'''


=== Fehlermeldung nach Konvertierung ===


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


-> '''"convertFrom" herauslöschen''' aus Config-File.
-> '''"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.
'''Fehlermeldung beim Einstieg:'''
für ältere Serverbetriebssysteme < Windows 2008 R2 kann die Mongoinstallation übersteuert werden.
dazu einfach https://s3.amazonaws.com/downloads.bitfactory.at/%23legacy%23.zip in den exe Ordner extrahieren und mind. Version 7.8.6.31 einspielen
(aufgefallen Altenhof)
Ordnerstruktur muss sein:
exe\#legacy#\mongod.exe
            \mongo.exe
            \mongorestore.exe
            \mongodump.exe
'''genauer Ablauf bei Umstellung:''' [[Mongo - Umstellung]]


== Sicherung ==
== Sicherung ==
'''ab V7.8'''
Alex-Server sichert automatisch jeden Tag um 3 Uhr früh in den "backup" Unterordner.


mit mongodump.exe (im Alex Verzeichnis) und 2 mal [http://support.microsoft.com/kb/313565 at-Befehl]:
Dieser "backup"-Ordner wird autom. in eine ".bfx_BACKUP"-Datei gezippt - diese wird neben dem "backup"-Ordner abgelegt.


Zwei mal, damit gesichert wird wenn der mongod.exe Prozess läuft und wenn er nicht läuft!
-> Alle ".bfx_BACKUP"-Datei müssen vom Kunden täglich weggesichert werden. (Es gibt immer nur die Sicherung vom letzten Tag.)


mongodump.exe --host localhost:[port] --out [drive]:/.../[backup]/
'''Dazu muss der Mongo-Server Port im Mongo-Pfad codiert werden!'''
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:
siehe auch: [[ALEX-Ports]] Mongo-Server Port


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\
Beispiel:
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
C:\BitFactory\AlexDat\Kunde.1234.mongo
                              ^
                              |
                            Port (darf nicht mit anderen Ports kollidieren)


== Sicherung wiederherstellen ==
== Sicherung wiederherstellen ==


* mit [[Bfx.Alex.RestoreMongo.exe]] oder
* mit [[Bfx.Alex.RestoreMongo.exe]]
* mit Rechtsklick auf eine *.bfx_BACKUP-Datei
 
Die wiederhergestellte Datenbank kann dann mit der vorhandenen ausgetauscht werden.
 
== Datenbank reparieren ==


* mit mongorestore.exe (im Alex Verzeichnis)
* z.B.: manchmal notwendig bei Problemen von Upgrade "alte" 7.8 auf neueste 7.8
> mongod.exe --dbPath C:\Bitfactory\AlexDat\_.9000.mongo\db --repair


Die wiederhergestellte Datenbank kann dann mit der vorhandenen ausgetauscht werden.


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


== Administrative Tools von Drittherstellern ==
== Administrative Tools von Drittherstellern ==

Aktuelle Version vom 26. Juli 2022, 11:47 Uhr

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

Betrieb von Alex und MongoDB

Alex kann ab der Version 7.6.4.1 mit MongoDBs 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/.
    • z.B.: 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 von Folgendem ab:

  • 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, muss man sie im ALEX-Config-File unter (db.)"convertFrom" eintragen.

Die zu erzeugende neue MongoDB gibt man im (db.)"connectionInfo" an -> der angegebene Ordner 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

Kundendatenbank / Kunde mit knapp 4.000 Mitarbeitern: 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

Mögliche Fehlermeldungen

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.


Fehlermeldung beim Einstieg:

für ältere Serverbetriebssysteme < Windows 2008 R2 kann die Mongoinstallation übersteuert werden. dazu einfach https://s3.amazonaws.com/downloads.bitfactory.at/%23legacy%23.zip in den exe Ordner extrahieren und mind. Version 7.8.6.31 einspielen (aufgefallen Altenhof) Ordnerstruktur muss sein:

exe\#legacy#\mongod.exe
            \mongo.exe
            \mongorestore.exe
            \mongodump.exe

genauer Ablauf bei Umstellung: Mongo - Umstellung

Sicherung

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 immer nur die Sicherung vom letzten Tag.)

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

Datenbank reparieren

  • z.B.: manchmal notwendig bei Problemen von Upgrade "alte" 7.8 auf neueste 7.8
> mongod.exe --dbPath C:\Bitfactory\AlexDat\_.9000.mongo\db --repair


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

Keine Kategorien vergebenBearbeiten

Diskussionen