My Vagrant Habit

I’ve posted a lot about automation and Vagrant over the last year. It’s got to the point where I find it quite difficult/annoying to create a VM manually anymore. I hadn’t really noticed this until a couple of days ago…

I wanted to try some stuff out with Fedora 30, which is currently in beta. I had a look and couldn’t find any Vagrant boxes for Fedora 30, so I downloaded the ISO image and started to do a manual creation of a VM. It wasn’t very long before I got really annoyed, because it felt so clumsy, and there were so many silly little things I had to do that Vagrant either does for me, or are really simple to configure with Vagrant. After a few minutes I threw my toys out of the pram and started to read up on creating a Vagrant base box. In all this time I had never created one for myself. Turns out it’s really simple.

Once I had that in my Vagrant box list, I could quickly bang out a number of tests. Happy days…

So what did this teach me? It seems I’ve become totally and utterly intolerant of doing anything manually! 🙂

Cheers

Tim…

Video : Multitenant : Hot Clone a Pluggable Database (PDB) in Oracle Database 12.2 Onward

Today’s video is a run through the hot cloning functionality introduced in Oracle 12.2 multitenant.

You might also be interested in this playlist.

If videos aren’t your thing, you can always read the articles, which contain more information.

The star of today’s video is Craig Shallahamer. Craig is a really dynamic presenter, and I think this is the only time you will ever see him standing still! 🙂

Cheers

Tim…

Oracle Database 19c (19.3) : Installations, RAC, Data Guard etc.

A few weeks ago I put out a post about 19c installations and all that good stuff. That post was using the 19.2 release, which was not the official on-prem release of the product. Now Oracle 19c (19.3) has dropped and is available from here, and here, this post is just to say all those builds have been updated to use this 19.3 release. I also noticed the 19c preinstall package is available from yum.oracle.com.

Not surprisingly, I took the Vagrant and Docker builds I did for 19.2 and just changed the environment variables holding the software zip names, and everything worked just fine. Here are the associated articles, with those minor edits to reflect this version change.

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 19c RPM on OL7 build (here).
  • Docker compose (here) and swarm (here) stacks.

Automation is awesome! 🙂

Cheers

Tim…

Video : LISTAGG Analytic Function in Oracle Database

Today’s video is a run through the LISTAGG analytic function, with a little included 19c goodness.

If video is not your thing, you can get all the relevant information from these articles.

The star of today’s video is Michael Rainey. 🙂

Cheers

Tim…

Java and Tomcat Updates : Vagrant and Docker

Yesterday was another update frenzy.

I already mentioned the update to VirtualBox 6.0.6 in yesterday’s post.

At the same time we got the quarterly updates to Java and I noticed a new version of Tomcat, so I downloaded OpenJDK 12.0.1 and Tomcat 9.0.19 and added them to my Vagrant and Docker builds.

If you are interested in this stuff, you can check it out here.

Remember, this is just my playground stuff. If you find it useful, that’s great. If not, there are plenty of other people messing about with this stuff. 🙂

Cheers

Tim…

VirtualBox 6.0.6

VirtualBox 6.0.6 was released last night.

The downloads and changelog are in the usual places.

So far I’ve only had a chance to install it on my Windows 10 laptop at home and my Windows 10 laptop at work. No dramas on either. I’ll probably do the installations on macOS Mojave and Oracle Linux 7 hosts tonight. I’ll add an update here to say how they’ve gone.

With all the other Oracle updates that have just come out, I’ll be doing loads of Vagrant and Docker builds over the next couple of evenings, so this should get a reasonable workout.

Cheers

Tim…

Update: The installations on macOS Mojave and Oracle Linux 7 hosts worked fine too.

The Art of Miscommunication : About that thing from last week…

One of the things I get all the time is an apparent continuation of a conversation I was in some time ago, and I’m meant to pick up the thread without any explanation or context.

