Oracle Database 19c support with FirstSpirit 2020-12 (was EAP with 2020-06)

plaga
I'm new here
0 7 2,545

English version below!

Die Oracle-19c-Unterstützung ist da! Mit dem Release von FirstSpirit 2020-06 startete die “Early Access Program”-Phase (EAP) für Kunden und Partner. Mit FirstSpirit 2020-12 gilt Oracle Database 19c als offiziell unterstützt. Die folgende Beschreibung des Community-Prozess ist damit hauptsächlich noch historisch interessant.

Grundlage ist ein neuer Datenbank-Layer, der die Besonderheiten von Oracle Database 19c bedient. Die neue Anbindung der Datenbank wurde von uns auf Herz und Nieren geprüft, aber natürlich ist uns bewusst, dass es immer wieder Spezialfälle gibt. Diese und im Betrieb auffallende Probleme und Unschönheiten möchten wir in Zusammenarbeit mit Ihnen finden und lösen.

Um eine schnelle und breite Kommunikation zu ermöglichen, setzen wir auf die Community als Kontaktmittel der Wahl. Auf diesem Weg können wir Sie zeitnah beim Einsatz der neuen Datenbank-Anbindung unterstützen, Probleme bewerten und Lösungen erarbeiten. Zudem profitieren Sie instantan von den Informationen aller teilnehmenden Partner und Kunden zu Tricks und Kniffen. Unser Ziel ist eine endgültige Freigabe im dritten Quartal dieses Jahres.

Mit Beginn der EAP-Phase bieten wir die Dokumentation zunächst nur auf Deutsch an, im Anhang EAP-Dokumenation_rev2.pdf (16 Seiten). Bitte lassen Sie uns wissen, wenn Sie von einer englischen Übersetzung profitieren würden!

Mit Freigabe von FirstSpirit 2020-12 heißt die Datei FirstSpirit mit Oracle Database 19c und ist auf 24 Seite gewachsen.

Aktualisierung am 07.10.2020: Die EAP-Dokumentation im Anhang dieses Beitrags wurde aktualisiert. Auf der letzten Seite des Dokuments werden die Änderungen aufgelistet.

Aktualisierung am 09.10.2020: Die EAP-Dokumentation wurde nochmals aktualisiert. Diesmal ist das web.xml-Beispiel angepasst.

Aktualisierung am 25.11.2020: Revision 3 mit neuen Kapiteln "Bekannte Probleme" und "Migrationsvarianten", kleine Korrektur.

Aktualisierung am 17.12.2020: Oracle Database 19c wird jetzt offiziell unterstützt. Die angehängte Dokumentation ist entprechend angepasst.

English version:

Oracle 19c support has arrived! With FirstSpirit 2020-06 an “Early Access Program” (EAP) started for customers and partners. With FirstSpirit 2020-12 Oracle Database 19c is officially supported. The following description of the community process is mainly relevant if you're interested in the development process.

FirstSpirit now provides a new database layer addressing the characteristics of Oracle Database 19c. The new connection of the database has been thoroughly tested by us, but of course we are aware that there are always special cases. We would like to find and solve such problems and unpleasant surprises in cooperation with you.

In order to facilitate fast and broad communication, we rely on the Community as the contact medium of choice. This way we can support you promptly in using the new database connection, evaluate problems and develop solutions. In addition, you benefit immediately from the information on tips and tricks from all participating partners and customers. Our goal is a final release in the third quarter of this year.

Currently we are only providing detailed, Oracle Database 19c focused information in German (in the attached pdf FirstSpirit mit Oracle Database 19c). Please contact us, if you would benefit from a translation! General information on database support, including updated chapters on Oracle Database 19c support, is available in the Documentation for Administrators - Database connection ​.

Update on 10/7/2020: The attached document was updated. The changes are listed on the last page.

Update on 10/9/2020: Another update to the EAP documentation (rev2), this time concerning the web.xml example.

Update on 11/25/2020: rev3 with new chapters "known problems" and "migration variants", one small correction.

Update on 12/17/2020: Oracle Database 19c support is now official. The attached document was updated to reflect this.

7 Comments
tpilz
I'm new here

Hallo Community,

ich versuche gerade unsere Entwicklungsstage auf einen neuen Host zu wechseln (von Windows auf Linux). Da sich bei dieser Aktion auch die Oracle 19c Migration mit anbietet, versuche ich diese gerade durchzuführen. Mein bisheriger Ansatz scheint dafür aber nicht zu funktionieren:


