Oracle Linux 8 (OL8) : Vagrant and Docker builds for 19c Database

A couple of days ago I mentioned the certification of Oracle database 19c on Oracle Linux 8 (OL8) with UEK6.

I’ve had a bunch of OL8 articles and builds for a while, but up until now they’ve included warnings to say they weren’t certified. Over the last couple of evenings I’ve made some changes, so I thought I would summarise then here.

Database 19c on OL8 Article

My article on installing 19c on OL8 (from July last year) now includes the new preinstall package. It also mentions that the installation will work without patches, but it will not be supported unless you include the 19.7 patches, and are using UEK6.

Oracle Database 19c Installation On Oracle Linux 8 (OL8)

Vagrant Build

I’ve had a vagrant build of 19c on OL8 since last year. This has been amended to use the new preinstall package, and to optionally include the 19.7 patches if you’ve downloaded them. By default the patch script is commented out, so folks without a support contract can still use the build. This isn’t meant to be a “supported build”, so I’m not personally bothered about the patches for it, but it seemed a little wrong to not include them, even if it is lip-service.

https://github.com/oraclebase/vagrant/tree/master/database/ol8_19

The base box is ‘bento/oracle-8’, which hasn’t been updated to 8.2 and UEK6 yet. Once again, this doesn’t phase me. The ‘bento/oracle-8’ image tracks the latest release (8.0, 8.1, 8.2 etc.), so at some point it will updated to the latest spin and UEK6.

My go-to Vagrant build has typically been the “ol7_19” build. I’m now going to switch to the “ol7_19” build.

I’ve also added 19c Data Guard build on OL8.

https://github.com/oraclebase/vagrant/tree/master/dataguard/ol8_19

Container (Docker/Podman) Build

Similar to the Vagrant build, I’ve updated by Docker build. It also uses the new preinstall package and includes and optional patch script. I’ve also switched back from the “oraclelinux:8” image to the “oraclelinux:8-slim” base image, which means I had to make some changes, like using “microdnf” instead of “dnf”. Similar to the vagrant build, I’ve left the patch script commented out by default, because I only use this build for playing and demos.

https://github.com/oraclebase/dockerfiles/tree/master/database/ol8_19

My go-to container combination was “ol7_19” plus “ol7_ords”. I’m now going to switch to “ol8_19” plus “ol8_ords” for running APEX 20.1 using containers.

What’s Next?

I’ve got a few things in the pipeline.

  • RAC on OL8 Vagrant Build. I’m unsure at the moment if I will include the patching for this, as it makes it more complicated. I might just stick with the base release. It’s definitely not production, so I’m not sure how much I care about making the build slower and more complicated.
  • I’ve got some Podman stuff I want to talk about that relates to both Vagrant and Docker, but that is better served in a separate post.

Cheers

Tim…

PS. I don’t feel I should need to say this, but experience tells me I should. This stuff on GitHub is just a playground for me. There is no error checking. It’s purposely kept simple so people can read it easily. It’s not production ready. I don’t support it. It’s not scripture. If you find value in it, that’s great. If you don’t, don’t use it. 🙂

PPS. I used the pirate costume as I thought it looked funny. There was no deeper meaning behind this. It was nearly a Pharaoh.

Oracle Linux 8 (OL8) : Updates – UEK6, Podman, Database 19c Certification

Last week I had a quick email exchange with Simon Coter from Oracle about a few things related to Oracle Linux 8. I’ve been a little out of the loop over the last few weeks because of some important world event or another, so I had a bit of catching up to do.

UEK6 Went GA

UEK6 had been in preview for a while. In March it went GA, and I managed to miss that until recently. Even if you don’t care directly about the Linux kernel, this was a big thing because it was the first UEK release on Oracle Linux 8, and most of us outside Oracle were thinking this would mark the start of certification of Oracle products on OL8 (see below).

Downloads

About a month ago Oracle announced you can download the Oracle Linux ISO images from yum.oracle.com. See here.

This is much cleaner than using eDelivery, but form experience eDelivery is a lot quicker for downloads!

Podman

In Oracle Linux 8 the Oracle supplied Docker engine has been replaced by Podman. I was blindly expecting Docker CE support, like we had with OL7, once UEK6 was released. When I asked about this I got educated about Podman. About a day later someone else mentioned it on Twitter.

