Azure and Oracle 12c and EPM 11.2.1….Oh My
So now that Oracle EPM 11.2.1 has been out for a while, most folks who were eagerly awaiting it have probably installed it, or at least installed components of it. There are a lot of tips and tricks swirling throughout the interwebs, and I thought I’d add my own take.
So, I decided to do a couple things different from my usual approach. First, I decided to build my environments in increments, and actually start small. Usually with these new versions I go for a big complex initial build and force myself to deal with the fallout.
But this time I decided on a minimalist approach with a small cloud server for the Oracle DB and EPM suite. I opted for Microsoft Azure, and while I had the option of using SQL Server 2016, I thought it might be too easy and I wanted a challenge.
For server sizing I opted for 4 VCPUs and 32 GB of RAM. I was a little skeptical about the amount of RAM but figured I could always detune some of the JVMs or not start some of the services…it was just a lab build after all.
So, after provisioning my Windows 2019 image and getting connected, I installed Oracle DB and got things moving. Following the install documentation, most things worked ‘as expected’. The exception to this came with the RCU (Repository Creation Utility). The RCU builds out the schemas that support the Java applications and requires SYS/SYSDBA credentials.
Filling in the basic information and clicking next, Oracle runs some basic pre-requisite checks when the following message was delivered:
- RCU-6080:Global prerequisite check failed – The selected Oracle database is a multitenant container database (CDB).
I initially had no idea what this message meant, but some research led me to understand that when installing Oracle 12c, the database server now functions slightly differently than the last time I’d installed it (11g).
Previously when you installed Oracle DB, one simply used the install specified database and then created tablespaces and schemas. Once that bit was done, you took those schemas and told the various EPM components which one to use. As it turns out, now we have multi-tenancy, and the RCU was not happy about it.
Resolving this error was interesting, but relatively simple. When the Oracle DB Server is installed, it creates the CDB (Container Database), and prior to 12c all Oracle databases were non-CDBs. However, the installer also offers to create a PDB (Pluggable Database)…and what is that you ask?
- A PDB is a user-created entity that contains the data and code required for a specific set of features. For example, a PDB can support a specific application, such as a human resources or sales application.
Based on the above, I found that you can locate your PDB with the command:
- select name from v$services;
- This should list your Oracle databases and you can note the name of pdb one for future reference, as this is what you’ll feed to the RCU
I also found out that even having the correct DB was not enough, you also need to make it writable with the following command:
- alter pluggable database all open;
With both of these complete, I could now run the RCU successfully (following the rest of the Install Guide directions).
Of course, there was still more fun to be had when it came to updating the RCUSchema.properties file, but that’s a tale for our next installment.