Running Oracle 19c in a Docker container: part 2: server up and running

Following on from my first attempt to get Oracle 19c running in a Docker container and running out of disk space in my VM, I increased the disk space to 40GB and restarted the steps to build the image. It took about 1.5hrs to complete building and doing the install into the image. Although building an image is a one time activity, unless you’re making changes to the image that’s still a long time, and not something you can do on a regular basis or on demand.

Next, starting up an container from the image, using the provided docker command from the docs:

docker run --name <container name> \
-p <host port>:1521 -p <host port>:5500 \
-e ORACLE_SID=<your SID> \
-e ORACLE_PDB=<your PDB name> \
-e ORACLE_PWD=<your database passwords> \
-e ORACLE_CHARACTERSET=<your character set> \
-v [<host mount point>:]/opt/oracle/oradata \
oracle/database:19.3.0-se2

It then takes around 30mins before the server is actually up and running. At least it gives you some percentage status outputs as it’s starting up, but again, not really practical for starting a server up ondemand or on a whim. For reference, this is on my HP DL380 G7 server with dual 2.4GHz Xeons, running in an Ubuntu 18.04 VM with 4 vCpus and 8GB RAM.

Up and running:

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 24-MAY-2019 04:55:03
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Starting /opt/oracle/product/19c/dbhome_1/bin/tnslsnr: please wait…
TNSLSNR for Linux: Version 19.0.0.0.0 - Production
System parameter file is /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Log messages written to /opt/oracle/diag/tnslsnr/8363ae964727/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 24-MAY-2019 04:55:04
Uptime 0 days 0 hr. 0 min. 1 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Listener Log File /opt/oracle/diag/tnslsnr/8363ae964727/listener/alert/log.xml
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
The listener supports no services
The command completed successfully

Prepare for db operation
8% complete
Copying database files
31% complete
Creating and starting Oracle instance
32% complete
36% complete
40% complete
43% complete
46% complete
Completing Database Creation
51% complete
54% complete
Creating Pluggable Databases
58% complete
77% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
/opt/oracle/cfgtoollogs/dbca/ORADB1.
Database Information:
Global Database Name:ORADB1
System Identifier(SID):ORADB1
Look at the log file "/opt/oracle/cfgtoollogs/dbca/ORADB1/ORADB1.log" for further details.
SQL*Plus: Release 19.0.0.0.0 - Production on Fri May 24 05:17:49 2019
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

Created a connection in SQLDeveloper and can connect!

Running Oracle 19c in a Docker container: part 1: out of disk space on my VM

This should be filed under “Can you? Yes. Should you? Probably not”

I tried creating a Docker container running Oracle 19c from Oracle official dockerfiles, and straight out of the gate ran out of diskspace:



!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
checkSpace.sh: ERROR - There is not enough space available in the docker container.
checkSpace.sh: The container needs at least 18 GB, but only 14 GB are available.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Removing intermediate container b53a5e13a45c
The command '/bin/sh -c chmod ug+x $INSTALL_DIR/*.sh &&     sync &&     $INSTALL_DIR/$CHECK_SPACE_FILE &&     $INSTALL_DIR/$SETUP_LINUX_FILE &&     rm -rf $INSTALL_DIR' returned a non-zero code: 1


ERROR: Oracle Database Docker Image was NOT successfully created.
ERROR: Check the output and correct any reported problems with the docker build operation.

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           798M  1.3M  797M   1% /run
/dev/sda2        30G   12G   17G  41% /

The container needs at least 18GB? Of course it does.

Time to expand my VM disk space (using notes from when I previously had to do this here), and try again.

Oracle Linux 7: “one of the configured repositories failed”

After a fresh install of Oracle Linux 7.4 and trying to run a ‘sudo yum update’ I get:

One of the configured repositories failed (Latest Unbreakable Enterprise Linux Server 7 Server (x86_64)

Following the recommendations following the error didn’t help, and this post suggested trying a ‘sudo yum clean’, but this didn’t fix it either.

Checking if I have network connectivity, it’s seems I can’t ping www.google.com or ping 8.8.8.8. I’ve come across this before with RHEL/CentOS installs and forgetting to enable the network interface options during install. Checking /etc/sysconfig/network-scripts/ifcfg-* the ONBOOT property was set to no. Changing it to yes and rebooting did the trick.

 

Major changes underway at Oracle: SPARC and Solaris teams laid off, Java EE oversight goes to Eclipse Foundation, future Java SE major releases proposed for twice a year

Oracle has been rather busy last few weeks. First, news that the Solaris and SPARC teams from Oracle’s acquisition of Sun Microsystems have reached the end of the road, and the majority of the teams have been laid off. The layoffs started at the start of this year, and the recent round apparently leaves only a small team left.

Last month there was a blog post to The Aquarium suggesting that Oracle would be open for another group or organization to drive stewardship for the Java EE spec. Looking back at past events, it’s no surprise that some significant changes were coming. Things started changing with the layoffs of the majority of the Java evangelists back in September 2015 and the letter assumed to be from one of the evangelists to InfoWorld stating that “… Java has no interest to them anymore”. Oracle’s lack of involvement in the development of Java EE started to gain notice by the other JCP members in minutes of the JCP Executive Committee in May and June 2016 leading to statements in the public minutes such as:

“…concern that Oracle, despite its role as steward of Java, has not made any public statements or explanations for the apparent lack of activity on Java EE”

There was also a formal statement by the JCR Executive Committee directed to Oracle formally voicing their concern with recent lack of JSR activity and involvement by Oracle:

“EC members expressed their serious concerns about the lack of progress on Java EE. They believe that Java EE is critical to the Java ecosystem and to their organizations and customers. They fully accept Oracle’s right to direct its investment where it wishes, but expressed the hope that they and other members of the Java community be permitted to step in and help with the ongoing development of the platform, particularly in areas where Oracle wishes to reduce its investment. They therefore requested a dialog with Oracle about how to make such a transition.”

This was followed in June 2016 by a statement by ‘Oracle spokesman’ Mike Moeller that Oracle were still committed to Java EE and were planning on a proposal to the community a t JavaOne 2016. This proposal turned out to be a ‘refocusing’ of the changes in the Java EE 8 proposal, namely dropping new features and changes that were not aligned with current industry trends (particularly microservices, so the MVC spec and a number of other proposals got dropped from the EE8 JSR).

From last month’s post that Oracle was open to consider another organization to drive future development of Java EE, yesterday it was announced (more here) that the Eclipse Foundation will be the new stewards of Java EE. Given Oracle’s recent lack of involvement, it’s great that they even considered this move, and hopefully the future of EE will be in good hands with the Eclipse Foundation.

If that news was not enough, Mark Reinhold also posted recently that after the slow release schedule of the past few major Java SE releases, they’re considering a twice yearly major release cycle moving forward after the planned release of Java 9 on September 21 (after many delays already). Two major releases a year is a massive change compared to the 3 year current release cycle (between Java 7 to Java 8 and between 8 and the upcoming Java 9 releases). Hopefully this means some good things are going to be coming to Java across the board, SE and EE, in the near future.