Oracle Database 12.1.0.2 Express Edition
After a while got time to explore the new learning in my way. Oracle 12.1.0.2 Express edition on docker container is my goal. In this post I am going to explain you how did I achieved this with different path of using docker-compose commands to bringing up the automated XE container. The regular choice is defined in GitHub and Docker hub it was mentioned to use docker pull and docker run commands to use.
Advantages of containerizing Oracle 12c XE
- No need to download any software from OTN
- No need to install - dockerfile will take care of it
- No need to run dbca for Database cration - executed moment container boot time
- No need to start LISTENER, STARTUP database because this container choosen is AUTOMATED [OK]
Lets search for the Oracle 12c XE
docker search oracle12c
Output of docker search result
Docker Oracle 12c XE search |
The docker-compose for Oracle 12c XE Database
oracle12cxe: image: rodrigozc/oracle12c ports: - "1521:1521" - "8089:8080" - "2222:22"
docker-compose config networks: {} services: oracle12cxe: image: rodrigozc/oracle12c network_mode: bridge ports: - 1521:1521 - 8089:8080 - '2222:22' version: '2.0' volumes: {}
docker-compose up -d Creating oraclexe_oracle12cxe_1Now lets check the docker-compose wit running process list
docker-compose ps Name Command State Ports ----------------------------------------------------------------------------------------------------------------------- oraclexe_oracle12cxe_1 /entrypoint.sh Up 0.0.0.0:1521->1521/tcp, 0.0.0.0:2222->22/tcp, 0.0.0.0:8089->8080/tcp
SSH Connection with port 2222
Using PuTTY terminal you can connect to the container that is running Oracle 12c XE database in it.
Oracle 12.2.0.1 XE docker container SSH connection |
check logs what is happening in the container when it was just started...
vagrant@docking ~/oracle_xe $ docker-compose logs oracle12cxe Attaching to oraclexe_oracle12cxe_1 oracle12cxe_1 | SSH server started. ;) oracle12cxe_1 | ls: cannot access /u01/app/oracle/oradata: No such file or directory oracle12cxe_1 | Database not initialized. Initializing database. oracle12cxe_1 | Starting tnslsnr oracle12cxe_1 | Copying database files oracle12cxe_1 | 1% complete oracle12cxe_1 | 3% complete oracle12cxe_1 | 11% complete oracle12cxe_1 | 18% complete oracle12cxe_1 | 37% complete oracle12cxe_1 | Creating and starting Oracle instance oracle12cxe_1 | 40% complete oracle12cxe_1 | 45% complete oracle12cxe_1 | 50% complete oracle12cxe_1 | 55% complete oracle12cxe_1 | 56% complete oracle12cxe_1 | 60% complete oracle12cxe_1 | 62% complete oracle12cxe_1 | Completing Database Creation oracle12cxe_1 | 66% complete oracle12cxe_1 | 70% complete oracle12cxe_1 | 73% complete oracle12cxe_1 | 85% complete oracle12cxe_1 | 96% complete oracle12cxe_1 | 100% complete oracle12cxe_1 | Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/xe/xe.log" for further details. oracle12cxe_1 | Configuring Apex console
Here the log file shows that installation successful. And Now lets check the Expression Edition Enterprise manager console
http://192.168.33.100:8089/em
Oracle Enterprise Manager database express 12c Login page |
After login successful you will get the SYSDBA access.
Create User on Oracle 12c EM Console |
Create User account as demouser |
Tablespaces for demouser |
Assign privileges RESOURCE, CONNECT to demouser |
Create User SQL statement processed succesfully |
In the PuTTY terminal connect with oracle/welcome1 ssh credentials.
export ORACLE_HOME=/u01/app/oracle/product/12.1.0/xe export PATH=$ORACLE_HOME/bin:$PATH
To check Oracle Database running with process that have pmon word:
ps -ef|grep pmonYou can check for the Oracle database configured and the Listener started with entrypoint.sh script.
lsnrctl status LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 04-SEP-2017 19:16:36 Copyright (c) 1991, 2014, Oracle. All rights reserved. Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 12.1.0.2.0 - Production Start Date 04-SEP-2017 18:33:10 Uptime 0 days 0 hr. 43 min. 26 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Log File /u01/app/oracle/diag/tnslsnr/38a4e2e216dd/listener/ale rt/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=38a4e2e216dd)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=38a4e2e216dd)(PORT=8080))(Presentati on=HTTP)(Session=RAW)) Services Summary... Service "xe.oracle.docker" has 1 instance(s). Instance "xe", status READY, has 1 handler(s) for this service... Service "xeXDB.oracle.docker" has 1 instance(s). Instance "xe", status READY, has 1 handler(s) for this service... The command completed successfully
Confirm the User creation
Using SQL*Plus you can test the connection to the demouser that created in the above section.sqlplus demouser/welcome1@localhost:1521/"xe.oracle.docker"Output looks like this:
connection validation using SQL*Plus |
You can also define your own SID and use that for creating RCU and move further.
Please share your feedback on this experiment how it helps you and any suggestions to improve more posts on containerization in Oracle DevOps.
References:
Git Hub link for Oracle 12c+ SSH
Docker hub link of Rodrigozc