Problem bei Migration AvERP-DB von FB15 nach FB25 (erl.)

Fragen und Problemen zur Inbetriebnahme, Konfiguration und Wartung von AvERP und der Datenbank

Moderator: SYNERPY

Antworten
Geri12
Beiträge: 589
Registriert: Mi Apr 16, 2008 7:51 am

Problem bei Migration AvERP-DB von FB15 nach FB25 (erl.)

Beitrag von Geri12 »

Hallo

Die Hardware unseres neuen Servers ist endlich zusammen und der Server ist fertig installiert. Hier die Daten ...
2 * 4-core, 8 GB RAM, Controller mit 1 GB Cache, 2* 500 GB SATA im Raid1 für das Betriebssystem Windows Server 2008 R2, 64 Bit (und AvERP), 4* 32 GB SSD (SLC) im Raid 10 für die AvERP-Datenbank

Vorgehen bzgl. Installationen/Zusammenarbeit Firebird/AvERP:
1. Installation Firebird FB 2.5 (2.5.1.26351) ClassicServer nach C:\Firebird\Firebird_2_5 (zukünftig FB25 genannt)
2. firebird.conf -> RelaxedAliasChecking = 1
3. (FB25)\WOW64\FBClient.dll kopiert nach (FB25)\lib, C:\AvERP und C:\Programme (x86)\AvERP unter dem Dateinamen gds32.dll
4. Von freeadhocudf.org die Datei WIN64_FreeAdhocUDF20101206.zip runtergeladen, entpackt und die Datei FreeAdHocUDF_FB2x_i64_MSVC9.dll kopiert nach (FB25)\UDF\FreeAdHocUDF.dll
5. FB-Dienst neu gestartet


Vorgehen bzgl. Migration AvERP-DB von FB15 nach FB25:
1. Von der AvERP-Datenbank auf dem alten Server unter FB1.5 ein normales Backup erzeugt
2. fbk-Datei auf dem neuen Server unter FB2.5 restored
(Das ging außerdem nicht so problemlos wie beschrieben. Konnte nicht IBExpert nutzen, sondern musste gbak händisch in einem Konsolenfenster mit der richtigen Parameter-Reihenfolge bzgl. -FIX_FSS_DATA und -FIX_FSS_METADATA laufen lassen)

=> Ausgabe am Ende der Restore-Log-Datei ...

[snip}
gbak: activating and creating deferred index FK_BAKARBEITSDATEN_2
gbak: committing metadata
gbak: WARNING:function F_KALENDERWOCHE is not defined
gbak: WARNING: module name or entrypoint could not be found
gbak:finishing, closing, and going home


Aufruf im IBExpert in der gerade restore-ten Datenbank ...
select f_version() from rdb$database;
ergibt ...
can't format message 13:896 -- message file \\Server04\firebird.msg not found.
invalid request BLR at offset 63.
function F_VERSION is not defined.
module name or entrypoint could not be found.


Weiteres Vorgehen:
1. firebird.msg an alle mir stategisch wichtigen Punkte kopiert, habe das richtige Verzeichnis damit allerdings nicht erwischt (Die Meldung kann weiterhin nicht korrekt aufgelöst werden)
2. Entsprechend der Info in WIN64_FreeAdhocUDF20101206\wichtig-liesmich.pdf die icu*.dll-Dateien aus WIN64_FreeAdhocUDF20101206\install\UDF_Windows\icu\64bit nach (FB25)\bin kopiert. Zudem die Datei WIN64_FreeAdhocUDF20101206\install\UDF_Windows\FireBird\FAUfile_FB2x_i64_MSVC9.dll nach (FB25)\UDF kopiert
3. FB-Dienst neu gestartet

=> Weiterhin die selben Fehler & Meldungen. Irgendwie kann es nur an der FreeAdHocUDF liegen, aber was tun ?


Testweise weiter mit der Zeichensatz-Migration:
1. (FB25)\misc\upgrade\metadata\metadata_charset_create.sql in die restore-te DB eingespielt; DB-Verbindung gelöst und neu verbunden
2. Ausführung von ... select * from rdb$check_metadata;
... ergibt 14637 Ergebnisdatensätze. COMMIT ausgeführt. Ergebnis ist ff. Meldung ...
Commit nicht möglich
can't format message 13:896 -- message file \\Server04\firebird.msg not found.
invalid request BLR at offset 169.
function F_PADLEFT is not defined.
module name or entrypoint could not be found.
Error while parsing procedure P_JAHR_KW's BLR.


Komme im Moment nicht mehr weiter und bin für jeden Tipp dankbar ...
Zuletzt geändert von Geri12 am Fr Okt 28, 2011 11:52 am, insgesamt 1-mal geändert.
Gruß
Geri12

Software-Version: V4.2.5.2
FDB-Version: AvERP2008-A.14
festus01
Beiträge: 515
Registriert: Di Okt 19, 2004 5:45 am
Wohnort: Diepholz

Beitrag von festus01 »

Hallo Geri12,

welche Version von FB25 haben Sie installiert, die 32 oder 64Bit Version :?:
MfG

KDP

----------------------------------------------------------
Durch den Computer spart der Mensch so viel Zeit,
dass er diese am Computer verbringen kann.
Geri12
Beiträge: 589
Registriert: Mi Apr 16, 2008 7:51 am

Beitrag von Geri12 »

Hallo

@festus01
Das war glaube ich die einzige Info, welche ich vergessen hatte: Ist eine Firebid 2.5 64Bit-Version.

@Alle
Kann uns zum Glück weiteres Nachgrübeln ersparen, es funktioniert jetzt.

