Breadcrumb

Description

Oracle Database Server Release Update 19c Docker Image Documentation

Oracle Database Server Release 19c is an industry leading relational database server. The Oracle Database server docker image contains Oracle Database server Release 19c Enterprise or Standard Edition running on Oracle Linux 7. This image contains a default database in a multitenant configuration with one pluggable database.

For more information on Oracle Database server Release 19c, refer to http://docs.oracle.com/en/database/.

Using This Image

Starting an Oracle Database Server Instance

To start an Oracle Database server instance, execute the following command where <oracle-db> is the name of the container:

$ docker run -d --name <oracle-db>
container-registry.oracle.com/database/enterprise_ru:19

The auto-generated default password for connecting to the Oracle Database server instance can be found from the logs using

$ docker logs <oracle-db>

Note: Refer to the section titled "Changing the Default Password for SYS User" to obtain the password.

Oracle Database server is ready to use when the STATUS field shows (healthy) in the docker ps output.

Connecting to Oracle Database Server Container

Once Oracle Database server indicates that the container has started and the STATUS field shows (healthy),client applications can connect to the database.

Connecting from within the container

You can connect to Oracle Database server by executing a SQL*Plus command from within the container using one of the following commands:

$ docker exec -it <oracle-db> sqlplus / as sysdba
$ docker exec -it <oracle-db> sqlplus sys/<your_password>@<your_service_name> as sysdba
$ docker exec -it <oracle-db> sqlplus system/<your_password>@<your_service_name>
$ docker exec -it <oracle-db> sqlplus pdbadmin/<your_password>@<your_PDBname>

Connecting from outside of the container

By default, Oracle Database server exposes port 1521 for Oracle client connections over Oracle's SQL*Net protocol. SQL*Plus or any Oracle Java Database Connectivity (JDBC) client can be used to connect to the database server from outside of the container.

To connect from outside of the container, start the container with -poption as described in the detailed docker run command in the section titled "Custom Configurations".

Discover the mapped port by executing the following command:

$ docker port <oracle-db>

To connect from outside of the container using SQL*Plus, execute the following:

$ sqlplus sys/<your_password>@//localhost:<exposed_port>/<your_service_name> as sysdba
$ sqlplus system/<your_password>@//localhost:<exposed_port>/<your_service_name>
$ sqlplus pdbadmin/<your_password>@//localhost:<exposed_port>/<your_PDBname>

Database Alert Logs

You can access the database alert log using the following command where <oracle-db> is the name of the container:

$ docker logs <oracle-db>

Changing the Default Password for SYS User

On the first startup of the container, a random password will be generated for the database if not provided. The user has to mandatorily change the password after the database is created and the corresponding container is healthy.

Using the docker exec command, change the password for those accounts by invoking the setPassword.sh script that is found in the container. Note that the container must be running. For example:

$ docker exec <oracle-db> ./setPassword.sh <your_password>

This new password will be used afterwards.

Custom Configurations

Oracle Database server container also provides configuration parameters that can be used when starting the container. Following is the detailed docker run command supporting all custom configurations:

docker run -d --name <container_name> \
 -p <host_port>:1521 -p <host_port>:5500 \
 -e ORACLE_SID=<your_SID> \
 -e ORACLE_PDB=<your_PDBname> \
 -e ORACLE_PWD=<your_database_password> \
 -e INIT_SGA_SIZE=<your_database_SGA_memory_MB> \
 -e INIT_PGA_SIZE=<your_database_PGA_memory_MB> \
 -e ORACLE_EDITION=<your_database_edition> \
 -e ORACLE_CHARACTERSET=<your_character_set> \
 -e ENABLE_ARCHIVELOG=true \
 -v [<host_mount_point>:]/opt/oracle/oradata \
container-registry.oracle.com/database/enterprise_ru:19