0. FS-Version: 2020-06
1. Konfiguration der neuen Oracle DB gemäß Vorgabe in der EAP-Dokumentation

2. Konfiguration des DB Layer in der fs-database.conf

<oracledb>.jdbc.layerclass=de.espirit.or.impl.oracle.Oracle19cLayer

3. Verwendung des ojdbc8:19.3.0.0 Treibers im <fsroot>/shared/lib-isolated/ Verzeichnis

4. Snapshot Backup im alten Windows System -> übertragen auf das Linux System -> Projekt-Import über Enterprise Backup

-> Das Recovery des Backups bricht ab, Meldung "Incompatible Database Layers"

Der Hintergrund warum ich ein Enterprise Backup Recovery wähle, und keinen simplen Projektimport -> die FS_ID´s müssen auf jeden Fall nach der Aktion identisch sein.

Kann mich evtl. jemand hier abholen und mir einen Migrationsweg mitteilen bei dem ich erfolgreich auf Oracle 19c umsteige und die FS_IDs nach dem Recovery/Import gleich bleiben?

Vielen Dank vorab und viele Grüße

Thomas

hoebbel
Crownpeak employee
Crownpeak employee

Hallo Thomas,

kann es sein, dass die Datenbank Layer unterschiedliche Namen haben auf den beiden Systemen?

Klappt es, wenn dieselben Namen für die Layer gewählt werden? Die exakten Namen kann man beispielsweise in der <FirstSpiritROOT>/conf/fs-database.conf prüfen.

Hinweis: Die Namen stehen sowohl am Anfang in der Liste DATABASES als auch als Prefix in jeder Konfigurationszeile.

Tipp: Die Datei wird von FirstSpirit gecacht und kann somit nicht bei laufendem Server modifiziert werden. Eine Modifikation der Datei kann dazu führen, dass die Datenbankkonfiguration ungültig wird, insofern rate ich davon ab, diese durchzuführen!

Ein anderer möglicher Weg (wenn die Datenbank Layer doch gleich benannt sind) könnte so aussehen (zur Übernahme aller Projekte von Windows nach Linux)

- auf dem Linux System einen FirstSpirit Server installieren.

- Oracle 19c Datenbank anbinden (Layername identisch zu dem Oracle-Layer entsprechenden auf dem Windows System wählen)

- FirstSpirit Linux Server beenden und im Linux Dateisystem das <FirstSpiritROOT>/data Verzeichnis löschen.

- Windows FirstSpirit Server herunterfahren

- <FirstSpiritROOT>/data Verzeichnis aus dem Windows System in das Linux System kopieren.

- Datenbankinhalte manuell auf die Oracle 19c migrieren (an FirstSpirit vorbei)

Mögliche Alternative zum manuellen Transport: Das Projekt kann auch in Linux neu importiert werden. Das klappt, wenn die Datenbank-Layer Standardlayer sind (also vorgeben, wo genau in der Datenbank die Tabellen angelegt werden) oder wenn man etwas nacharbeitet (hier kann unser Tech Support weiterhelfen)

- FirstSpirit Linux Server starten

Sofern keine systemspezifischen Konfigurationen in den Projekten vorgenommen wurden (z.B. hart kodierte Pfade), sollten die Projekte nun ohne ID Veränderungen laufen.

Viele Grüße,

Holger

rusch
I'm new here

Ich habe noch zwei Ergänzungen zum Vorschlag von Holger.

Bei einer manuellen Migration der Datenbankinhalte auf Oracle Database 19c ("an FirstSpirit vorbei"), sollten für den Datenbanklayer die Empfehlungen aus dem Kapitel "Umstellung ohne Änderung der Datenbank" der Migrationsanleitung verwendet werden.

Die beiden Parameter "jdbc.oracle.CHARACTERSET" und "jdbc.MAXSTRINGLENGTH" dürfen nicht im Datenbanklayer gesetzt werden, da es ansonsten zu Problemen nach einem Speichern des Schemas kommen kann (andere maximale Spaltenlängen für String-Spalten, usw.).

Der Parameter "jdbc.property.oracle.jdbc.J2EE13Compliant=true" sollte nur dann gesetzt werden, wenn er auch schon vorher im alten Oracle-Datenbanklayer gesetzt war.

