avERP von Windows zu Linux Firebird migrieren.
Eine Anleitung.
Installationsschritte um von einer (single User)Windows avERP Installation zu einer Linux avERP Multiuser Installation zu kommen.
Voraussetzungen:
1) Es gibt eine bestehende Windows avERP Installation
2) Es gibt ein Linuxsystem das als Server fungieren soll. in unserem Fall Debian Wheezy 7.1 (x86)
Windows
=======
Wir vergewissern uns das die Installation funktioniert.
Eine cmd öffnen
"c:\program files\firebird\firebird_2_5\bin\gbak.exe"
ist das Firebird Backup Programm welches wir nutzen möchten.
von hier kann das DB-Backuptool gbak.exe mit folgendem Aufruf gestartet werden:
"c:\program files\firebird\firebird_2_5\bin\gbak.exe" -b "c:\program files(x86)\averp\averp.fdb" "c:\<wo Schreibberechtigung besteht>\averpdb.fbk" -y <Pfad>\averpdb.log -v -user sysdba -pas masterkey
Das Kennwort des sysdba Users ist im Programmverzeichnis von avERP zu finden (Password.txt).
Das Datenbankbackup File kann dann z.B mit scp auf das Linuxzielsystem kopiert werden.
Wir kommen nach Abschluß der Linuxinstallation noch auf den Windows Client zurück um die Datenbankverbindung einzutragen und die Migration zu testen.
Linux
======
Firebird installieren:
Folgende Pakete wurden normal über "apt-get install" installiert:
root@TestAvERP:/var/lib/firebird/2.5/data# dpkg -l | grep fire
ii firebird-dev 2.5.2~svn+54698.ds4-3 i386 Development files for Firebird - an RDBMS based on InterBase 6.0 code
ii firebird2.5-classic-common 2.5.2~svn+54698.ds4-3 i386 common files for firebird 2.5 "classic" and "superclassic"
ii firebird2.5-common 2.5.2~svn+54698.ds4-3 all common files for firebird 2.5 servers and clients
ii firebird2.5-common-doc 2.5.2~svn+54698.ds4-3 all copyright, licnesing and changelogs of firebird2.5
ii firebird2.5-examples 2.5.2~svn+54698.ds4-3 all Examples for Firebird - an RDBMS based on InterBase 6.0 code
ii firebird2.5-server-common 2.5.2~svn+54698.ds4-3 i386 common files for firebird 2.5 servers
ii firebird2.5-superclassic 2.5.2~svn+54698.ds4-3 i386 Firebird SuperClassic Server - an RDBMS based on InterBase 6.0 code
ich glaube "apt-get install firebird2.5-superclassic" zieht die anderen Pakete nach.
Durch dpkg-reconfigure firebird2.5-superclassic kann das Kennwort des sysdba Users einfach geändert werden
Installation UDF (User Defined Functions)
Von der Herstellerseite die Bibliothek downloaden:
http://www.synerpy.de/cm/index.php/downloads/file/5-udf-bibliotheken.html
in einem Unterverzeichnis das FreeAdhocUDF.zip auspacken
root@TestAvERP:~/UDF# ls
COPYING FreeAdhocUDF_FB15.so FreeAdhocUDF_FB2x_glibc23.so FreeAdhocUDF_FBi64_MSVC8.dll liesmich.txt
COPYING.LESSER FreeAdhocUDF_FB15_SuSe10.so FreeAdhocUDF_FB2x.so gpl_deu.txt UDF_Bibliotheken.zip
Copyright.txt FreeAdhocUDF_FB15_ubuntu606.so FreeAdhocUDF_FBi32_MSVC8.dll inhalt.txt welche_version.txt
FreeAdhocUDF_FB15_glibc23.so FreeAdhocUDF_FB2x64.so FreeAdhocUDF_FBi32_oWatC.dll lgpl_deu.txt
wir haben open mit dpkg -l... gesehen das es sich in unserem Fall um eine 32bit Version von Firebird handelt (i386). Unsere Firebird Version ist mindestens 2.x.
Daraus wissen wir das wir die Datei FreeAdhocUDF_FB2x.so verwenden müssen.
Die Datei "welche_version.txt" hilft ansonsten weiter
Die Datei FreeAdhocUDF_FB2x.so muss in den "lib Bereich" von Firebird kopiert werden.
cp FreeAdhocUDF_FB2x.so \ /usr/lib/firebird/2.5/UDF/FreeAdhocUDF.so
erledigt dies für uns. Die Zieldatei muss wie im Beispiel heißen - also ohne _FB2x.
Berechtigungen sollten wie folgt aussehen:
root@TestAvERP:/usr/lib/firebird/2.5/UDF# ls -la
insgesamt 232
drwxr-xr-x 2 root root 4096 Sep 25 09:14 .
drwxr-xr-x 5 root root 4096 Aug 12 17:36 ..
-rw-r--r-- 1 firebird firebird 17864 Mär 22 2013 fbudf.so
-rw-r--r-- 1 firebird firebird 7112 Mär 22 2013 fbudf.sql
-rw-r--r-- 1 firebird firebird 141379 Sep 25 09:12 FreeAdhocUDF.so
-rw-r--r-- 1 firebird firebird 19170 Mär 22 2013 ib_udf2.sql
-rw-r--r-- 1 firebird firebird 13708 Mär 22 2013 ib_udf.so
-rw-r--r-- 1 firebird firebird 18525 Mär 22 2013 ib_udf.sqler
Ich denke es sollte nun eigentlich ein neuer Firebird User erstellt werden dem die Datenbank gehört. (mit gsec)
Wir überspringen diesen Schritt hier.
Hier ist es vielleicht gute Firebird neu zu starten
root@TestAvERP:/var/lib/firebird/2.5/data# ps aux | grep fb
firebird 2618 0.0 0.0 4448 792 ? S Sep24 0:00 /usr/sbin/fbguard -daemon -forever -pidfile /var/run/firebird/2.5/fbserver.pid
firebird 5039 0.1 0.3 81080 7336 ? Sl 09:18 0:11 /usr/sbin/fb_smp_server
root 5367 0.0 0.0 3564 812 pts/0 S+ 12:12 0:00 grep fb
Mit kill habe ich dann den fb_smp_server den Prozess beendet der durch fbguard gleich wieder frish gestartet wurde.
Nun können wir das Backup zurückspielen:
gbak -r <pfad zum Backup>\averpdb.fbk /var/lib/firebird/2.5/data/averpdb.fdb -y <ordner>averpdb-restore.log -v -user sysdb -pass <password>
Log auf Fehler prüfen.
Die neue Datenbank in /var/lib/firebird/2.5/data/averpdb.fdb benötigt folgende Rechte:
root@TestAvERP:/var/lib/firebird/2.5/data# ls -al
insgesamt 729376c:\program files(x86)\averp\AVERPCONNECT.cfg
drwxrwx--- 2 firebird firebird 4096 Sep 25 00:16 .
drwxrwx--- 6 firebird firebird 4096 Aug 12 17:34 ..
-rw-rw---- 1 firebird firebird 746192896 Sep 25 10:50 averpdb.fdb
-rw-rw---- 1 firebird firebird 0 Mär 22 2013 no_empty
-rw-rw---- 1 firebird firebird 675840 Sep 24 16:09 test.fdb
Testen der Installation
========================
Um die Installation testen zu können müssen wir auf unserem Windows Client den DB-Connectionstring anpassen:
Mit Administratorrechten ist die Datei
"c:\program files(x86)\averp\AVERPCONNECT.cfg" zu öffnen.
Den DB-Connect String ändern/ergänzen: Hinterd em letzten ; ALIAS=<IP/hostname>:<Path to DB on DB Server>
Beispiel
;AVERPDB=172.30.0.170:/var/lib/firebird/2.5/data/averpdb.fdb;
Nun kann der avERP Client gestartet werden.
Mehere Clients sollten sich nun gegen den Linuxserver verbinden lassen.
Neue avERP Installationen benötigen nun die averpconnect.cfg
Verbesserungen:
===============
Der DB Owner sollte ggf nicht sysdba sein.
Backupspace kann durch Nutzung von nbackup verringert werden (Incremental Backups)
Der Betrieb Firebird als Super oder Classic sollte noch untersucht werden
firebird.conf kann ggf noch optimiert werden.
Viel Erfolg
No comments:
Post a Comment