YouTube Cameos : My Channel Needs You!


I’ve spent the last couple of months uploading videos to my YouTube channel.

At the start of each technical video, I introduce myself by saying something like, “Hi. It’s Tim from oracle-base”, and I use a video clip of someone from the Oracle community saying, “.com”,  to finish off the website name. I then put links to their blog, twitter, website etc in the description box. It’s just something fun and stupid to lighten the tone of the videos and to give a shout out to people in the community. :)

If you take a look at the clips, you’ll see they vary a lot. Some are simple and straight, just filmed on a webcam or phone. Others are a little more elaborate, like the one filmed under water. Some come with some funny outtakes I put at the end of the video. :)

Here’s a montage of all the clips I’ve used so far.

If you want to be included in one of the videos, send a clip of yourself saying “.com” to me (tim (at) along with your blog and twitter URLs and I’ll include it in a future clip.

I don’t mind you using some casual company branding, like wearing the t-shirt, but this is really about community, so don’t send me a McDonalds advert! :) Any user group clips, like the one I got from Auckland are great too.

I try to use them on a first-come-first-served basis, so get in early before I start gathering clips at OpenWorld. :)



Update: Whoops! I missed out my crazy uncle Martin Widlake. You can see his clip here.

Oracle OpenWorld : It’s just around the corner…


The total insanity that is Oracle OpenWorld 2015 is just around the corner. I’ve got my flights and hotels booked, so I think I’m good to go!

The first couple of days will be ACE Director briefings. The big announcement this year will be the Oracle Games Cloud (#OGC), but as a beta program participant I’m under NDA so I’m not allowed to talk about it. It will be interesting to see what else is coming down the pipeline. I expect lots of hardware refreshes and standard stuff like that, but there is always something unexpected that makes you sit back…

Of course, the main event of the ACED briefing will be me gathering 100+ “dot com” YouTube cameos. Dress to impress and perfect diction please… :)

As far as presentations go:

  • Optimizing SQL for Performance and Maintainability—a Panel Discussion [CON8415] Moscone South Room 309 16:15 – 17:00 : I’ve been invited to join this panel session. I’m the token dumb-ass to help you relate to panel. My job is to nod, like I know what people are talking about and occasionally scratch myself. :)
  • More Than Another 12 on Oracle Database 12c [UGF3190] Moscone South Room 306 time 13:30 – 15:15: UKOUG are using their two user group sessions to host another multi-speaker extravaganza. I was involved in this last year, but submitted my entry too late to get in this year. There are so many good EMEA presenters! My slot will be called “12 Oracle 12c Data Pump enhancements in 7 minutes!” :)

Apart from these events, there are always loads of things to get involved in, so it’s going to be a busy few days!

If you are new to the OpenWorld experience, I suggest you check out Jeff Smith’s post called, How to Survive, no, Thrive at Oracle Open World. Making the most of OOW is a skill. It’s a pity if you get to the end of the event and feel like you missed out. Preparation is the key! :)

For those who are lucky enough to be going, I’ll see you there soon. If you can’t make it, many of the headlines will be streamed live and you have a blogsphere that will keep you updated on the fun bits!



VirtualBox 5.0.4


virtualboxVirtualBox 5.0.4 has been released.

It’s a maintenance release, with a whole bunch of bug fixes. Downloads and changelog in the usual places.

The “Check for Updates…” link from the menu hasn’t noticed the upgrade yet, so if you are keen you will have to download it manually. :)

Happy upgrading…




SQL for Beginners : Videos and Articles


love-sqlI’ve been saying for some time I should do some more entry level content, but it’s been kind-of hard to motivate myself. I mostly write about things I’m learning or actively using, so going back and writing entry level content is not something that usually springs to mind.

Recently I’ve got involved in a number of “grumpy old man” conversations about the lack of SQL knowledge out there. That, combined with a few people at work getting re-skilled, prompted me to get off my ass and give it a go. It’s actually quite difficult trying to get yourself into the head-space of someone who is coming fresh to the subject. You don’t want to pitch it too low and sound patronizing, but then pitching it too high makes you sounds like an elitist dick.

Anyway, after completing the Efficient Function Calls from SQL series of videos, I decided to jump into a SQL for Beginners series. I’m also putting out some articles, which are essentially transcripts of the videos, to allow people to copy/paste the examples. More importantly, they have links to articles with more details about the subject matter.

