SlideShare ist ein Scribd-Unternehmen logo
1 von 10
Downloaden Sie, um offline zu lesen
Docker-Images mit
vorinstallierter Instanz einer
Oracle-DB
Peter Ramm November 2022
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
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
§ 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
§ 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)
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
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
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
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
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

Weitere ähnliche Inhalte

Ähnlich wie Docker-Images mit vorinstallierter Instanz einer Oracle-DB

Cloud Lösungen für Apex
Cloud Lösungen für ApexCloud Lösungen für Apex
Cloud Lösungen für ApexStefan Witwicki
 
Dnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondDnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondUlrich Krause
 
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatengeKarin Patenge
 
skilllocation Foliensatz zu Microsoft Azure
skilllocation Foliensatz zu Microsoft Azureskilllocation Foliensatz zu Microsoft Azure
skilllocation Foliensatz zu Microsoft AzureCarola Pantenburg
 
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationDesktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationGWAVA
 
Oracle Technology Monthly Oktober 2017
Oracle Technology Monthly Oktober 2017Oracle Technology Monthly Oktober 2017
Oracle Technology Monthly Oktober 2017oraclebudb
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenOPITZ CONSULTING Deutschland
 
Orchestrierung einer Private Cloud mit OpenStack Heat
Orchestrierung einer Private Cloud mit OpenStack Heat Orchestrierung einer Private Cloud mit OpenStack Heat
Orchestrierung einer Private Cloud mit OpenStack Heat B1 Systems GmbH
 
Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)Joachim Baumann
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsQAware GmbH
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsJosef Adersberger
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...gedoplan
 
Datenbanken - Eine Übersicht (WPMeetUP München)
Datenbanken - Eine Übersicht (WPMeetUP München)Datenbanken - Eine Übersicht (WPMeetUP München)
Datenbanken - Eine Übersicht (WPMeetUP München)Dietmar Leher
 
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...Peter Ramm
 
Datenbank Migration - Oracle 11gR2 Erfahrungen 2011 - OPITZ CONSULTING - Chri...
Datenbank Migration - Oracle 11gR2 Erfahrungen 2011 - OPITZ CONSULTING - Chri...Datenbank Migration - Oracle 11gR2 Erfahrungen 2011 - OPITZ CONSULTING - Chri...
Datenbank Migration - Oracle 11gR2 Erfahrungen 2011 - OPITZ CONSULTING - Chri...OPITZ CONSULTING Deutschland
 
Roadshow Oracle Database 12c: News & Features
Roadshow Oracle Database 12c: News & FeaturesRoadshow Oracle Database 12c: News & Features
Roadshow Oracle Database 12c: News & FeaturesDigicomp Academy AG
 
Heterogene Daten(-strukturen) in der Oracle Datenbank
Heterogene Daten(-strukturen) in der Oracle DatenbankHeterogene Daten(-strukturen) in der Oracle Datenbank
Heterogene Daten(-strukturen) in der Oracle DatenbankUlrike Schwinn
 
Hendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit DockerHendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit Dockergedoplan
 

Ähnlich wie Docker-Images mit vorinstallierter Instanz einer Oracle-DB (20)

Daos
DaosDaos
Daos
 
Cloud Lösungen für Apex
Cloud Lösungen für ApexCloud Lösungen für Apex
Cloud Lösungen für Apex
 
Dnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondDnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyond
 
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
 
skilllocation Foliensatz zu Microsoft Azure
skilllocation Foliensatz zu Microsoft Azureskilllocation Foliensatz zu Microsoft Azure
skilllocation Foliensatz zu Microsoft Azure
 
Oracle und Docker
Oracle und DockerOracle und Docker
Oracle und Docker
 
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationDesktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
 
Oracle Technology Monthly Oktober 2017
Oracle Technology Monthly Oktober 2017Oracle Technology Monthly Oktober 2017
Oracle Technology Monthly Oktober 2017
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
 
Orchestrierung einer Private Cloud mit OpenStack Heat
Orchestrierung einer Private Cloud mit OpenStack Heat Orchestrierung einer Private Cloud mit OpenStack Heat
Orchestrierung einer Private Cloud mit OpenStack Heat
 
Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
 
Datenbanken - Eine Übersicht (WPMeetUP München)
Datenbanken - Eine Übersicht (WPMeetUP München)Datenbanken - Eine Übersicht (WPMeetUP München)
Datenbanken - Eine Übersicht (WPMeetUP München)
 
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
 
Datenbank Migration - Oracle 11gR2 Erfahrungen 2011 - OPITZ CONSULTING - Chri...
Datenbank Migration - Oracle 11gR2 Erfahrungen 2011 - OPITZ CONSULTING - Chri...Datenbank Migration - Oracle 11gR2 Erfahrungen 2011 - OPITZ CONSULTING - Chri...
Datenbank Migration - Oracle 11gR2 Erfahrungen 2011 - OPITZ CONSULTING - Chri...
 
Roadshow Oracle Database 12c: News & Features
Roadshow Oracle Database 12c: News & FeaturesRoadshow Oracle Database 12c: News & Features
Roadshow Oracle Database 12c: News & Features
 
Heterogene Daten(-strukturen) in der Oracle Datenbank
Heterogene Daten(-strukturen) in der Oracle DatenbankHeterogene Daten(-strukturen) in der Oracle Datenbank
Heterogene Daten(-strukturen) in der Oracle Datenbank
 
Hendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit DockerHendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit Docker
 

Mehr von Peter Ramm

Oracle Advanced Compression - Erfahrungen aus dem praktischen Einsatz
Oracle  Advanced Compression - Erfahrungen aus dem praktischen EinsatzOracle  Advanced Compression - Erfahrungen aus dem praktischen Einsatz
Oracle Advanced Compression - Erfahrungen aus dem praktischen EinsatzPeter Ramm
 
