Successfully reported this slideshow.
Your SlideShare is downloading. ×

Docker-Images mit vorinstallierter Instanz einer Oracle-DB

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 10 Ad
Advertisement

More Related Content

Recently uploaded (20)

Advertisement

Docker-Images mit vorinstallierter Instanz einer Oracle-DB

  1. 1. Docker-Images mit vorinstallierter Instanz einer Oracle-DB Peter Ramm November 2022
  2. 2. Otto Group Solution Provider (OSP) Gründung: März 1991 Muttergesellschaft: Otto Group Standorte: Dresden, Hamburg, Altenkunstadt, Madrid, Taipei Anzahl Mitarbeitende: > 450 Geschäftsführer: Dr. Stefan Borsutzky, Norbert Gödicke, Jens Gruhl
  3. 3. Zur Person Mail: Peter.Ramm@ottogroup.com Peter Ramm Teamleiter strategisch-technische Beratung bei OSP in Dresden > 30 Jahre Historie in IT-Projekten Schwerpunkte: • Entwicklung von OLTP-Systemen auf Basis von Oracle-Datenbanken • Architektur-Beratung bis Trouble-Shooting • Performance-Optimierung bestehender Systeme
  4. 4. § Für diverse Oracle-Produkte sind Dockerfiles verfügbar als Anleitung für die Erstellung von Docker-Images https://github.com/oracle/docker-images § Voraussetzung ist der Download der Software-Packages aus den entsprechenden Oracle-Ressourcen § Für Oracle-DB sind Dockerfiles verfügbar für RAC und Single-Instance, Enterprise, Standard und Express-Edition https://github.com/oracle/docker-images/tree/main/OracleDatabase § Versionen: 11.2.0.4, 12.1.0.2, 12.2.0.1, 18.3.0, 18.4.0, 21.3.0 § HowTo build Images: https://github.com/oracle/docker-images/blob/main/OracleDatabase/SingleInstance/README.md § HowTo build Images mit vorinstallierter DB-Instanz (the easy way) https://github.com/oracle/docker-images/tree/main/OracleDatabase/SingleInstance/samples/prebuiltdb Offizielle Docker-Images von Oracle § Die 12.1 und 12.2 Images auf hub.docker.com sind nicht mehr verfügbar § Aktuelle Images finden sich auf https://container-registry.oracle.com Offizielle Dockerfiles von Oracle
  5. 5. § Docker-Images für diverse Oracle-Produkte, DB jeweils in aktueller Version (aktuell 21.3) container-registry.oracle.com : Images durch Oracle gemanagt Lizenzpfl. Produkt Description enterprise Oracle Database Enterprise Edition gsm Oracle Global Service Manager instantclient Oracle Instant Client rac Oracle Real Application Clusters standard Oracle Database Standard Edition 2 Freies Produkt Description express Oracle Database Express Edition observability-exporter Oracle Database Observability Exporter (Metrics, Logs, and Tracing) operator This image is part of and for use with the Oracle Database Operator for Kubernetes ords Oracle REST Data Services (ORDS) with Application Express otmm Oracle Transaction Manager for Microservice sqlcl Oracle SQLDeveloper Command Line (SQLcl)
  6. 6. Der vollständige Aufbau einer DB-Instanz ist ein zeitaufwändiger Prozess (10 .. 20 Minuten) § Erzeugen der DB-Instanz mit initialen Strukturen (Controlfiles, Datafiles) § Aufbau des Data Dictionaries (catproc.sql etc.) Motivation für vorinstallierte DB-Instanz Für diverse Einsatzzwecke (CI-Pipeline, Entwicklungs- und Testumgebungen, Demo-Installationen) ist eine schnelle Bereitstellung einer funktionsfähigen frischen DB sehr wünschenswert Sinnvolle Funktionen für Docker-Lösung § Erstellen einer funktionsfähigen vorinstallierten Datenbank als Docker-Image § Ableitungen projektspezifischer Images mit vorinstallierten Usern, Datenstrukturen, Testdateninhalten Offizielles Docker- Image Konkreter Container Image mit vorinstallierter Datenbank-Instanz Projekt-Image mit User und Datenbank- Strukturen
  7. 7. Das Filesystem von Docker basiert auf einem Layering mit Copy on Write auf File-Ebene § Docker‘s „copy on write“-Implementierung des „overlay2“ Storage-Drivers auf File-Ebene führt zum Kopieren eines ganzen Files in den nächsten Layer, auch wenn nur einige Bytes geändert werden § Der alternative “devicemapper“ Storage-Driver mit „copy on write“ auf Block-Ebene bedarf für produktiven Einsatz einiger weiterer Voraussetzungen (direct-lvm Mode) und ist von Docker als deprecated gekennzeichnet § Beim Start einer DB werden die Header-Informationen in allen DB-Files aktualisiert § Damit werden beim ersten Start der DB alle DB-Files in den aktuellen Storage-Layer geclont (dupliziert) § Ableiten weiterer Images bedeutet damit auch jedes mal Vergrößern des Image um alle Datafiles Herausforderungen
  8. 8. Das Github-Repo https://github.com/OttoGroupSolutionProvider/oracle-db_docker enthält Scripte, Dockerfiles und Anleitung zum Erstellen von Images mit vorinstallierter DB. § Durch Multistage-Builds mit Single-Layer Image wird das Duplizieren der Datafiles in jedem neuem Image verhindert § Weiteres Customizing von Images ist möglich per Script z.B. für: - Modifiziertes Instance-Setting (Memory etc.) - Anlegen von Usern, Füllen von Schemata mit Datenstrukturen, Stammdaten … - Ausführen von SQL-Scripten zu jedem DB-Start durch platzieren in $ORACLE_BASE/scripts/startup Unser Lösungsansatz
  9. 9. Beschreibung im Detail: https://github.com/OttoGroupSolutionProvider/oracle-db_docker/blob/main/README.md - Download der Dockerfiles von https://github.com/oracle/docker-images - Download der Installationsdateien der entsprechenden DB-Version und Ablage in Verzeichnis - Build eines Docker-Image mit Oracle Software-Installation - Download der aktuellen Patch-Sets und opatch-Utility - Build eines Docker-Image mit aktuellem Patch-Stand der Software-Installation - Build eines Docker-Image mit fertiger ad hoc startbarer DB-Instanz - Build eines Docker-Image mit DB-Instanz und projektspezifischer Erweiterung (User etc.) Schritte zur Erstellung von Images mit DB-Instanz
  10. 10. Vielen Dank für Ihr Interesse Otto Group Solution Provider (OSP) Dresden GmbH Freiberger Str. 35 | 01067 Dresden T +49 (0)351 49723 0 | F +49 (0)351 49723 119 osp.de

×