Once I’ve done a quick pass through the basics, I’ll start adding a bit more depth. I’ll probably dip in and out of the series. If I stick with it too long I’ll probably go crazy from boredom. :)

If you know someone who is fresh to SQL, can you ask them to take a look and give me some feedback? It would be nice to know if they are helpful or not.



Oracle Midlands : Event #11 – Summary


oracle-midlandsLast night was Oracle Midlands event #11 with Chris Antognini.

The lead up to this event was not the best for me. I had been on the verge of a headache all day. By 14:00 I gave up, went home and went to sleep for a couple of hours. It wasn’t great, but it was just enough to take the edge off, so when the time came, I felt sort-of OK to head out for the event. The drive started to convince me this wasn’t the best move, but once I got to the event and sat down I figured I was going to make it. :)

Chris did two talks at the event.

The first talk had lots of people’s heads nodding. It’s kind-of depressing, but we’ve all seen, and continue to see, these same things happening again and again. I, like others in the audience, am convinced it is because of the lack of emphasis on database technologies in development. Too many frameworks encourage a hands-off approach to the database, hiding it behind persistence layers that end up doing a mediocre job, at best. Anyway, enough of my rambling. This session should be mandatory viewing once a month for every developer that goes near a database! :)

redstacktechThe second session was pretty neat too. I must admit I’ve become addicted to the Enterprise Manager 12c performance pages, so a couple of the things Chris mentioned took me by surprise, including the use of some V$ views that I assumed were part of the Diagnostics and Tuning Pack, but aren’t. I’m purposely going to avoid mentioning them here because I would want to confirm the status before accidentally leading someone astray, but the idea was, query the V$ view and you are good. Query the DBA_HIST_* view and you’ve sourced the information from the AWR, so you need the D&T pack. This definitely *does not* apply to all V$ views, but it’s worth checking out if you don’t have D&T, or you are working with standard edition.

I think the evening went really well. Thanks to Chris for coming to speak to us and thanks to the Oracle ACE Program for getting him across. Thanks to Red Stack Tech for sponsoring the event, allowing this to remain free. Thanks to Mike for doing a great job of keeping these events rolling. Of course, thanks to everyone for turning up after the Bank Holiday weekend. :)



Oracle Cloud : First Impressions


cloudFollowers of the blog will know I’ve been waiting to get access to the Oracle Cloud for a while. Well, I’ve finally got access to a bit of it. Specifically, the “Oracle Database Cloud Service” (DBaaS) part. :)

The Schema Service has been around for a few years and I had already tried that out, but IMHO it’s not really part of Oracle Cloud proper*, so I was reserving my judgement until I got the real stuff. :)

I’ve written a couple of articles already. Just basic stuff to document setting stuff up and connecting etc.

So here are some first impressions…

Oracle Cloud : Look and Feel

Overall the cloud offering looks clean and modern. Tastes vary of course, but I like the look of it.

The navigation is a bit inconsistent between the different cloud services. It feels like the console for each section (Compute, Java, DBaaS etc.) has been written by a different team, each doing what they think works, rather than working to a single design standard. Here’s a couple of examples:

  • In the “Oracle Database Cloud Service” section there is a “Consoles” button on the top-right of the screen that triggers a popup menu allowing you to switch to the Dashboard, Java Cloud and Compute Cloud console. In the “Oracle Compute Cloud” section, the “Consoles” button is not present. Instead there is a hamburger on the top-left of the screen that causes a navigation panel to slide out on the left of the screen, pushing the rest of the page contents to the right. On the top-level services page, the same hamburger produces a popup menu, kind-of like the “Consoles” button, but with the colouring of the navigation panel. I don’t find any method better or worse than the others. It would just be nice if they picked one and stuck with it, otherwise you are looking round the screen trying to decide how to make your next move. :) (See Update)
  • Some consoles use tabs. Some use navigation tiles. Some use both.

Don’t get me wrong, it’s not hard to navigate. It’s just inconsistent, which kind-of ruins the overall effect. If they can bring it all into line I think it will be really cool.

I think Oracle Cloud looks neater than Amazon Web Services, but the navigation is not as consistent as AWS or Azure. Having used AWS, Azure and Oracle Cloud, I feel Azure has the neatest and most consistent interface. Like I said before, tastes vary. :)

