Video : Vagrant : Oracle Database Build (19c on OL8)

Today’s video is an example of using Vagrant to perform an Oracle database build.

In this example I was using Oracle 19c on Oracle Linux 8. It also installs APEX 19.1, ORDS 19.2, SQLcl 19.2, with ORDS running on Tomcat 9 and OpenJDK 12.

If you’re new to Vagrant, there is an introduction video here. There’s also an article if you prefer to read that.

If you want to play around with some of my other Vagrant builds, you can find them here.

If you want to read about some of the individual pieces that make up this build, you can find them here.

The star of today’s video is Noel Portugal. It’s been far too long since I’ve seen you dude!

Cheers

Tim…

APEX 19.1 Upgrades : My Experience

With the exception of one application, which is taking a little longer to test, we’ve upgraded all our APEX installations to APEX 19.1.

I thought it would be good to share my experience of this, in case anyone is a little on the cautious side. 🙂

The vast majority of upgrades went fine. We just did the standard upgrade (install), without trying to minimise the downtime at all.

I should spend some time playing with the method for reducing downtime, but it’s hard to justify when the downtime is already short and acceptable. 🙂

One group of databases did prove problematic. It has done for previous upgrades also. The upgrades failed and I had to uninstall APEX, do a little bit of cleanup (dropping users), install it again, recreate the workspaces and redeploy the applications. It was a pain in the ass, but not difficult or time consuming. I have no idea why they failed, but as I said, it’s not the first time that has happened for this group of instances. If I had more time to play with it I’m sure I could find out, but as I know a reinstall fixes it, and time is an issue, you know what I’m going to do. Just run the scripts and move on…

As far as the applications themselves, there were no dramas. We try to keep things simple and most things are pretty vanilla, so it’s not like we are pushing any boundaries, which will expose anything. 🙂

I’ve seen some people have had problems with APEX 19.1 when it’s fronted by Apache and Nginx reverse proxies. We’ve got a mix of ORDS on Tomcat, and some things still using mod_plsql (don’t judge me 🙂 ) on OHS. This is all fronted by F5 Big IP load balancers as the reverse proxy, and we’ve not had any of those issues. 🙂

So all in all, pretty easy and what I was expecting.

Cheers

Tim…

PS. As always, I feel the need to point out we are a relatively small user of APEX, but it’s growing. Having said that, it’s installed on almost all of our Oracle databases. Added to that, I’m really aggressive about APEX upgrades, and will be even more so when the last of our systems move over to ORDS. Others may want to exercise a little more caution than me. 🙂

APEX 19.1, Vagrant and Docker

Last night Joel Kallman announced the release of APEX 19.1.

It wasn’t exactly a surprise as the APEX 19.1 Early Adopter site was shutdown and there was a maintenance window on apex.oracle.com, which is running APEX 19.1.

I downloaded the 19.1 software and plugged though my Vagrant and Docker stuff bringing it up to date. If you are into that stuff you can find it on my GitHub.

I guess this means I can start the process of upgrading everything at work on Monday. 🙂

Cheers

Tim…

Oracle Application Express (APEX) 18.2 : Upgrades Complete

A few days ago Joel Kallman announced the release of Oracle Application Express (APEX) 18.2.

In a previous post I mentioned the updates to my Vagrant builds to include this version, as well as updates of Tomcat and Java. I’ve subsequently done the updates for APEX 18.2 on Docker too. If you are interested you can see them here.

In addition to this we’ve rolled APEX 18.2 out at work. We already had some installations of APEX 18.1, but many were stuck on version 5.1.4 because of time constraints. Now everything is up to APEX 18.2. We still have a range of database versions (11.2, 12.1, 12.2 and soon to be 18c) at work, and it’s worked fine on all of them.

I spied a couple of people asking about the upgrade process. There’s no difference to previous versions. In the past, if one of the first two numbers change you do a regular install. If it’s not one of those major version changes you download the patch from MOS and apply it. Since this is a major version number change, I installed it in the normal way and everything was fine. I’m not sure how this will work going forward, as I suspect all releases will start to use the new version format, so does that mean every release from now on will be an “install”, not a “patch”? (see update) Someone has probably discussed this already and I missed it. 🙂

I only have one little gripe about the upgrades, which is I have to run an ORDS Validate once it’s complete to make sure ORDS is working fine. It would be really nice if APEX could fix whatever gets broken in ORDS, so I don’t have to do it. It’s just one less step to do… 🙂

Happy upgrading…

Cheers

Tim…

Update: The subject of install vs. patch was raised at OpenWorld 2018. I sounds like the current plan is to get rid of patches and take the install approach each time. The APEX team are working on reducing the downtime associated with the upgrades…

APEX 18.1 Docker Builds Updated

You’ve probably seen that APEX 18.1 was released recently. This is just a quick note to say I’ve updated my Docker builds to include the latest versions of all the software including APEX. You can find the builds here.

https://github.com/oraclebase/dockerfiles

