Certification : OCP 12c and OCP 12cR2 Updates

Just a couple of certification related updates.

Upgrade to oracle Database 12c (1Z0-060)

About a week ago I finally got round to doing the 12c certification. As followers of the blog/website know I’ve been writing articles about Oracle Database 12c since it was released nearly 4 years ago and for pretty much all of that time I’ve been trying to convince myself to sit the 12c OCP DBA upgrade exam. It’s not that I care about the piece of paper itself (see my certification FAQ), but I’ve had so many people write and thank me for my 12c revision notes, that it felt a little bit odd I hadn’t actually sat the exam myself.

The biggest factor in delaying taking this exam was it was not a conventional 12cR1 new features exam. Instead it was an upgrade from OCP 9i, 10g, 11g to 12cR1. That meant it potentially covered anything introduced from 9iR2 onward.  That means in addition to learning the new features well enough to pass the exam, you also have to cover the old ground, which is quite a burden. Oracle used to provide catch-up exams like this as well as a straight new features exam and I think that was a better option.

Now I’m sure some of you will think, “But you should know that stuff anyway!”, and you are right, but knowing enough to do the job and knowing the type of things you are tested on in an exam are not the same thing. The thought of revising everything from 9iR2 onward was quite daunting and it put me off doing this exam. This seemed to be a common reaction amongst many people I spoke to.

I realise maintaining a catch-up exam and a regular new features exam is extra work for the certification folks, but if you want to keep people on the OCP treadmill, I think you’ve got to do this. I came very close to ditching the whole OCP thing as a result of this 12c upgrade exam, and I’m sure I’m not the only one.

Upgrade Oracle DBA 11g/12c to 12cR2 (1Z1-074)

I mentioned in a recent post there is an exam called “Upgrade Oracle DBA 11g/12c to 12cR2 (1Z1-074)” in beta at the moment. I’ve been writing about Oracle Database 12cR2 since its release on the Oracle Public Cloud, so there are quite a few articles on my website already.

Normally the release 2 articles get lumped together, since they don’t form part of an exam syllabus, but now they do, so I’ve split them up into two sections.

I’ll continue to add new articles to both sections, and at some point I will have a complete set of revision notes for the new exam. 🙂

Once again the new exam is a catch-up exam, but at least it only covers 12cR1 and 12cR2 this time. As before, I think this is a mistake, but that’s just my opinion. 🙂

Part of me wants to cram for this new exam and get it done on the cheap while it is in beta. Part of me thinks I may never take this new exam. Time will tell I guess. You’ll probably see an update post in 4 years when I’ve finally got round to it. 🙂

Cheers

Tim…

OBIEE and ODI 12c Silent Installations : First Steps

The company I work for is in the process of moving some core systems to Oracle Cloud Apps. As part of that process the folks who do the warehousing, BI and reporting stuff are transitioning from a bunch of SAP tools to ODI, OBIEE, OBIA etc. I am not part of either the old or new projects related to this work, but it does seem I am going to have to get involved in some of the infrastructure side of it, namely installations and basic “turn it off and on again” type support. I will never actual use this stuff. 🙂

I don’t like surprises, so I’ve spent some time recently playing with some of this stuff from an infrastructure perspective. I’ve been building, destroying and rebuilding this stuff repeatedly, trying to figure out how some of it hangs together and some of the pain points. That resulted in these articles.

There may be some more to follow, but they could be for older bits of kit, depending on the certification status of the various pieces when used against Oracle Cloud Apps.

I can’t emphasise enough how little I know about this stuff. I understand databases and I know a bit about WebLogic. As a result I can muddle my way through some installations of this OBIEE and ODI stuff. That is about it. 🙂

Cheers

Tim…

PS. If you are wondering about the image, it’s a stupid cow. It represents how clueless I am about this stuff, as well as how amusing I find it that we are transitioning to these tools just as the rest of the world is transitioning away from them. 🙂

Online Table Moves and Partitioning in Oracle Database 12c Release 2 (12.2)