Probably my biggest issue with the Oracle Cloud interface is the speed, or lack of. It’s really slow and unresponsive at times. On a few occasions I thought it had died, then after about 30 seconds the screen just popped back into life. Some of the actions give no feedback until they are complete, so you don’t know if you’ve pressed the button or not.

Oracle Cloud : Ease of Use

I found DBaaS pretty simple to use. I’ve already spent some time using AWS and Azure, so there is probably some carry-over there. I pretty much completed my first pass through creation, connections and patching before I even considered looking for documentation. :)

The documentation is OK, but contains very few screen shots, which leads me to believe the look and feel is all in a state of flux.

I think the general Oracle Compute Cloud Service network/firewall setup is really quite clear, but you can’t edit existing rules. Once a rule is created you can only enable, disable or delete it. I found myself having to delete and create rules a number of times when it felt more obvious to let me edit an existing rule. I’ll mention a DBaaS issue related to this later.

One slight concern is I’m not sure how I will feel about the firewall screens once I have lots of rules, because each rule takes up a lot of screen room. There is a search, so I guess it pays to be very disciplined with the names of rules.

DBaaS Specifically

Just some general observations about the DBaaS offering.

  • The “Oracle Database Cloud Service” DBaaS offering looks OK , but I noticed they don’t have multiplexed redo logs. I never run without multiplexed redo logs, regardless of the redundancy on the storage layer. Even if they were all shoved in the same directory, it would still be better than running without multiplexed files. This is a bit of mandatory configuration the user is left to do after the fact.
  • The DBaaS virtual machine has Glassfish and ORDS installed on it, which is necessary because of the way they have organised the administration of the service, but it’s not something I would normally recommend. Databases and App Servers never go on the same box. Like I said, I understand why, but I don’t like it.
  • The management of the DBaaS offering feels fragmented. For some administration tasks you use the main cloud interface. For others you jump across to the DBaaS Monitor, which has a completely different look and feel. For others you to jump across to [DBConsole – 11g | DB Express -12c]. For a DBaaS offering, I think this is a mistake. It should all be incorporated into the central console and feel seamless. I understand that may be a pain and repetition of existing functionality, but it feels wrong without it.
  • I found the network/firewall setup done by the DBaaS service to be quite irritating. It creates a bunch of rules for each DBaaS service, which are all disabled by default (a good thing), but all the rules are “public”, which you would be pretty crazy to enable. Because you can’t edit them, they end up being pretty much useless. It really is one of those, “Do it properly or don’t bother!”, issues to me. If the DBaaS setup screens asked you to define a Security IP List, or pick an existing one, and decide which services you wanted to make available, it could build all these predefined rules properly in the first place. Alternatively, provide a DBaaS network setup wizard or just don’t bother. It feels so half-baked. :(
  • Dealing with the last two points collectively, the fragmentation of the management interface means some of the management functionality (DBaaS Monitor and [DBConsole – 11g | DB Express -12c]) is not available until you open the firewall for it. This kind-of highlights my point about the fragmentation. I’m logged into the DBaaS console where I can create and delete the whole service, but I can’t use some of the management features. It just feels wrong to me. It is totally down to the implementation choices. I would not have chosen this path.
  • Unlike the AWS RDS for Oracle, you get complete access to the OS and database. You even get sudo access to run root commands. At first I thought this was going to be a good thing and a nice differentiator compared to RDS, but having used the service I’m starting to think it is a bad move. The whole point of a DBaaS offering is it hides some of the nuts and bolts from you. I should not be worrying about the OS. I should not be worrying about the basic Oracle setup. Giving this level of access raises more questions/problems than it solves. I feel I should either do everything myself, or pick a DBaaS offering, accept the restrictions of it, and have it all done for me. The current offering feels like it has not decided what it wants to be yet.
  • When I patched the database through the service admin console it worked fine, but it took a “really” long time! I waited quite a while, went out to the gym and it was still going when I came back. Eventually I started an SSH session to try and find out what was happening. It turns out it took over 2 hours to “download” the PSU to the VM. Once the download was complete, the application of the patch was done quickly. Interesting.
  • The “Oracle Database Cloud Service – Virtual Image” option seems pretty pointless to me. On the website and console it says there is a software installation present, but this is not the case. Instead, there is a tarball containing the software (/scratch/db12102_bits.tar.gz). It also doesn’t come with the storage to do the actual installation on, or to hold the datafiles. To do the installation, you would need to “Up Scale” the service to add the storage, then do the installation manually. This process is actually more complicated than provisioning a compute node and doing everything yourself. I think Oracle need to ditch this option and just stick with DBaaS or Compute, like Amazon have done (RDS or EC2).


I like the Oracle Cloud more than I thought I would. I think it looks quite nice and if someone told me I had to use it as a general Infrastructure as a Service (IaaS) portal I would be fine with that.

I like the DBaaS offering less than I hoped I would. I feel quite bad about saying it, but it feels like a work in progress and not something I would want use at this point. If it were my decision, I would be pushing the DBaaS offering more in the direction of AWS RDS for Oracle. As I said before, the current DBaaS offering feels like it has not decided what it wants to be yet. It needs to be much more hands-off, with a more consistent, centralized interface.

I don’t have full access to the straight Compute Cloud yet, so I can’t try provisioning a VM and doing everything myself. If I get access I will try it, but I would expect it to be the same as what I’ve done for EC2 and Azure. A VM is a VM… :)