I always install APEX into every database, so the database builds include APEX and the ORDS build includes the APEX images.

Remember, I’m not saying you should use these, but if you like to play around with Docker you might find them useful, along with my Docker articles here.

Regardless of how you like to use APEX, get on board with APEX 18.1… 🙂

Cheers

Tim…

Hey DBA, install/update APEX!

I recently got a question about APEX, which in itself is kind-of funny as it’s a case of the blind leading the blind, but as a result of that question it became apparent the poster was running a very old version of APEX. My first reaction was “Dude, you really need to upgrade!”. It was at that point I was hit with a line I’ve heard a lot over the years.

“Our DBA(s) won’t install/upgrade APEX!”

This gets on my nerves for a few reasons.

  • APEX is a free (no cost option?) tool. Why would you not take advantage of it if it fits your purpose?
  • Even if you don’t want to use APEX directly, it comes with some useful code. I use the APEX_JSON and APEX_WEB_SERVICE packages all the time from PL/SQL. Why would you hinder your PL/SQL developers by not giving them access to useful stuff?
  • If you already have APEX installed, why would you possibly think it is good to run an old version? Like any other piece of software the upgrades include bug fixes, not just new functionality. Are you really happy about running with un-patched functionality?
  • Of course the newer versions have improved functionality, which is just nice to have. 🙂

I guess I can kind-of understand companies/people who don’t want to install an extra product into the database as it’s another thing to manage, but I really don’t understand people running old versions. I see nothing but disadvantages in that…

So back to the title of this post, “Hey DBA, install/upgrade APEX!”

Cheers

Tim…

Oracle Application Express (APEX) 5.1.1 : Live on Production Systems

I wrote a post a couple of weeks ago about our roll-out of APEX 5.1.1 to our Dev and Test systems. In that post I said we would probably go live pretty quickly. I intended to write a quick post to say when it happened, then promptly forgot… 🙂

Just a quick note to say there were no issues found in our Dev and Test systems, so we quickly moved it out to production. I think it was less than a week from start to finish.

As always I feel the need to point out that our usage of APEX is quite basic. We don’t have loads of applications and the ones we have aren’t super complex, so it’s pretty easy for us to quickly get some confidence in a new release. I’m not suggesting heavy APEX users should be quite as rapid as us. That said, I think it’s nice to let people know that this stuff does do what it’s meant to. 🙂

We now have 5.1.1 in all our production systems. Happy days!

Cheers

Tim…

Oracle Application Express (APEX) 5.1.1

I read Joel Kallman’s post this morning announcing the release of APEX 5.1.1. We’ve got APEX 5.1 across the board, so I downloaded patch 25341386 from MOS, as instructed, and went to work patching stuff.

The patching was just like every other patch I’ve done for APEX (see here), super easy. 🙂

I thought there was a problem with the APEX images, but it turned out I was a donkey and I’d copied the images to the wrong directory on one of the app servers. 🙂

We now have APEX 5.1.1 on all Dev and Test systems. It went so well I’ll probably push it to production really soon. Happy days. 🙂

Cheers

Tim…

Oracle Database 12c Release 2 (12.2) : Default APEX Installation Gone!

I’m a fan of APEX, but I am not a fan of the shared installation used in Oracle Database 12.1. I’m sure it is great for some people, but not for me. I prefer to have APEX installed locally in the PDB, which prompted this article.

Fast forward to Oracle Database 12c Release 2 (12.2) and APEX is no longer installed by default. It’s still shipped with the software, see $ORACLE_HOME/apex (see update), but not installed. I am conflicted about this…

  • On the one hand this is great because I don’t have to worry about removing the shared APEX installation before installing it into the PDB.
  • On the other hand this means people have to make an active choice to install APEX, which not everyone will do. That’s a pity. In addition to the tool itself, there is some useful APIs that come with it, like APEX_WEB_SERVICE and APEX_JSON. You don’t really need the later in 12.2 as you have lots of new JSON support, but it’s good to have for backwards compatibility.

So just remember you have an extra job to do after you’ve installed your database, which to install the latest version of APEX. 🙂

Cheers

Tim…

Update: As per comment from Joel Kallman, always download the latest version and install in the PDB locally, not in the root!

APEX 5.1 in Production

Just before Christmas I wrote a post about upgrading our development and test APEX installations to the new 5.1 release. We’ve now got it in all our production environments too. 🙂

As far as I’m aware we only had a single issue, which was not directly related to APEX and was actually my fault. I forgot to add the APEX_050100 user to an ACL, so some non-APEX code that was doing web service callouts using the APEX_WEB_SERVICE package stopped working. Once that was added to the ACL all was good.

As always I must stress our company is not a massive user of APEX and most of our applications are fairly vanilla APEX against 11.2.0.4 and 12.1.0.2 databases, so I’m not suggesting your experience will be the same as ours. That said, the move from APEX 5.0.4 to APEX 5.1 was really painless for us.

Cheers

Tim…