Weiterhin ist es sinnvoll anstelle des "shared/lib-isolated"-Verzeichnisses ein Treiber-FSM-Modul mithilfe der Migrationsanleitung zu erstellen und zu verwenden. Bei der Gelegenheit könnte auch das ojdbc8.jar auf die empfohlene Version 19.7.0.0 aktualisiert werden.

Viele liebe Güße,

Sascha

tpilz
I'm new here

Hallo Holger,

ich habe über den Support ein Video des Importvorganges eingereicht. Im Video ist zu sehen das er beim Recovery im Enterprise Backup einen Dialog anbietet um den bestehenden DB Layer auf einen neuen zu mappen. Der neue Layer ist ein Oracle 19c Layer.
Dann beginnt der Import, und folgender Fehler ist gleich zu sehen:

Error: Incompatible layer class: de.espirit.or.impl.oracle.OracleLayer != de.espirit.or.impl.oracle.Oracle19cLayer

Der Import bricht dann wenig später ab, in der Oracle DB sind keine Tabellen angelegt, und das Projekt muss per löschen entfernt werden.

Ich gehe davon aus, wenn ich die Oracle Layerclass auf den normalen Layer umbenenne, der Import funktioniert.
Meine Frage ist nun, ist dies eine korrekte Vorgehensweise, kann ich nach dem Import die Layerclass wieder auf 19c ändern?

Viele Grüße

Thomas

rusch
I'm new here

Hallo Thomas,

leider kann die Layerclass de.espirit.or.impl.oracle.OracleLayer nicht für einen Import in eine Oracle Database 19c genutzt werden.

Den Grund dafür ist in der Einleitung der Migrationsanleitung aufgeführt:

"[...]Seit der Version 12c hat Oracle vieles geändert und spricht auch andere Empfehlungen bei

der Verwendung der Oracle Datenbank aus. Da sich der Treiber und auch die Datenbank

anders verhalten, mussten wir einen neuen Datenbank-Layer implementieren.[...]"

Viele liebe Grüße

Sascha

tpilz
I'm new here

Hallo Sascha, Hallo Holger,

um es nochmal zusammenzufassen:

1. Ein automatischer Migrationspfad ist nur vorgesehen wenn das Projekt exportiert und importiert wird / der Import muss dann in einen Oracle19c Layerclass DB Layer erfolgen um die Migration nach 19c erfolgreich abzuschließen.

2. Das Enterprise Backup erlaubt jetzt und zukünftig kein Recovery eines Backups von Oracle 12/18 auf 19c

3. Alle Alternativen die es mir ermöglichen würden die IDs im Projekt gleich zu behalten, spielen sich über den /data Ordner kopieren und einer manuellen Migration der Oracle DB ggf. über Oracle eigene Tools ab.

Habe ich evtl. etwas vergessen / falsch wahrgenommen?

Vielen Dank und viele Grüße

Thomas

rusch
I'm new here

Hallo Thomas,

vielen Dank für die Rückmeldung.

zu 1)

Neben dem von Dir aufgeführten Export/Import besteht noch die Möglichkeit den Umzug des Hosts von der Datenbankumstellung zu trennen. In diesem Fall würde das im Kapitel "Umstellung ohne Änderung der Datenbank" der Migrationsanleitung zur Anwendung kommen.

zu 2)

Zu dem von Dir beschriebenen Anwendungfall habe ich ein internes Ticket (CORE-12935) zur Prüfung des Szenarios erstellt. Ob und was im beschriebenen Fall möglich ist kann ich aber vor der Prüfung leider nicht sagen.

zu 3)

Eine weitere Möglichkeit wäre die Auftrennung von Recovery und Datenbankmigration in zwei Schritte. Eine denkbare Möglichkeit wäre hierbei ein Schema-Export (inkl. Daten) mit der Oracle Database 12c, ein Import gegen die Oracle Database 19c in einem neuen Projekt und anschließender Änderung des Schemas im wiederhergestelltem Projekt. Ich werde mir dieses Szenario bei der Prüfung von 2) auch einmal anschauen und über das Ergebnis berichten bzw. den Migrationsleitfaden ggfs. erweitern.

Ich hoffe das hilft Dir und beantwortet Deine Fragen.

Viele liebe Grüße

Sascha

Version history
Last update:
‎06-15-2020 05:37 AM
Updated by: