Oracle 19c Released : How does that make you feel?

Back in 2017 I wrote a post about the move to the yearly release cycle for Oracle software. It’s over 18 months since that post and we’ve had 18c and now 19c released (on LiveSQL), so I thought I would reflect on some of the pros and cons I mentioned in that original post. If you want to know what I originally said about these points, go back to the original post.

Pros

  • Quicker release of features : It’s becoming clear to me that some of the 18c features were actually 12cR2 features that didn’t make it into the documentation, even though they were present in the product. I’m not sure if these were present in the initial release of 12.2.0.1, or got introduced in the proactive bundle patches later. I have no problem with this, but it feels like the documentation is not keeping up with the new features added in the release updates. Where 18c is concerned we’ve had 18.1, 18.2, 18.3, 18.4 and now 18.5, but I don’t see a change in the documentation. Now a drop of the documentation once a year that includes the latest changes is better than the once every 4 years, but it still feels odd that we’re getting new functionality added, but no way to see that except for scouring MOS notes. I wonder if this situation will continue in 19c release.
  • Predictable release cycles : Yes. Nice.
  • Stability : This was originally one of my cons, but I’m going to move it to the pros section. I was worried the quicker release cycle might lead to a lack of stability, rather than the improved stability. I don’t know how other people feel, but 12.2 and 18c have been pretty good for me. I try and apply the proactive bundle patches (BP), now Release Updates (RUs), so I’m going all-in and things have been good. We are a “middle of the bell curve” company, so I probably won’t experience some of the edge cases you might, but that’s what I feel about it. I hope 19c continues this trend, as I see it.

Cons

  • Upgrade/Patch burnout : I’m currently upgrading some databases to 18c, but part of me is thinking, “What’s the point?” Let’s say the on-prem 19c drops in April, and we will wait for the first RU after that which might be July. I’m potentially only 6 months from having a viable 19c upgrade path, which is after all the Long Term Support (LTS) release. Should I bother with 18c now? I can understand if some people say no. I’m still going to move forward, as this solves some other issues for me, including the conversion to Multitenant of some 11.2 instances, which will make future upgrades easier. Having said that, mentally it is a downer and I can feel an element of this burnout I predicted.
  • Product Support/Certification : Yep. As predicted, many companies don’t seem to recognise that 18c even exists, let alone support their products on it. If I were charitable I would say they are waiting for 19c as it’s a LTS release, but in reality they are still struggling to check that 12.2 PDBs work for their products. I hope vendors get their act together to provide support for these new versions more quickly. That includes Oracle too.

Unsure

  • Learning : This still concerns me. I got access to 18c straight away on Oracle Cloud and LiveSQL, so really I’ve had nearly a year of 18c. For those people that first experienced it after the on-prem release, they’ve had about 6 months experience and the 19c hype train has started. Now it will still be a year from one on-prem release to the next, but it just kind-of feels like it’s only a 6 month release, if you know what I mean. I’m currently still writing about 18c features, but part of me is thinking, “What’s the point?” My mind is looking forward to 19c. As we move forward I realise each release will be smaller, so working through the new features will not be so heavy, but I’m still worried people (and I really mean me) will disconnect.
  • Certification : I just checked today and they are still pushing the 12cR2 certification. Now this is still relevant, as 18c and 19c are effectively 12.2.0.2 and 12.2.0.3 respectively, but it just sounds bad. Hey, 19c has just been released and I’m working for the 12cR2 certification? I get the distinct feeling certification is dead to me now. Let’s see what Oracle Education do with this. Maybe I’ll change my mind.

Of course, it’s still early days so we will see how the cookie crumbles over the coming releases. I suspect I may be forced to cherry-pick a little.

Cheers

Tim…

PS. A Twitter comment from Frits Hoogland made me feel I should add something. If you are happy with what you have and don’t feel the need to upgrade often, that’s cool. Constantly chasing an upgrade can be problematic because of the instabilities it can cause. The new release cycle is allegedly meant to reduce that by drip-feeding change in smaller, manageable chunks…

Although a DBA may like some of the new features, they affect comparatively few people in the company. I feel development new features are a bigger draw for getting people to buy into the upgrade cycle. Just this week a project started on an existing 11.2 instance, but involved a bunch of JSON functionality, so it was moved across to an 18c instance. The developers only know this functionality is in 12.2 and 18c because I’ve actively promoted it. If I had not done this, they would have stuck with 11.2 and wasted a bunch of time manually coding stuff.

I’m a fan of keeping up with the latest versions, both personally and in the companies I work. In my experience avoiding upgrades and patches tends to cause more problems than keeping relatively up to date. Just my opinion though…

VirtualBox 6.0.2

VirtualBox 6.0.2 has been released.