A couple of articles have crept out over the last few days that relate to online operations on Oracle Database 12c Release 2 (12.2). Both of them are pretty small in terms of what you have to do, but are pretty awesome in terms of impact, so I’m giving them the official thumbs-up! 🙂

The first one is about moving tables online.

I wonder if this was a 12.1 feature that got pulled? In 12.1 we got to move partitions and sub-partitions online, but being able to move a table as an online operation is great. Saves you having to mess around with DBMS_REDEFINITION for a bunch of tasks.

The second one is about converting non-partitioned tables to partitioned tables.

This is pretty cool too. For one, you can use a single command to do it now, rather than having to use EXCHANGE PARTITION or DBMS_REDEFINITION to do it. What’s more, it can be done online!

As I’ve said many times before, it’s these convenience new features that usually have a bigger impact on my day-to-day life than the big sexy features.

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!

Multitenant Enhancements in Oracle Database 12.2 (Some More Articles)

The Oracle Database 12c Release 2 (12.2) learning process continues. I’m determined to get to the bottom of all this new multitenant stuff. 🙂

Here’s the latest batch of articles.

So the last one is actually for 12.1, but I hadn’t written about it already, so I added it.

I also updated this article to include the “CONTAINERS Hint” feature functionality.

There is a new feature listed in the docs as as “Support for PDBs with Different Character Sets, Time Zone File Versions, and Database Time Zones in a CDB”. I’ve already written about the PDB character set stuff and it is also listed separately as a new feature. The time zone stuff works in 12.1, so it doesn’t appear to be a 12.2 new feature. The different Time Zone File Versions functionality, as far as I can see, relates to OCI client connections to the server and was introduced in 11.2. With all that in mind, I’m really not sure what this listed new feature specifically relates to. If someone can clear that up for me I would be really grateful, as I’m wondering if I’ve just missed the point somewhere. 🙂

I’ve added these to the list of all my multitenant articles here.

Cheers

Tim…

Video : Table Point In Time Recovery (PITR) in Oracle Database 12c

It’s been a while, but here is a the latest video.

If videos aren’t your thing, you can read the articles here.

The star of this video is Uwe Hesse, who I recorded at UKOUG Tech 15. Yes, I did mean “15”. I have a bit of a backlog to work through. 🙂

Cheers

Tim…

PL/SQL Objects for JSON in Oracle 12cR2

I’ve been playing around with some more of the new JSON features in Oracle Database 12c Release 2 (12.2).

The first thing I tried was the new PL/SQL support for the JSON functions and conditions that were introduced for SQL in 12.1. That was all pretty obvious.

Next I moved on to the new PL/SQL objects for JSON. These are essentially a replacement for APEX_JSON as far as generation and parsing of JSON data are concerned. If I’m honest I was kind-of confused by this stuff at first for a couple of reasons.

  • If you are coming to it with an APEX_JSON mindset it’s easy to miss the point. Once you “empty your cup” it’s pretty straight forward.
  • The documentation is pretty terrible at the moment. There are lots of mistakes. I tweeted about this the other day and some folks from the Oracle documentation team got back to me about it. I gave them some examples of the problems, so hopefully it will get cleaned up soon!

I was originally intending to write a single article covering both these JSON new features, but it got clumsy, so I separated them.

The second one isn’t much more than a glorified links page at the moment, but as I cover the remaining functionality it will either expand or contain more links depending on the nature of the new material. Big stuff will go in a separate article. Small stuff will be included in this one.

I also added a new section to this recent ORDS article, giving an example of handling the JSON payload using the new object types.

I’ve only scratched the surface of this stuff, so I’ll probably revisit the articles several times as I become more confident with it.

Cheers

Tim…

PS. Remember, you can practice a lot of this 12.2 stuff for free at https://livesql.oracle.com .

Oracle Database 12c on Fedora 25

I was having a play around with Fedora 25 last weekend and I just noticed there was no associated blog post about it, so here goes.