When I read this back it sounds kind-of negative, but I think all the things I’ve mentioned could be “fixed” relatively quickly. Also, this is only one person’s opinion on one specific service. The haters need to try this for themselves before they hate. :)



* Just to clarify, I am not saying the Schema Service isn’t “Cloud” and I’m not saying it doesn’t work. I’m just saying I don’t see this as part of Oracle’s grand cloud database vision. It always seemed like a cynical push to market to allow them to say, “we have a cloud DB”. If it had been branded “APEX Service” I might have a different opinion. It is after all a paid for version of This is a very different proposition to promoting it as a “Cloud Database”.

Update: Since I wrote the post, the navigation for the “Oracle Database Cloud Service” section has been amended to match that of the “Java Cloud Service” and the top-level “Services” section, so only the “Compute Cloud Service” section has different navigation. Much better!

Adaptive Query Optimization in Oracle 12c : Ongoing Updates


I’ve said a number of times, the process of writing articles is part of an ongoing learning experience for me. A few days ago my personal tech editor (Jonathan Lewis) asked about a statement I made in the SQL Plan Directive article. On further investigation it turned out the sentence was a complete work of fiction on my part, based on my misunderstanding of something I read in the manual, as well as the assumption that everything that happens must be as a result of a new feature. :)

Anyway, the offending statement has been altered, but the conversation this generated resulted in new article about Automatic Column Group Detection.

The process also highlighted how difficult, at least for me, it is to know what is going on in the optimizer now. It wasn’t always straight forward before, but now with the assorted new optimizations, some beating others to the punch, it is even more difficult. There are a number of timing issues involved also. If a statement runs twice in quick succession, you might get a different sequence of events compared to having a longer gap between the first and second run of the statement. It’s maddening at times. I’m hoping Jonathan will put pen to paper about this, because I think he will do a better job of explaining the issues around the inter-dependencies better than I can.

Anyway, I will be doing another pass through this stuff over the coming days/weeks/months/years to make sure it is consistent with “my current understanding”. :)

Fun, fun, fun…



Fedora 22/23 and Oracle 11gR2/12cR1


linux-tuxAs always, installations of Oracle server products on Fedora are not a great idea, as explained here.

I was reading some stuff about the Fedora 23 Alpha and realised Fedora 22 had passed me by. Not sure how I missed that. :)

Anyway, I did a run through of the usual play stuff.

While I was at it, I thought I would get the heads-up on Fedora 23 Alpha.

The F23 stuff will have to be revised once the final version is out, but I’m less likely to forget now. :)

I guess the only change in F22 upward that really affects me is the deprecation of YUM in F22 in favour of the DNF fork. For the most part, you just switch the command.

yum install my-package -y
yum groupinstall my-package-group -y
yum update -y

dnf install my-package -y
dnf groupinstall  my-package-group -y
dnf group install  my-package-group -y
dnf update -y

This did cause one really annoying problem in F23 though. The “MATE Desktop” had a single documentation package that was causing a problem. Usually I would use the following.

yum groupinstall "MATE Desktop" -y --skip-broken

Unfortunately, DNF doesn’t support “–skip-broken”, so I was left to either manually install the pieces, or give up. I chose the latter and use LXDE instead. :) F23 is an Alpha, so you expect issues, but DNF has been in since F22 and still no “–skip-broken”, which I find myself using a lot. Pity.