Oracle-DB: Effizient Nutzung von function-based Indizes
Oracle-DB: Effizient Nutzung von function-based IndizesOracle-DB: Effizient Nutzung von function-based Indizes
Oracle-DB: Effizient Nutzung von function-based IndizesPeter Ramm
 
AWR und ASH lizenzfrei für alle Editionen der Oracle-DB
AWR und ASH lizenzfrei für alle Editionen der Oracle-DBAWR und ASH lizenzfrei für alle Editionen der Oracle-DB
AWR und ASH lizenzfrei für alle Editionen der Oracle-DBPeter Ramm
 
Oracle-DB: Performance Analysis with Panorama
Oracle-DB: Performance Analysis with PanoramaOracle-DB: Performance Analysis with Panorama
Oracle-DB: Performance Analysis with PanoramaPeter Ramm
 
Oracle-DB: Root-Cause-Analyse nach "unable to extent temp segment"
Oracle-DB: Root-Cause-Analyse nach "unable to extent temp segment"Oracle-DB: Root-Cause-Analyse nach "unable to extent temp segment"
Oracle-DB: Root-Cause-Analyse nach "unable to extent temp segment"Peter Ramm
 
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für Panorama
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für PanoramaOracle-DB: Panorama-Sampler - Eigenes Workload Repository für Panorama
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für PanoramaPeter Ramm
 
Oracle-DB: Active Session History: into the deep
Oracle-DB: Active Session History: into the deepOracle-DB: Active Session History: into the deep
Oracle-DB: Active Session History: into the deepPeter Ramm
 
Oracle-DB: Systematische Rasterfahndung nach Performance-Antipattern
Oracle-DB: Systematische Rasterfahndung nach Performance-AntipatternOracle-DB: Systematische Rasterfahndung nach Performance-Antipattern
Oracle-DB: Systematische Rasterfahndung nach Performance-AntipatternPeter Ramm
 
Performance-Analyse von Oracle-Datenbanken mit Panorama
Performance-Analyse von Oracle-Datenbanken mit PanoramaPerformance-Analyse von Oracle-Datenbanken mit Panorama
Performance-Analyse von Oracle-Datenbanken mit PanoramaPeter Ramm
 
Oracle-DB: Sicheres Identifizieren von nicht relevanten indizes
Oracle-DB: Sicheres Identifizieren von nicht relevanten indizesOracle-DB: Sicheres Identifizieren von nicht relevanten indizes
Oracle-DB: Sicheres Identifizieren von nicht relevanten indizesPeter Ramm
 

Mehr von Peter Ramm (10)

Oracle Advanced Compression - Erfahrungen aus dem praktischen Einsatz
Oracle  Advanced Compression - Erfahrungen aus dem praktischen EinsatzOracle  Advanced Compression - Erfahrungen aus dem praktischen Einsatz
Oracle Advanced Compression - Erfahrungen aus dem praktischen Einsatz
 
Oracle-DB: Effizient Nutzung von function-based Indizes
Oracle-DB: Effizient Nutzung von function-based IndizesOracle-DB: Effizient Nutzung von function-based Indizes
Oracle-DB: Effizient Nutzung von function-based Indizes
 
AWR und ASH lizenzfrei für alle Editionen der Oracle-DB
AWR und ASH lizenzfrei für alle Editionen der Oracle-DBAWR und ASH lizenzfrei für alle Editionen der Oracle-DB
AWR und ASH lizenzfrei für alle Editionen der Oracle-DB
 
Oracle-DB: Performance Analysis with Panorama
Oracle-DB: Performance Analysis with PanoramaOracle-DB: Performance Analysis with Panorama
Oracle-DB: Performance Analysis with Panorama
 
Oracle-DB: Root-Cause-Analyse nach "unable to extent temp segment"
Oracle-DB: Root-Cause-Analyse nach "unable to extent temp segment"Oracle-DB: Root-Cause-Analyse nach "unable to extent temp segment"
Oracle-DB: Root-Cause-Analyse nach "unable to extent temp segment"
 
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für Panorama
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für PanoramaOracle-DB: Panorama-Sampler - Eigenes Workload Repository für Panorama
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für Panorama
 
Oracle-DB: Active Session History: into the deep
Oracle-DB: Active Session History: into the deepOracle-DB: Active Session History: into the deep
Oracle-DB: Active Session History: into the deep
 
Oracle-DB: Systematische Rasterfahndung nach Performance-Antipattern
Oracle-DB: Systematische Rasterfahndung nach Performance-AntipatternOracle-DB: Systematische Rasterfahndung nach Performance-Antipattern
Oracle-DB: Systematische Rasterfahndung nach Performance-Antipattern
 
Performance-Analyse von Oracle-Datenbanken mit Panorama
Performance-Analyse von Oracle-Datenbanken mit PanoramaPerformance-Analyse von Oracle-Datenbanken mit Panorama
Performance-Analyse von Oracle-Datenbanken mit Panorama
 
Oracle-DB: Sicheres Identifizieren von nicht relevanten indizes
Oracle-DB: Sicheres Identifizieren von nicht relevanten indizesOracle-DB: Sicheres Identifizieren von nicht relevanten indizes
Oracle-DB: Sicheres Identifizieren von nicht relevanten indizes
 

Docker-Images mit vorinstallierter Instanz einer Oracle-DB

  • 1. Docker-Images mit vorinstallierter Instanz einer Oracle-DB Peter Ramm November 2022
  • 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. 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. § 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. § 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. 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. 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. 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. 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. 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