Folgendes war passiert:
Nach der Installation von Firebird 2.5 64Bit, AvERP und IBExpert auf dem neuen Server hatte ich (genau so wie in der Anleitung 'AvERP-Umstellung auf Firebird 2.1' beschrieben) überall die gds32.dll eingetragen/ersetzt durch die FB25er FBClient.dll, anschließend wurde die 64Bit-FreeAdhocUDF.dll an entspr. Stelle ins Firebird-Verzeichnis kopiert. Soweit klar ...

Dann nahm ich eine 'echte' AvERP-FB25-Datenbank auf den neuen Server und wollte sie dort mit IBExpert öffnen. Der Verbindungsversuch (Server=local, Serverversion=FB 2.5) schlug fehl, es konnte keine Verbindung hergestellt werden. In der Annahme, ich hätte alle Vorbedingungnen komplett erfüllt, habe ich dann rumprobiert (Einziger Gedanke: 'Das muss doch gehen') und mit den Einstellungen (Server=Remote, Servername=SERVER04, Protokoll=TCP/IP, Serverversion=FB 2.5) hat die Verbindung dann wirklich funktioniert.

Als nächstes wollte ich dann die AvERP-Backup-DB restoren, was mit der einen Warnung bzgl. F_KALENDERWOCHE (module name or entrypoint could not be found) quittiert wurde. Die ausgepackte DB ließ sich in IBExpert ebenfalls über Remote-Zugriff auf SERVER04 öffnen. Aber (select f_version() from rdb$database;) funktionierte nicht (invalid request BLR) und die Meldung konnte auch nicht aufgelöst werden (message file \\Server04\firebird.msg not found).

Anschließend wurden die FreeAdhocUDF-icu*.dll-Dateien kopiert, weil in der zugehörigen LiesMich-Datei von FreeAdhocUDF beschrieben wurde, dass dies ab der Version 11.11.2010 notwendig sei. Dennoch ergab dies keine Änderung und letzlich hatte ich dann die Anfrage im Forum formuliert.

Heute morgen nun (Blitzgedanke) konnte ich endlich eine Verbindung zwischen den Dingen herstellen (Server=Remote, Servername=SERVER04), welche die Sache dann letztendlich weiterbrachte: Ein Zurückstellen der Datenbankeigenschaften zum Connecten der Datenbank im IBEXpert auf (Server=local) löste das Problem (invalid request BLR at offset 63. function F_FUNCTION is not defined. module name or entrypoint could not be found.) auf, alle UDFs aus der FreeAdhocUDF waren ansprechbar. Zudem wurde der Pfad (message file \\Server04\firebird.msg not found) im Klartext dargestellt. Ein Dorthin-Kopieren der firebird.msg löste somit auch das Problem.

Prima, Tag gerettet ...

Einen Dämpfer erhielt mein neuer Enthusiasmus dann allerdings bei der (im Firebird-Admin-Handbuch empfohlenen) Zeichensatz-Migration über die Funktionen in metadata_charset_create.sql, auch wenn beim Restore schon die Parameter -FIX_FSS_DATA und -FIX_FSS_METADATA benutzt worden waren. Trotz Aufruf der FIX-Fkt. wurden mir von der CHECK-Fkt. immer wieder die selbe Anzahl an Datensätzen angezeigt. Die Daten in den AvERP-Tabellen scheinen aber OK ?!

Schlussendlich habe ich dann die Trigger und Prozeduren neu compiliert. Lediglich 1 Trigger und 3 Prozeduren (eigene Erweiterungen) mussten geändert werden. Bei dem Trigger muss ich jetzt nur noch rauskriegen, was ich mit der entspr. Meldung (attempted update of read-only column) anfange und wie ich die Sache löse.

Der Nutzung von AvERP auf dem neuen Server steht (denke ich mal) jetzt nichts mehr im Wege :D
Gruß
Geri12

Software-Version: V4.2.5.2
FDB-Version: AvERP2008-A.14
admin
Site Admin
Beiträge: 2673
Registriert: Di Feb 10, 2004 5:48 am
Wohnort: Bayreuth

Beitrag von admin »

Schlussendlich habe ich dann die Trigger und Prozeduren neu compiliert. Lediglich 1 Trigger und 3 Prozeduren (eigene Erweiterungen) mussten geändert werden. Bei dem Trigger muss ich jetzt nur noch rauskriegen, was ich mit der entspr. Meldung (attempted update of read-only column) anfange und wie ich die Sache löse.
Das wird ein After-Trigger sein, bei dem ein Feldwert belegt wird. So was wie NEW.ID = 123. Das funktioniert nicht, da Werte in einem After-Trigger nicht beschrieben werden können. Ein Löschen der Zeile wird den Fehler beheben. Funktionen sollten davon auch nicht beeinträchtigt werden, da unter Firebird 1.5 zwar kein Fehler kam, ein neuer Wert aber nicht in das Feld geschoben wurde.
Geri12
Beiträge: 589
Registriert: Mi Apr 16, 2008 7:51 am

Beitrag von Geri12 »

Hallo

@admin
Ich hatte das Problem noch am Freitag behoben. Ich hatte damals einer Tabelle ein Feld hinzugefügt, welches in der View, nicht aber in den View-Triggern aufgeführt war (read-only). Zudem (so wie vermutet) befand sich der Fehler in einem AfterInsert-Trigger, in welchem das Feld neu berechnet werden sollte :oops: (Das Feld wurde - man kann es sich vorstellen - letztendlich nie benutzt.) Ein Versetzen der Quellcodezeilen in den zugehörigen BeforeInsert-Trigger der Tabelle behob das Compilier-Problem ...
Gruß
Geri12

Software-Version: V4.2.5.2
FDB-Version: AvERP2008-A.14
Antworten