Parameters:
 --name:                 The name of the container (default: auto generated
 -p:                     The port mapping of the host port to the container port.
                         Two ports are exposed: 1521 (Oracle Listener), 5500 (OEM Express)
 -e ORACLE_SID:          The Oracle Database SID that should be used (default:ORCLCDB)
 -e ORACLE_PDB:          The Oracle Database PDB name that should be used (default: ORCLPDB1)
 -e ORACLE_PWD:          The Oracle Database SYS, SYSTEM and PDBADMIN password (default: auto generated)
 -e INIT_SGA_SIZE:       The total memory in MB that should be used for all SGA components (optional)
 -e INIT_PGA_SIZE:       The target aggregate PGA memory in MB that should be used for all server processes attached to the instance (optional)
 -e ORACLE_EDITION:      The Oracle Database Edition (enterprise/standard, default: enterprise)
 -e ORACLE_CHARACTERSET: The character set to use when creating the database (default: AL32UTF8)
 -e ENABLE_ARCHIVELOG:   To enable archive log mode when creating the database (default: false). Supported 19.3 onwards.
 -v /opt/oracle/oradata
                         The data volume to use for the database. Has to be writable by the Unix "oracle" (uid: 54321) user inside the container
                         If omitted the database will not be persisted over container recreation.
 -v /opt/oracle/scripts/startup | /docker-entrypoint-initdb.d/startup
                         Optional: A volume with custom scripts to be run after database startup.
                         For further details see the "Running scripts after setup and on
                         startup" section below.
 -v /opt/oracle/scripts/setup | /docker-entrypoint-initdb.d/setup
                         Optional: A volume with custom scripts to be run after database setup.
                         For further details see the "Running scripts after setup and on startup" section below.

The supported configuration options are:

  • ORACLE_SID

    This parameter changes the Oracle system identifier (SID) of the database. This parameter is optional and the default value is set to ORCLCDB.

  • ORACLE_PDB

    This parameter modifies the name of the pluggable database (PDB). This parameter is optional and the default value is set to ORCLPDB1.

  • ORACLE_PWD

    This parameter modifies the password for the SYS, SYSTEM and PDBADMIN users. This parameter is optional and the default value is randomly generated. This password can be changed later as described in the section titled "Changing the Default Password for SYS User".

  • INIT_SGA_SIZE

    This parameter modifies the memory in MB that should be used for all SGA components. This parameter is optional, and the default value is calculated during database creation if it isn¿t provided. The user can refer to the section titled ¿Setting the SGA and PGA memory¿ for more details.

  • INIT_PGA_SIZE

    This parameter modifies the target aggregate memory in MB that should be used for all server processes attached to the instance. This parameter is optional, and the default value is calculated during database creation if it isn¿t provided. The user can refer to the section titled ¿Setting the SGA and PGA memory¿ for more details.

  • ORACLE_EDITION

    This parameter modifies the edition of the database when the container is started for the first time. This parameter is optional and the two values are enterprise or standard. The default value is enterprise.

  • ORACLE_CHARACTERSET

    This parameter modifies the character set of the database. This parameter is optional and the default value is set to AL32UTF8.

  • ENABLE_ARCHIVELOG

    This parameter enables the ARCHIVELOG mode while creating the database for the first time. Default value of this parameter is false.

Oracle Enterprise Manager Database Express

Oracle Database inside the container also has Oracle Enterprise Manager Database Express (EM Express) configured. To access EM Express, start your browser using the following URL:

https://localhost:5500/em/

Patching the Existing Database

Oracle Database server image uses docker data volumes to store data files, redo logs, audit logs, alert logs, and trace files. The data volume is mounted within the container at /opt/oracle/oradata. To patch an existing database container with a data volume, first stop the running container and then start a new container with latest RU image.

$ docker stop <oracle-db>
$ docker run -d --name <oracle-db> -v
OracleDBData:/opt/oracle/oradata
container-registry.oracle.com/database/enterprise_ru:19

OracleDBData is the existing data volume that is mounted within the container in the path /opt/oracle/oradata. On container startup Oracle Datapatch automatically runs to patch the data files in the existing data volume to same RU level as the latest container image.

To use a directory on the host system for the data volume, execute the following:

$ docker run -d --name <oracle-db> -v
<writable_directory_path>:/opt/oracle/oradata
container-registry.oracle.com/database/enterprise_ru:19

Note: If you provide standard as the value for the ORACLE_EDITION parameter while creating the data files for the first time, you must provide the same value when reusing those data files to start a new container.

Setting the SGA and PGA memory

The SGA and PGA memory can be set during the first time when database is created by passing the INIT_SGA_SIZE and INIT_PGA_SIZE parameters respectively to the docker run command. The user must provide the values in MB and without any units appended to the values (For example: -e INIT_SGA_SIZE=1536). These parameters are optional and if they aren't provided these values will be calculated automatically during database creation. In case these parameters are passed to the docker run command while reusing existing datafiles, even though these values would be visible in the container environment, they would not be set inside the database. The values used at the time of database creation will continue to be used.

Performing operations that require Database Shutdown/Startup

To perform operations on the database that require the restart of the database, use the maintenance shutdown/startup scripts, /home/oracle/shutDown.sh and /home/oracle/startUp.sh instead of issuing shutdown immediate and startup commands respectively as the latter would lead to exiting of the container.

Resource Requirements

The minimum requirements for the container is 25 GB of disk space and 4 GB of memory.

Running Scripts After Setup and on Startup

The docker images can be configured to run scripts after setup and on startup. Currently, .sh and .sql extensions are supported. For post-setup scripts, mount the volume /opt/oracle/scripts/setup to include scripts in this directory. For post-startup scripts, mount the volume /opt/oracle/scripts/startup to include scripts in this directory. Both of these locations are also represented by the symbolic link /docker-entrypoint-initdb.d. This provides synergy with other database docker images. You can decide whether to put the setup and startup scripts under /opt/oracle/scripts or /docker-entrypoint-initdb.d.

After the database is set up or started, the scripts in those folders are executed against the database in the container. SQL scripts are executed as sysdba and shell scripts are executed as the current user. To ensure proper order, it is recommended that you prefix your scripts with a number. For example, 01_users.sql, 02_permissions.sql, and so on.

Note: The startup scripts are executed after the first time that the database setup is complete.

The following example mounts the local directory myScripts to /opt/oracle/scripts/startup which is then searched for custom startup scripts:

$ docker run -d --name <oracle-db> -v
/home/oracle/myScripts:/opt/oracle/scripts/startup
container-registry.oracle.com/database/enterprise_ru:19

Documentation Accessibility

For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id-docacc.

Access to Oracle Support

Oracle customers that have purchased support have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.


Oracle Database Server Release 19c Docker Image Documentation

Copyright © 2006, 2023, Oracle and/or its affiliates.

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable:

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.

This software or hardware and documentation may provide access to or information about content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services unless otherwise set forth in an applicable agreement between you and Oracle. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services, except as set forth in an applicable agreement between you and Oracle.

Short URL for Repo

https://container-registry.oracle.com/ords/ocr/ba/database/enterprise_ru

License Agreement (Not Logged In)

Please sign in using your Oracle Account to accept the license agreement for the Oracle container you have selected.

Pull Command for Latest

docker pull

Tags

TagOS/ArchitectureSizePull CommandLast UpdatedImage ID
latestlinux/amd643.63 GBdocker pull container-registry.oracle.com/database/enterprise_ru:latest2 months agocdd89562b28d
21.17.0.0linux/amd643.63 GBdocker pull container-registry.oracle.com/database/enterprise_ru:21.17.0.02 months agocdd89562b28d
21linux/amd643.63 GBdocker pull container-registry.oracle.com/database/enterprise_ru:212 months agocdd89562b28d
19.26.0.0linux/amd643.25 GBdocker pull container-registry.oracle.com/database/enterprise_ru:19.26.0.02 months ago2c649e3ef70f
19linux/amd643.25 GBdocker pull container-registry.oracle.com/database/enterprise_ru:192 months ago2c649e3ef70f
19.19.0.0linux/arm643.16 GBdocker pull container-registry.oracle.com/database/enterprise_ru:19.19.0.04 months ago5e85749c169f
19.25.0.0linux/amd643.29 GBdocker pull container-registry.oracle.com/database/enterprise_ru:19.25.0.05 months ago8f776e5d33dc
21.16.0.0linux/amd643.62 GBdocker pull container-registry.oracle.com/database/enterprise_ru:21.16.0.05 months agof2456587eb29
21.15.0.0linux/amd643.65 GBdocker pull container-registry.oracle.com/database/enterprise_ru:21.15.0.08 months ago6384972f1083
19.24.0.0linux/amd643.28 GBdocker pull container-registry.oracle.com/database/enterprise_ru:19.24.0.08 months agoe4c586ec8e42