I’ve got a separate blog post coming about Podman.

Oracle Linux 8.2

A few days ago Oracle Linux 8.2 was born (here).

Oracle Database 19c Certified on Oracle Linux 8

In my email exchange Simon told me WebLogic was already certified on OL8, but there had been no official announcement about the database certification yet.

Today I noticed Mike Dietrich had a blog post about this. The database is now certified on OL8. 🙂

This is the certification of 19c (19.7) database on OL8 with UEK6. I don’t know what will happen with previous database versions, but I kind-of hope they don’t certify them. I want to forget older releases exist.

Once I heard this I went on to the OL8 Yum repository and noticed the “oracle-database-preinstall-19c” package is now in the repo. Happy days.

I’ve got a separate post coming about this.

Conclusion

There’s been a lot happening while I was looking in the other direction. 🙂 The moral of this story is don’t blink, and keep looking at the Oracle Linux Blog.

Cheers

Tim…

PS. There is a lot more stuff on the Oracle Linux blog. I’ve just mentioned the things that directly affect me…

Oracle Database 18c and 19c on Fedora 31

Fedora 31 was released a couple of weeks ago and I’ve done some Oracle installations on it.

Just a warning to explain why this is a bad idea for anything real.

With that out of the way, here are the articles.

Not much has changed since Fedora 30 as far as these installations go.

I’ve pushed some stuff up to GitHub for Fedora 31.

So now you know how to do it, please don’t. 🙂

Cheers

Tim…

Multitenant : Massive Changes in 19c and 20c

Is it safe to talk about this now? The announcement has happened and Mike Dietrich has posted about it, so I think so…

A couple of massive things have happened regarding the multitenant architecture in Oracle 19c and 20c.

19c

Prior to 19c, you were only allowed to have a single user-defined pluggable database (plus a root container and a proxy) without having to license the full multitenant option. I’ve been a big proponent of single-tennant or lone-PDB, but I can understand the reluctance of people to go that way, as it’s harder to realise the benefits, even though they do exist.

Oracle have now announced from 19c onward you can have 3 user-defined PDBs, without having the multitenant option. This is similar to what we got with 18c XE. As Mike points out, the documentation has already been changed to reflect this.

“For all offerings, if you are not licensed for Oracle Multitenant, then you may have up to 3 PDBs in a given container database at any time.”

Database Licensing Information User Manual

I think this is will be a massive boost for the uptake of the multitenant architecture. I’ve got some 19c stuff that will probably make use of this within days of me getting back to work!

!!!!!Amazing!!!!!

20c

Are you one of those people that have been saying, “Screw that multitenant stuff. I’m sticking with non-CDB architecture!” Good luck with that. In 20c the non-CDB architecture will be desupported.

You probably know the non-CDB architecture was deprecated since 12.1.0.2, but in 20c non-CDB is no longer an option, unless you are happy about running without support I guess.

This means your 20c upgrade will also include a migration to the multitenant architecture. What I would suggest is you start down that road today by moving to multitenant in 19c, then when you have to move to the next long term support release (2?c), you won’t be getting any surprises. What’s more, the 3 PDBs thing in 19c makes that all the more attractive!

If this announcement has made you panic, don’t worry. I’ve written a bunch of stuff about multitenant over the years, and there’s a YouTube playlist too.

Cheers

Tim…

PS. Smiles smugly to himself that he invested the time into learning multitenant from 12.1 onward…

PPS. I will be going through my existing articles amending any mention of licensing and PDB limits and desupport etc. Those changes won’t happen overnight. 🙂

Enterprise Manager Cloud Control 13.3 on Oracle Database 19c

I’ve had some articles about Enterprise Manager Cloud Control 13.3 on the site for quite a while now. The first installation and upgrade articles were posted over a year ago.

More recently I posted about a Vagrant build and a silent upgrade.

At the time, the certification matrix said Oracle 19c was not certified to hold the OMS repository, so my article and Vagrant build didn’t include it. A few days ago someone asked me if it would work on 19c, and I was just about to reply and say it wasn’t certified, but I thought I better check first. It is now certified (if you are on the latest versions of the DB plugin), so I thought I better give it a run through.

The process was the same for 19c, so all I had do was unzip the 19c media into the renamed ORACLE_HOME and the rest went fine. I’ve done some minor updates to the articles and the Vagrant build to reflect this.