Depending on the people you are dealing with, this can be quite an easy trap to fall into. As a DBA that looks after many instances of multiple database engines, middle tier technologies and load balancers, I tend to get pulled into loads of conversations. For the person in question, let’s say a developer working on one project, they see this interaction as a one-to-one relationship between them and me, but for me it’s a one-to-many, as I’m dealing with many such conversations at the same time.

When I’m in that position I’ve stopped trying to figure it out, and now the conversation goes something like this.

  • Person : You know that thing we were talking about last week?
  • Me : No.
  • Person : You know, that thing…
  • Me : I literally have no idea. Please explain…

In some situations, it turns out it wasn’t even me they had the conversation with, or I wasn’t copied into the emails. A fact that only becomes evident when they take the time to order their thoughts…

I’m generally pretty happy to help people out, but I’m not going to go through hypnotherapy to pull back distant memories in order to continue a conversation you think I should remember. As you saw from my previous post on this subject, I expect each interaction to be self-contained. If there is any context necessary, it should be in the interaction itself. I shouldn’t need the skills of Professor X to pull it out of your head…

So before you pick up the phone, start typing on chat, or begin an email, take a second to plan the conversation in your own mind.

  • What introduction is necessary to get people up to speed?
  • Is there any prior knowledge I’m assuming, that I probably shouldn’t?
  • What is the main purpose of this interaction?
  • What are the outcomes I’m looking for?

It will only take a couple of seconds to figure this out. I’m not asking you to spend an hour preparing for a five minute chat, but don’t just launch into a stream of consciousness and expect everyone else to jump back in at exactly the same spot they left.

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…

The Art of Miscommunication : Read the Chain

I can’t express how frustrating it is to be passed an email that’s bounced around multiple times, then ends up in your inbox with a message of, “Please action this!”

You then spend the next X minutes reading the whole of the chain, trying to understand what you are being asked to do, and eventually get to something that could have been expressed in a couple of sentences, which would not have wasted your time. Sometimes the context in the chain is important, but on many occasions you just need to know what they want you to do.

So what should you do?

Put the action in your email and copy/paste any necessary information into it, so it becomes a self-contained mail. The rest of the chain can remain there, just in case someone wants the additional context, but the email can be read in isolation. A simple technique is to include a TL;DR which cuts to the chase, and all the additional stuff is there if someone needs it. I sometimes do this type of thing.

TL;DR

We need to do X because it is about to explode!

Boring Stuff:

Full background about the issue, including references to things further down the chain…

I’m not trying to claim I’m perfect at this, but I seem to be the victim of this bad communication a lot!

Relevant Subject Text

Over the course of an email chain, the subject of the conversation often changes, but people rarely change the subject of the mail, so when something with a subject of “P1 System X is down!” keeps appearing in your inbox, it gets very tiresome very quickly!

Now I understand that for some people keeping the same subject may seem important, as they remember the discussion, but when you are part of loads of chain emails like this, each running for days, having the wrong subject in the email can be really problematic.

What’s in the Chain?

Another thing about email chains is you really need to check what is written in them before forwarding them to others.

I had one occasion in my current company when I was forwarded an email. I read the whole chain to understand the context and found a consultant telling lies about me to try and cover his own incompetence. You can bet I went supernova and replied to everyone that ever read that email chain, including the evidence to prove the consultant was a lying scumbag piece of shit. He still works here by the way! I hope he’s reading this!

Cheers

Tim…

PS. I accidentally deleted the contents of my inbox this morning. It’s amazing how quickly that solves the frustration of bad communication! 🙂

ORDS, SQLcl and SQL Developer 19.1 Released, and some Vagrant and Docker Stuff

Yesterday Kris Rice put out some tweets to say ORDS, SQLcl and SQL Developer version 19.1 had been released.

As usual I downloaded SQL Developer and put it on my desktop, and I started the process of updating my Vagrant and Docker builds. If you are interested in that stuff, you can find those updates here.

You won’t be surprised that these updates are pretty simple. Just replacing the environment variables with the new version numbers. Such are the joys of automation. 🙂

Happy upgrading!

Cheers

Tim…