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…

Video : JSON_OBJECT Function Enhancements in Oracle Database 19c

Today’s video is a demonstration of some of the enhancements to the JSON_OBJECT function in Oracle Database 19c.

If videos aren’t your thing, you can get the same information, and more, from this article.

The star of today’s video is Patrick Jolliffe. 🙂

Cheers

Tim…

Oracle Database 19c : Installations, RAC, Data Guard and Upgrades

I’ve been playing around with Oracle Database 19c on LiveSQL since it was upgraded, and I pretty much thought that would be what I was stuck with until the on-prem release, as I don’t have an Exadata and it’s not on Oracle Cloud DBCS yet. Having seen a bunch people doing stuff on VMs, I got a bit frustrated and looked on eDelivery and low and behold the 19c software is available for download, even if you don’t have a Exadata CSI. I’m sure 18c was restricted during this period…

I’m pretty sure you wouldn’t be supported to use this for anything real (that wasn’t Exadata of course) until the on-prem drop, which will probably be 19.3 if they repeat what happened for 18c, but it does allow you to have a play.

Having a bunch of Vagrant environments for 18c already, meant it was pretty easy to test a whole bunch of 19c stuff within a few minutes, as most of the basics are very similar. Just minor changes to package recommendations. As a result I’ve pushed out the following stuff in the last couple of evenings.

Along the way I’ve committed a whole bunch of stuff to GitHub.

  • Vagrant build of 19c on OL7 with APEX and ORDS (here).
  • Vagrant build of 19c on Fedora 29 (here).
  • Vagrant hands-off build of 19c RAC on OL7 (here).
  • Vagrant hands-off build of 19c Data Guard on OL7 (here).
  • Docker 19c on OL7 build (here).
  • Docker compose (here) and swarm (here) stacks.

It should be obvious, but remember this is literally the first time I’ve done this stuff with 19c, so things will change over time. I just wanted to try some stuff out to see what happened, and have some test environments to play with while I’m checking out the new features. Once the real on-prem drop happens I’ll bring these up to date.

If nothing else, this is once again proof of how awesome automation is. A few minor tweaks and boom, there’s a new set of test environments. 🙂

Now I can get back to doing what I was meant to be doing… 🙂

Cheers

Tim…