So if you are on OL7/RHEL7, you are good to upgrade to 19c for the OMS repository. 😉

Happy days!

Cheers

Tim…

Update: JE in the comments pointed out the requirement to be on the latest plugins for 19c to work (see here). They also pointed out the loss of the Top Activity screen. From my perspective:

  • I always run with the latest plugins if possible.
  • The Top Activity screen is replaced by the ASH Analytics screen, which does all the same things, but I would say the window adjustment makes it a bit better. It took a little time to get used to it, but I use it in the same way I used the Top Activity screen on versions from 11.2 to 19c with no drama.

Q: Is the CREATE JOB privilege required in 19c? A: No!

A couple of people have already written about a new feature in oracle 19c, which converts jobs created using DBMS_JOB into DBMS_SCHEDULER jobs.

I finally got round to writing up my notes about it here.

The conversion comes with rather interesting consequences.

The scheduler side of things is tighter. As Connor pointed out you now need the CREATE JOB privilege to use the DBMS_JOB package. That’s nice, but isn’t that the opposite of the title of this post? Yes, but…

The problem is the re-implementation of materialized refresh groups using the DBMS_REFRESH package didn’t seem to follow the same approach. You can create a refresh group, which creates a DBMS_SCHEDULER job, without needing the CREATE_JOB privilege. Once you own a job, you can amend it, which means there is now a method to create DBMS_SCHEDULER jobs without needing the CREATE JOB privilege. Doh! You can see an example of it in 19.3 here.

Thoughts:

  • It’s clearly a bug, and I’m sure it will be picked up in a future release.
  • Although it seems pretty bad, remember the DBMS_REFRESH and DBMS_JOB packages are available by default and in previous releases you didn’t need the CREATE JOB privilege to them.
  • If this is a problem you can revoke execute on DBMS_REFRESH from PUBLIC, like you may have been doing for DBMS_JOB already.

Cheers

Tim…

PS. SR raised.

SR 3-20860955641 : Jobs can be created without the CREATE JOB privilege.

PPS. This is now Bug 30357828 and is being worked on.

Video : Docker : Oracle Database Build

Today’s video is a look at a simple Docker build for an Oracle database. In this example we are using Oracle database 19c on Oracle Linux 8 (oraclelinux:8-slim).

You can get an overview of this build in the following article.

You can see my other Docker posts and builds here.

The star of today’s video is “The Why Guy” Jim Czuprynski. 🙂

Cheers

Tim…

Oracle 18c and 19c on Oracle Linux 8 (beta)

Fresh on the back of yesterday’s Fedora 30 post, I noticed a post from Avi Miller about the release of Oracle Linux 8 Beta. I had a day off work, so once I had finished the Fedora 30 builds, I started on the Oracle Linux 8 builds.

It should be obvious, but this is a beta release of the OS, so everything below is just me playing. It will all have to be done again, and done “properly” once the final release appears. Even then, it will be a while before anything is certified against the new OS, so don’t take this seriously.

I’ve pushed some stuff up to GitHub. It uses a Vagrant box I created myself, in the same way I wrote about here.

I think it’s time I did something “real”, rather than playing around with stuff that doesn’t relate to something I would do at work. 🙂

Cheers

Tim…

Oracle 18c and 19c on Fedora 30

As is customary, Fedora 30 has been released and I’ve done some Oracle installations on it.

Before we get to the good stuff, let’s do the warnings.

With that out of the way, here are the articles.

Not surprisingly, things feel pretty similar to Fedora 29 from an Oracle perspective. There are a few small edits to the process due to the package changes with this OS version.

I’ve pushed some stuff up to GitHub, but there is no Vagrant box available for Fedora 30 yet, so I had to create my own, in the same way I wrote about here.

So now you know how to do it, please don’t. 🙂

Cheers

Tim…

Video : JSON_SERIALIZE Function in Oracle Database 19c Onward

Today’s video is a brief run through the JSON_SERIALIZE function, introduced in Oracle 19c. If you have used any of the other SQL/JSON functions, it’s going to feel pretty familiar.

For those people that prefer there information in written form, you can read about this function here.

The star of this video is Zahid Anwar, or ZedDBA. 🙂

Cheers

Tim…