First the warning I always have to include. Do not install Oracle on Fedora before reading this! With that out of the way, let’s continue.

Since Fedora is the proving ground for future releases of Red Hat Enterprise Linux (RHEL) and I’m a fan of running Oracle on a binary clone of RHEL called Oracle Linux (OL), I am curious about any new release.

Not surprisingly, Oracle database 12c installs really easily on Fedora 25, just as it did on previous releases.

I did have the usual problem with the Perl stuff, as I’m running the VM on a relatively modern MacBook Pro, which has a CPU that freaks out the version of Perl shipped with Oracle, but the article includes a link about how to fix that. I’ve repeated the installation under VirtualBox on systems using older chips (my work PC and an old server at home) and it works without complaint. No drama.

So all seems well in the world of Oracle 12c on Fedora 25. Now you know how to do it, please don’t. Use Oracle Linux. 🙂

Cheers

Tim…

Multitenant : It’s easy to screw up!

multitenantSome things happened to me yesterday which I thought I would pass on, in case it helps others. This is not necessarily a criticism of the Multitenant architecture itself, but more about my misuse of it. 🙂

I’ve complained numerous times about the inclusion of the shared APEX installation used with the Multitenant option. I’m sure it is great for some companies that provide APEX as a service, but it’s not the right option for me. I would typically recommend removing it before you create a PDB, as described here. So what did I do yesterday? I banged out a script as a variant of a non-CDB build and totally forgot about the shared installation. When everything was finished I patted myself on the back, then noticed my mistake. 🙁 I had to remove the PDBs from 3 instances, remove the shared APEX installations, the recreate the PDBs. Luckily it was early on in the process, so it wasn’t a great drama. It would have been significantly more annoying if I hadn’t noticed for a few days!

Next up I nearly cloned a PDB, which would have left me with 2 PDBs in the instance, and potentially a big bill for the Multitenant option. I was literally about to hit the return key when I realised what I was doing. 🙁 Needless to say I immediately added a trigger to all my instances to prevent any future stupidity on my part. You can see what I did here. As I say in the article, I’m not sure if there is some hidden long term tracking of the maximum number of PDBs in a CDB, but I’m a paranoid type… 🙂

As an aside, I also noticed that when I add a new PDB to a CDB it takes Cloud Control 13c a long time to notice the PDB is there. I did try to give it a nudge by doing the following, but it didn’t seem to notice.

  • Highlight the CDB in the database target list.
  • Click the “Configure” button.
  • Scroll down and click the “Sync Pluggable Databases” button.

It didn’t recognise the change, even though it was clear in the V$PDBS and CDB_PDBS views. Not sure if this is normal or if I just got unlucky. Everything looks OK now… 🙂

Cheers

Tim…

Data Guard Broker : 11g and 12c

vault-154023_640I’ve been using standby databases, on and off, since Oracle 8i. I first wrote about Data Guard for Oracle 9i. I’ve had an article on 11gR2 Data Guard for ages, but up until recently I’ve always used the manual setup.

We’ve got a project coming up that *may* use Data Guard and *may* be installed by a 3rd party, so I figured I better get up to speed with the Data Guard Broker, in case they go that route. It’s been on my list of things to look at since 10g, but I’ve never got round to it until now. 🙂

At this point, I still don’t know if the project will use 11g or 12c, so I had a play with both, which resulted in a couple of overview articles.

From the overview perspective, the usage is pretty much the same. I really only did the 11g one in case that’s the route this project goes. I didn’t bother putting the 11g one on the front page of the website, because I consider it a “backfill” article. 🙂

After having a play with the broker, I actually quite like it. It definitely feels like a simpler and neater solution than doing all the configuration manually.

Remember, this Data Guard stuff is for EE installations. If you use SE, you might want to take a look at Dbvisit, who have a product that allows you to manage standby databases for Oracle SE.

Cheers

Tim…

PS. I’m not sponsored by Dbvisit and I have no business links with them. I just think they are a great bunch of people and I like what they do.