The downloads and changelog are in the usual places.

I’ve installed it on my Windows 10 laptop at work, which I use with Vagrant for testing of Oracle, WebLogic, Tomcat server builds, as well as Docker builds. I’ll do my personal Windows 10 laptop, old MBP and OL7 server when I get home.

Update: I’ve done an install on my Windows 10 laptop, MackBook Pro running macOS Mojave and a server running Oracle Linux 7. The installations of VirtualBox 6.0.2 on all hosts worked fine. I rebuilt a bunch of VMs using Vagrant 2.2.3 and everything looks good.

Cheers

Tim…

My GitHub, Vagrant and Docker Updates

I thought I would post an update about some of the things I’ve been doing that don’t necessarily fall exactly in line with my normal website content. All of it can be found on my GitHub.

Vagrant

Once the ‘bento/fedora-29’ box was released I created a Oracle 18c on Fedora 29 build. If you are interested in that sort of thing you can find it here.

A few of the other Vagrant builds have been updated to use the ‘bento/oracle-7.6’ box. I’ve run through them all and they seem to be fine.

As part of a recent question, I ran my RAC builds on Windows 10, Oracle Linux 7.6 and macOS Majave hosts. They all worked fine, with no drama. I also tried them with less memory than before, as my MBP only has 16G of memory. It worked fine. I updated some of the “README.md” files to reflect these tests, and the option to use less memory.

I’ll be doing some stuff with Data Guard soon, so I will probably update those builds to use the latest ‘bento/oracle-7.6’ box and maybe neaten up anything that annoys me along the way. 🙂

All the Vagrant-related stuff can be found in this GitHub repository.

I’ve always assumed Vagrant was so simple it didn’t really require much in the way of explanation, but I was discussing it with someone from work, and figured it was worth a short post to explain a few things, just to save me having to repeat myself, so here it is.

Docker

I’ve done a few random things on Docker recently. Nothing particularly earth-shattering, but maybe worth a mention.

At UKOUG last year (a month ago 🙂 ) I was speaking to Roel Hartman about some stuff he mentioned in his Docker session. As a result of that I had a play with Portainer and Docker Swarm. I know Kubernetes has won the container orchestration war, but Swarm is so simple and does most of what I need.

I also needed to make some changes to my DB and ORDS Docker images to make using host directories as persistent volumes a little easier. I wrote these up as some short posts.

All the Docker-related stuff can be found in this GitHub repository.

As always, I feel the need to mention I’m not an expert in this stuff, and I don’t consider any of is “production ready”. It’s just stuff I’m playing with to learn the tech. If you find it useful, great. If not, that’s OK too. 🙂

Cheers

Tim…

Why Automation Matters : Consistent Test Environments

I’ve already made this point in a previous post, but I thought it was worth mentioning in a little more detail.

One of the neat things about automation is it gives you the ability to quickly build/replace test environments, so you know you have a consistent starting point. This is especially important for automated testing (unit, integration etc.), but it also applies to your learning experience.

I’m currently learning about a bunch of Oracle 18c new features. Some of those features are limited to engineered systems and Oracle Database Cloud Services. Not to worry, there is a little hack that gets you round some of those restrictions for testing purposes.

alter system set "_exadata_feature_on"=true scope=spfile;
shutdown immediate;
startup;

In some cases I’m enabling extended data types. I’m also building additional test instances, and multiple test users, each requiring different levels of privileges.

So I finish learning about feature X and I move on to learning about feature Y. What am I bringing along with me for the ride? What problems will I run into, or not run into, as a result of the hacks I put in place for the previous test? I have no way of knowing.

This is where automation comes in really useful. You can quickly burn and build your test environment and start with a clean slate. This can also be really useful to check your understanding, by rerunning your tests on clean kit. Did you really remember to write down everything you did? 🙂

It’s kind-of obvious I know, but it’s really surprising how often I’m rebuilding my testing kit these days. I’m literally talking multiple times a day just when I’m messing about with stuff. Earlier in the week someone asked me a question about RAC builds and I did the following in a 3 hour period, while I was doing other stuff. 🙂

  • Oracle 18c RAC build on a Windows 10 host.
  • Oracle 12.2 RAC build on a Windows 10 host.
  • Oracle 18c RAC build on an Oracle Linux 7.6 host.
  • Oracle 18c RAC build on a macOS Mojave host.

There’s no way I could have contemplated that without automation.

When you are learning new stuff, the last thing you need to worry about is being thrown off target by crap left over from previous tests, so just start again with a clean slate!

Cheers

Tim…

PS. I know sometimes you can learn interesting stuff by making mistakes, like finding out that feature X and feature Y are incompatible, but I think you should approach those sort of tests in a controlled and conscious manner. Learning the basics first is far more important in my opinion.