My Blog

How to rename ASM disk groups in Exadata

by Svetoslav Gyurov on 25th November 2015 No comments

Deployment of Exadata requires you to generate configuration using Oracle Exadata Deployment Assistant (OEDA). Within the same the default  ASM disk groups names are DBFS_DG, RECOC1 and DATAC1. I usually change those to RECO01 and DATA01 as others doesn’t make sense to me and the only place where I find the default ones is on Exadata.

I had an incident last year where the Exadata deployed half way through and names were left by default so I had to delete the configuration and start from scratch.

For my big surprise I got request recently where customer wanted to change RECO01 and DATA01 to RECOC1 and DATAC1! This was a pre-prod system, already deployed and having few databases running. The Exadata was X5-2 running ESS and GI

If this ever happens to you, here is what you need to do:

  1. Rename grid disks.
  2. Rename ASM disk groups and ASM disk names.
  3. Modify all databases to point to the new disk groups.

Rename grid disks

Since grid disks names consists of the disk group name they need to be changed too. Although this is not mandatory I strongly recommend it to avoid any confusion in the future.

The grid disks can be renamed very easily using cellcli but they should NOT be in use by GI at that time. Thus Grid Infrastructure has to be stopped on all servers, stop GI as root:

[root@exa01db01 ~]# /u01/app/ stop cluster -all

Then run the following magic command to get the list of all grid disks and replace the disk group names with the new ones:

[root@exa01db01 ~]# for i in `dcli -g cell_group -l root cellcli -e list griddisk | awk -F":" '{print $2'} | awk '{print $1}'`; do echo "cellcli -e alter griddisk $i name=$i"; done | grep -v DBFS |sed -e "s/RECO01/RECOC1/2" -e "s/DATA01/DATAC1/2"

You’ll get a long list of cellcli commands – 12 for each cell which you need to run on the cell locally.

Once it’s done start the GI again and make sure all disk groups are mounted successfully:

[root@exa01db01 ~]# /u01/app/ start cluster

Rename ASM disk groups and ASM disk names

Next is to rename the disk groups. To do so they must be dismounted on ALL cluster nodes before running renamedg on a disk group. Connect to each ASM instance and dismount the disk groups:

SQL> alter diskgroup datac1 dismount;

Diskgroup altered.

SQL> alter diskgroup recoc1 dismount;

Diskgroup altered.

At this point you can run renamеdg to rename the disk groups, here is an example for the DATAC1 disk group:

[oracle@exa01db01 ~]$ renamedg -dgname DATA01 -newdgname DATAC1

Parsing parameters..
 renamedg operation: -dgname DATA01 -newdgname DATAC1
 Executing phase 1
 Discovering the group
 Checking for hearbeat...
 Re-discovering the group
 Generating configuration file..
 Completed phase 1
 Executing phase 2
 Completed phase 2

Do the same for RECO01 and after that make sure that both disk groups can be mounted on all database nodes successfully, then dismount them again so you rename the ASM disk names. In general there is a command to rename all the disks (ALTER DISKGROUP XX RENAME DISKS ALL) but it will rename the disks to a name of the form diskgroupname_####, where #### is the disk number. However ASM disk names have different names on Exadata (RECO01_CD_01_EXA01CEL01) and that’s why we need to rename them manually.

To rename the disks the disk group has to be mounted in restricted mode (so only one node in the cluster can mount the disk group). Then run the below two statement to generate the new ASM disk names:

SQL> alter diskgroup datac1 mount restricted;

Diskgroup altered.

SQL> select 'alter diskgroup datac1 rename disk ''' || name || ''' to ''' || REPLACE(name,'DATA01','DATAC1') || ''';'  from v$asm_disk where name like 'DATA%';

SQL> select 'alter diskgroup recoc1 rename disk ''' || name || ''' to ''' || REPLACE(name,'RECO01','RECOC1') || ''';'  from v$asm_disk where name like 'RECO%';

Execute the alter statement generated by the above two statements and mount both disk groups on all database nodes again.

There is no command to add the disk group back to Oracle Restart. They will be automatically added first time they are mounted. However you need to remove the old disk group resources:

[oracle@exa01db01 ~]$ srvctl remove diskgroup -g DATA01
[oracle@exa01db01 ~]$ srvctl remove diskgroup -g RECO01

Modify all databases to point to the new disk groups

The last step is to change datafile/tempfile/redolog files on all databases to point to the new disk groups. Make sure you disable block change tracking and flashback as database might not open since the location of BCT has changed:

SQL> alter database disable block change tracking;
SQL> alter database flashback off;

Next create pfile from spfile and substitute all the occurences of RECO01 and DATA01 OR you can modify the spfile just before you shut the database. Let’s assume you have created pfile, make sure all the parameters refer to the new disk group names, here are the default ones that you need to check:


Start the database in mount state and generate all the alter statements for datafiles/tempfiles and redologs:

[oracle@exa01db01 ~]$ sqlplus -s / as sysdba
set heading off
set echo off
set pagesize 140
set linesize 140
spool /tmp/rename.sql

select 'alter database rename file ''' || name || ''' to ''' || REPLACE(name,'DATA01','DATAC1') || ''';' from v$datafile;
select 'alter database rename file ''' || name || ''' to ''' || REPLACE(name,'DATA01','DATAC1') || ''';' from v$tempfile;
select 'alter database rename file ''' || member || ''' to ''' || REPLACE(member,'DATA01','DATAC1')|| ''';' from v$logfile where member like '%DATA%';
select 'alter database rename file ''' || member || ''' to ''' || REPLACE(member,'RECO01','RECOC1')|| ''';' from v$logfile where member like '%RECO%';

Start another sqlplus and run the spool file from the above operation (rename.sql). At this point you can open the database (alter database open;). Once the database is open make sure you enable block change tracking and flashback:

SQL> alter database enable block change tracking;
SQL> alter database flashback on;

Finally change the database dependencies and spfile location:

For 12c databases:

[oracle@exa01db01 dbs]$ srvctl modify database -d dbm01 -nodiskgroup
[oracle@exa01db01 dbs]$ srvctl modify database -d dbm01 -diskgroup "DATAC1,RECOC1"
[oracle@exa01db01 dbs]$ srvctl modify database -d dbm01 -spfile +DATAC1/DBM01/spfiledbm01.ora

For 11g databases:

[oracle@exa01db01 dbs]$ srvctl modify database -d dbm01 -z
[oracle@exa01db01 dbs]$ srvctl modify database -d dbm01 -x "DATAC1,RECOC1"
[oracle@exa01db01 dbs]$ srvctl modify database -d dbm01 -p +DATAC1/DBM01/spfiledbm01.ora
read more
Svetoslav GyurovHow to rename ASM disk groups in Exadata

Disabling iptables/firewalld on RHEL/OEL7

by Simon Tee on 25th November 2015 No comments

Recently did a 12c RAC install under OEL7 and after running cluvfy found that interconnect communication was being blocked.

Of course I hadn’t disabled iptables….

[root@myrac01 ~]# iptables --list
Chain INPUT (policy ACCEPT)

Chain IN_public_log (1 references)
target prot opt source destination

Chain OUTPUT_direct (1 references)
target prot opt source destination

Ok so just need to disable iptables:

[root@myrac01 ~]# service iptables stop
Redirecting to /bin/systemctl stop iptables.service
Failed to issue method call: Unit iptables.service not loaded.

Huh? So after some digging it turns out iptables has been replaced by firewalld out of the box. The iptables –list is retained for backwards compatibility only.

So if you want to disable the software firewall under OEL7 you now need to do the following (on all nodes):

[root@myrac01 ~]# systemctl stop firewalld
[root@myrac01 ~]# systemctl disable firewalld
rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
rm '/etc/systemd/system/'

systemctl and systemd also effectively replace chkconfig and init under OEL7.

More details on this can be found here:

read more
Simon TeeDisabling iptables/firewalld on RHEL/OEL7

Saving You 15 Minutes: UKOUG #ukoug_tech15 #MentalMonday:

by Philip Brown on 18th November 2015 No comments

Less than three weeks to go and it’s time to rev up for the #ukoug_tech15 conference. Looking at the agenda there looks like some good (very good) picks on Monday.

09:00 The Oracle Database In-Memory Option: Challenges & Possibilities Christian Antognini
I saw this at OOW15 and it’s a good session on In-Memory; useful info; also some insights on how it works with examples of usage and code.

09:00 An Introduction to RAC (12c) Neil Chandler
If you are going for an interview then you need to understand the core aspects of RAC, so often people don’t and they get it really wrong despite being ‘a RAC expert’. I found this with things likes Services and SCAN listeners both of which are covered here!

09:00 Is Oracle the Best Language for Statistics? Brendan Tierney
Moving data from Oracle into Excel to analyse it is daft and time consuming. You might think that you don’t do any ‘data analysis’ but I find stuff like this is handy for (or I hope handy for) crunching AWR, performance data and info held in the OMR (OEM DB) for trending and analysis.

11:20 Oracle Linux 7 for DBAs-What’s New? Martin Bach
Just reading the abstract for this makes me think, I need to expand my knowledge further into complimentary skills sets. This is what this session looks like and a good quote is:

At the end of this talk the Oracle DBA should be more familiar with the new major Linux release so that not every activity she wants to perform leads to a query to the favourite Internet search engine.


11:20 Oracle Data Guard 12c – Mini Course, Zoran Pavlovic and Maja Veselica
Live Demo!!!! We all like a live demo. Sessions like this when guided can condense learning down very very efficiently as I found at OOW15 with sessions on MySQL. 50 Minutes and we should all be experts!

12:20 Analytic Functions: Unleash the SQL Power Alex Nuijten
I went to a session Alex did last year at Tech15 and it was really good, I think it was 12c new features for developers. Again a bit like the 09:00 session with Brendan anything to improve my data crunching ability with SQL is a must.

14:10 Security Design for Your Database Applications Pete Finnigan
A database security session covering the much more complex and difficult aspect of database security is going to be good.

This talk explores some of the common issues; lack of granularity, separation of duties, least privileges and functional design…. We will also explore the requirements for least privilege at design time and run time as these are different and can be managed differently….

Also this isn’t going to require the use of any additional security features like Advanced Security or Vault.  It will be practical input for everybody. Doesn’t matter if you’ve have warehouse of Exadatas or running Oracle on Windows if will still be of value.

15:10 Supercharge Your SQL Skillset Connor McDonald
You’re probably thinking how much SQL do you write or how bad is your SQL; well I’m hoping that after this session and the other two I should be able to do at least a select sysdate from dual;

16:30 Real-Time SQL Monitoring in Oracle Database 12c Tanel Poder
I heard this chap knows a thing or two about Performance, Oracle, Internals and all other ‘under the hood’ dark arts. I’ve not seen Tanel present so I think I will use this as an opportunity. I probably could have done with this session at 09:00 when I’m feeling a little more fresh.

17:30 A Manly Man’s Guide to Open-Source Database Tuning Tools: Life Without EM12c Bjoern Rost
What a life without OEM, it can’t be done. My main technical focus is OEM so I’m interested to compare and contrast with other tools out there.

And of course I can’t not mention that myself and Sve are presenting…#shameless plug but obviously it’s nice to present to people rather than an empty room..

14:10 – Oracle Exadata Meets Elastic Configurations – Svetoslav Gyurov

With the release of Exadata Database Machine X5-2 Oracle announced elastic configurations to allow Oracle Exadata Racks to have custom combinations of database and storage servers. This session will introduce the Exadata Database Machine X5-2 and then focus on the elastic configurations options and details. We will go through the steps on real world implementation of Exadata X5-2 HC Eighth Rack plus one storage server configuration

15:10 – How to Evaulate the 12c In-Memory Option – Philip Brown

This session follows a POC which covers the evaluation of the 12c In-Memory for a large BI analytic warehouse. The aim of the session is to demonstrate how the In-Memory feature was evaluated and measured by looking deep into the setup and performance metrics gathered throughout the POC. It demonstrates in details the challenges and benefits when using this feature and quantifies that into benefits to end users in terms of real world performance gains







read more
Philip BrownSaving You 15 Minutes: UKOUG #ukoug_tech15 #MentalMonday:

Saving You 15 Minutes: EMCLI Compliance Violation Suppression Part 2

by Philip Brown on 16th November 2015 No comments

Now we can suppress violations using EMCLI all we need to do now is generate the syntax using data from the OEM repository. This is relatively simple to do if you’re familiar with the compliance views:

MGMT$TARGET – Target Details
MGMT$CSR_CURRENT_VIOLATION – Current Rule Violations
MGMT$COMPLIANCE_STANDARD – Compliance Standards (Collection of Rules)

The base query is as follows:

a.target_name target_name,
b.description description,
decode(d.column_str_value,'Not Completed','Manual Check Not Completed',d.column_str_value) violation,
mgmt$target a,
mgmt$compliance_standard e
a.target_guid=c.target_guid and
b.rule_guid=c.rule_guid and
c.violation_guid=d.violation_guid and
e.cs_guid=c.root_cs_guid and
e.cs_dname='Red Stack Security Standard' and
d.column_name not in ('ATTR','INFO','privilege','limit','PROPERTY_NAME')

What we can do is match up the columns with the information in EMCLI:

emcli suppress_compliance_rule_violations 		Column
cs_iname=						cs_iname
author= 						Fixed Value Rule Author	
version= 						Fixed Value Rule Version Typically 1
rule_iname=			 			Description 
target_type=		 				Fixed Value oracle_database
target_name=	 					target_name
violation_guid_list=					violation_guid
suppress_until=						Fixed Value 
reason=							Free Value Optional

The new column which will bring back a formatted emcli command is as follows:

'emcli suppress_compliance_rule_violations '||chr(045)||'cs_iname="'||e.cs_iname||'" '||chr(045)||'author="SYSMAN" '||chr(045)||'version=1 '||chr(045)||'rule_iname="'||b.rule_iname||'" '||chr(045)||'target_type="oracle_database" '||chr(045)||'target_name="'||a.target_name||'" '||chr(045)||'violation_guid_list="'||c.violation_guid||'" '||chr(045)||'suppress_until="'||to_char(sysdate+365,'DD-MM-YYYY')||'" '||chr(045)||'reason=" Unable to lock SYSTEM, used by developers; DOH"' EMCLI_SYNTAX

Couple of recommendations
• Pull back the emcli as single column but all the other values as individual columns as well so you can compare them
• Just try this against a test database first!!!
• If you are copying two and from the blog post be mindful of any automatic re-formatting that occurs.

The column does look quite complex but this is because EMCLI uses lots of quotes and dashes; hence to make my query looks slightly better I have used the ASCII table to bring back the – (dash).

emcli suppress_compliance_rule_violations -cs_iname="Red Stack Security Standard" -author="SYSMAN" -version=1 -rule_iname="8182CC7BUtl_File_Dir_for_9iPlus_Versions2" -target_type="oracle_database" -target_name="ldn01" -violation_guid_list="4E37132EE2DF238E4123C611CFFA6941" -suppress_until="21-11-2016" -reason=" Unable to lock SYSTEM, used by developers; DOH"
read more
Philip BrownSaving You 15 Minutes: EMCLI Compliance Violation Suppression Part 2

Installing OBIEE 12c.  Part 4: Configuring & Starting OBIEE

by Paul Cannon on 11th November 2015 6 comments

This is the fourth (and final!) part of a series of blogs showing how to perform a standard single server/instance installation of OBIEE 12c. In the first part I covered the prerequisites of JDK and Fusion Middleware, this can be viewed here:

In the second part I performed the basic software installation for OBIEE

The third part covered creating the database repositories required for OBIEE:

In this final part I will perform the configuration of OBIEE 12c. This will setup the domain with Fusion Middleware, configure the BI components and most importantly setup the URLs so you can connect!

This is performed with the configuration utility which can be found under <obiee_home>/bi/bin

You need to be a little careful here, there are two (config.cmd for windows) files, but in different directories.

<obiee_home>/bi/bin contains the one for standard single server installations

ORACLE_HOME/oracle_common/common/bin contains the one for enterprise deployments. This is far more comprensive than the single server installation and allows you to configure multiple instances on multiple servers.

So to start the standard configuration utility:

cd /u01/app/obiee/bi/bin

As usual this is a graphical wizard, so you may need an x-windows emulator for linux/unix servers.

Unusually the welcome screen includes some options – don’t simply skip past as usual!

In here you get to choose which BI components you wish to configure:

  • Business Intelligence Enterprise Edition – the main BI product
  • Business Intelligence Publisher – if you need “pixel perfect” professional formatted output
  • Essbase – if you want to use the BI accelerator to speed up reporting for users


A quick word on the Essbase option. There is a new component in OBIEE 12 called the “Essbase Business Intelligence Acceleration Wizard”. This is a tool that will build Essbase cubes based on fact/dimension structures in the RPD. It will interrogate the RPD for the hierarchies & data sources, build an Essbase ASO cube, load the dimensions and data and finally configure the RPD to use it, all via a small number of simple screens. I will probably blog about this separately later on.

However the full Essbase development tools are no longer available. You cannot use the Essbase Admin Console or Essbase Studio to build your own cubes and manually load them into the RPD – that’s not the reason Essbase is included within the OBIEE 12c product suite any more.

You can still implement Essbase separately from OBIEE 12c and import the cubes you build into OBIEE just as you could under OBIEE 11g, but that would be a completely separate implementation from OBIEE and of course require specific Essbase licences.

So why would you not simply tick all three options and carry on? I guess if you never intend to use any of these components then there is no point installing them – if you include Essbase then the Essbase agent and associated services will always be running, unnecessarily using resources if you never intend to use it.

So select your options and carry on.


Then the standard prerequisite checks are performed to ensure the server is configured correctly. I’m not really sure what the difference is between this pre-req check and the same one that happened during the earlier software install (in part 2 of this blog series). The list of checks seems to be identical.


So now we need to specify some details for the new BI domain.

All three of the settings for “Location of New Domain” default to the values:

Domains Directory:          <obiee_home>/user_projects/domains

Domain Name:                  bi

Domain Home:                  <obiee_home>/user_projects/domains/bi

And you can change each of these if you see fit. Right now these are fine for me, so I’m going to leave them as they are.

Beneath these you need to specify the user name and password domain administrator. Again weblogic is the default, but can be changed and you must enter a password. Initially once the OBIEE 12c installation is complete you can login to the Weblogic Console, Enterprise Manager and OBIEE with this user-id (as we’ll see later on).


Now the wizard needs to know if you’ve already created the database repository schemas and if so where. This was done in part 3 of this blog series, however you do have the option of not installing the schemas with the RCU and letting this wizard do it for you.

If you did use the RCU, then choose ‘use existing schemas’, enter the connection string for the repository database and specify the prefix used on the schema names and the password.

There’s an interesting point here. In the RCU you have the ability to enter a single password for all schemas or individual passwords for each one. But in the screen below you are only asked for one password. I assume this is the password to the xxx_BIPLATFORM schema


If you decide to skip the RCU step and let this wizard create the schemas the screen appears as below. There are fewer options available:

  • The only database type options are Oracle, Oracle RAC or MS SQL Server (no IBM DB2 or MySQL).
  • You can’t specify different passwords for each schema.
  • You can’t control the tablespaces the schemas are created in.


Next you need to specify the port range for the BI and WLS processes to use. There are quite a few port numbers required and it doesn’t seem to use then sequentially. Weblogic itself (console and enterprise manager) will get the first port number, the various OBIEE components will get allocated numbers in the next 15 or so, Essbase if included will get some much higher numbers.

I’ve left the default port range at 9500 to 9999. Which means the following ports get allocated:

Weblogic console/enterprise manager:    9500

OBIEE: 9502

Presentation Services: 9507

BI Server: 9514

BI Schedule: 9511

BI Cluster Controller: 9508

BI Java Hosts: 9510

Essbase Agent: 9799

All of these ports can be found in the enterprise manager after installation.

I’ve not so far found any options for specifying specific ports (as per the static-ports.ini file in OBIEE 11g)


You’re then asked if you want the sample application installed or your own BI application – this is an interesting new feature allowing you to install OBIEE with a pre-built suite of reports/dashboards etc… Definitely worth investigating later on.


The summary screen then displays showing the settings you’ve selected and main URLS for accessing the weblogic console, enterprise manager, OBIEE and BI Publisher (they’ve still not renamed this URL from xmlpserver…)

I usually save the response file at this point so I have a record of these details.


Clicking Configure then begins the process…

This can take a while to run through…took around 45 minutes for me on a slowish VM.


If you chose to let this wizard create the database repository schemas then it is done during this step as one of the long list of tasks – you shouldn’t see anything happen other than another ‘Success’ tick.

Once complete you will get the configuration complete screen:


This mentions the ports that have been allocated to each of the OBIEE components… except for the BI Server – the one you need to know the most as you’ll need it when you install the client tools and create an ODBC connection for the Administration Tool. If using the default port range it will be on 9514, alternatively look in the enterprise manager.

Click finish to close down the configuration wizard.

Upon closing it attempts to open a browser so you can login to OBIEE, but in my case it couldn’t find the default browser – no idea why, I’ve got three (IE, Firefox & Chrome) and entering the path to either of them did nothing:


No matter, I know how to open a browser…

So, enter the URL given in the summary screen above, in my case:


Use the weblogic (or whatever you changed it to above) user-id/password to login:


Definitely more colourful and some new features are immediately apparent – ‘Data Exploration & Discovery’ (Visual Analyzer) and the link to the new Home Page, which is at the alternative URL: http://<server_name>:9502/va


But back at the main OBIEE home page everything else is pretty much where it used to be and you can quickly view dashboards, create reports, etc. as you could before.


The final piece of the puzzle for installing OBIEE 12c is knowing how to start and stop all of its services. This is much simpler than before as there are now single scripts to start, stop and view the status of OBIEE.

These are all located in the <obiee_home>/user_projects/domains/bi/bitools/bin directory. The scripts being


(Presumably .cmd  or .bat equivalents under windows).

So to start OBIEE:

cd /u01/app/obiee/user_projects/domains/bi/bitools/bin

Which once complete will show the following:


So there you have it, OBIEE 12c all installed, configured and running. There are a lot of differences to earlier versions, not just in functionality and look & feel, but also in the background and how it is deployed within the newer version of Weblogic. Keep an eye on our blogs for more!


















read more
Paul CannonInstalling OBIEE 12c.  Part 4: Configuring & Starting OBIEE

ZFS Rollback Patching

by Gareth Spicer on 10th November 2015 No comments

In my previous blog I talked about how to go about patching the ZFS appliance, but what when things don’t go according to plan and you need to back the patch out, in this post I am going to show you how to rollback to the previous version.

Again I am using the simulator so unfortunately I don’t have a clustered environment for this but the first step you should do when rolling back, if needed, is to takeover the services on the other head.

Login to the ZFS –

login screen

Go to Maintenance | SYSTEM

maintenance screen

Click on Rollback button

rollback button



Wait for reboot then login and check version….

rollback check

The if needed failover services from the other node and repeat this exercise.


read more
Gareth SpicerZFS Rollback Patching

Saving you 15 minutes: EMCLI Compliance Violation Suppression Part 1

by Philip Brown on 9th November 2015 No comments

This will save you 15 minutes, guaranteed.  When you are suppressing compliance violations in OEM 12c there was only one way to do it, and that was through the GUI.

So it was Enterprise > Compliance > Results > Select Compliance Standard > Manage Violations

From here you can see all the violations in your estate.  The violations could be searched by Rule and Target Name and you can either select one or many violations and then suppress them.  When you select a violation the lower pane will show you what actually caused the violation.

Now if you have a compliance standard with 100 rules and say 100 database targets, you only need 1 violation across all those targets and you get 100 violations, 10 violations per database, which is actually quite a small percentage, would give you 1000 violations, the numbers can stack up pretty quickly.  The tendency is to go ‘trigger happy’ with compliance suppression however if you start to bulk suppress violations you could start to suppress things that you want to stay as a violation.

Until about a month ago this was the only way to suppress violations, however there have been some EMCLI enhancements (I believe back ports from 13) to enable EMCLI violation suppression.

Why does this make a massive difference?  Simply; if you can suppress violations with a EMCLI command you can actually use your own compliance data stored in the OEM repository to generate the EMCLI commands.  This is the ‘use SQL’ to ‘generate SQL’ trick.  Hence you have the combination of massive scale and complete granular control over violation suppression.  To enable this EMCLI enhancement you need to download patch 20961421, this is only applicable to and

The EMCLI syntax is as follows:

emcli suppress_compliance_rule_violations 
cs_iname="RedStk Database Standard" 
rule_iname="SYSTEM is Locked" 
suppress_until="21-11-2016" 'reason="Unable to lock SYSTEM, used by developers; DOH"

As you can see there is a lot of information you need to provide to enable the EMCLI suppression, in true SY15M style the next blog post will show you the SQL which will generate the EMCLI command.

read more
Philip BrownSaving you 15 minutes: EMCLI Compliance Violation Suppression Part 1

Installing OBIEE 12c.  Part 3: Creating the Repositories

by Paul Cannon on 9th November 2015 1 comment

This is the third part of a series of blogs showing how to perform a standard single server/instance installation of OBIEE 12c. In the first part I covered the prerequisites of JDK and Fusion Middleware, this can be viewed here:

In the second part I performed the basic software installation for OBIEE

In this third part I will create the BI repository schemas required by OBIEE.  To do this I will use the RCU – Repository Creation Utility.  In previous releases of OBIEE this was a separate download, but now it is included in the software install covered in Part 2, so the utility is already installed and ready to use.

There are five required repository schemas created by the RCU. BIPLATFORM and MDS are recognisable from OBIEE 11g, (OPSS was optional in 11g):

  • BIPLATFORM Business Intelligence Platform
  • MDS Metadata Services
  • WLS Weblogic Services
  • STB Common Infrastructure Services
  • OPSS Oracle Platform Security Services

Optionally the following four are also available, but the RCU includes them – I’m not too sure yet of the effect of excluding them.

  • IAU Audit Services
  • IAU_APPEND Audit Services Append
  • IAU_VIEWER Audit Services Viewer
  • UMS User Messaging Service

All of the schemas require a specific prefix (e.g. PROD_ – giving you PROD_BIPLATFORM, PROD_MDS etc), which also allows more than one set of schemas in the same database for use my multiple OBIEE installations.

Another difference with OBIEE 12c is that you do not have to create the repositories with the RCU. You can instead let the configuration utility perform this (which I’ll cover in part 4). However the RCU gives you far more control over the configuration of the repositories, allowing you to choose/manage the tablespaces for the schemas.

Obviously before beginning this you will need access to a database, preferably Oracle 11g or 12c. You will need the connection string and the sys (or system or other DBA level user) password – the process will involve creating schemas. If you are unable to do this, you can run the RCU and get it to generate scripts to create the schemas, which you can then pass to your DBA’s to run for you.

Alternative databases you can use for the repositories are MS SQL Server, IBM DB2 or MySQL.

Once the DBA’s have run the scripts to create the schemas you can run the RCU a second time to populate the schemas with the required database objects.

The RCU is a graphical installer, so you may need an x-windows emulator for Linux/Unix.

To start the RCU run the rcu (or rcu.bat for windows) from the <obiee_home>/oracle_common/bin directory:

cd /u01/app/Middleware/obiee12c/oracle_common/bin

Skip past the welcome screen:


You are now asked how to proceed.  If you have a user with sys/DBA privileges you can select ‘System Load and Product Load’ and carry on. This is what I’ll be doing here.

Alternatively you can choose the ‘Prepare Scripts for System Load’ which will create some script files for you to pass to your DBA.

The third option, ‘Perform Product Load’ runs the second part of the repository creation once you DBAs have run these scripts.

Rather than creating repositories you can use this utility to remove previous repositories you no longer required – hence the final option ‘Drop Repository’.  I would only use this for removing OBIEE 12c repositories. If you are replacing an OBIEE 11g installation, I would use the OBIEE 11g version of the RCU to remove its repositories.


So having chosen to create the repositories with a full system and product load, then RCU now needs details of your database.

Enter the appropriate connection details.  As I am performing a full system and product load I must use a user with the Role SYSDBA. If you are returning to perform just the product load a ‘normal’ user can be used.

Note that the connection needs the service name, not the SID – I keep tripping up on this!


Some prerequisite checks will then be performed, essentially just checking that the database can be connect to correctly.


The next screen controls which schemas are to be created.  By default when this screen opens just the Common Infrastructure Services schema is selected. If you click on ‘Oracle Business Intelligence’ this expands and selects Business Intelligence Platform AND auto-selects all of the AS Common Schemas except for the User Message Services. For completeness I also selected this. So all schemas are now selected for installation.

Also at the top of this screen you need to specify a prefix for the schemas. The default is DEV, but you should really change this to something more meaningful.


The RCU will them perform some more prerequisite checks to ensure it can continue…


Next you need to specify passwords for these schemas. You can either set the same single password for all schemas or specify different passwords for each. Here I’ve taken the lazy route.



You then get to choose which tablespaces you want the schemas created in. By default the RCU will create a new set of tablespaces with the same prefix as the schemas. These tablespaces will be created in the next step unless changed here.


You can click on each tablespace (or temp tablespace) and change it to another tablespace:


Or if you click the ‘Manage Tablespaces’ button you get taken to the following screen where you can see the details of existing tablespaces or create new ones (subject to your user privileges!)



I’ve stayed with the default set of tablespaces. You will then get a confirmation box to ensure you are aware than any non-existing tablespaces will be created, then the tablespaces will be created:




Finally you get the summary screen confirming which schemas are about to be created along with their chosen details:


I usually click the ‘Save Response File’ here just so I’ve got a record of what was selected. Click Create to start the schema creation process.

It only takes a few minutes and you’ll get the completion summary screen which includes access links to the log files should any errors be encountered during the creation.


Click Close to end the RCU.

A quick look in the database lets us see the schemas that have been created:


That’s it – all done. Nothing else is required for the repositories and we can now go ahead and configure OBIEE itself, which I’ll do in part 4:





read more
Paul CannonInstalling OBIEE 12c.  Part 3: Creating the Repositories

Installing OBIEE 12c.  Part 2: OBIEE Software install

by Paul Cannon on 4th November 2015 No comments

This is the second part of a series of blogs showing how to perform a standard single server/instance installation of OBIEE 12c. In the first part I covered the prerequisites of JDK and Fusion Middleware, this can be viewed here:

The next step in the process is to install the core OBIEE 12c software. Here we have another departure from how it was done under OBIEE 11g. Previously you needed to perform the repository creation first and the installation performed both the install and the configuration.  Now for OBIEE 12c the repository creation cannot be performed until after the OBIEE 12c software is installed and the software install is just that, it copies the binaries etc., it does not perform the configuration – that now comes later.

So if you’ve read part 1 of this blog series you’ll know about downloading the files from technet, but here’s a reminder of the URL:

The OBIEE 12c software comprises just two of the files (xxxxx is the OS name):

as I’m installing on a Linux 64bit vm, I’ve downloaded

So first we need to unzip these:


This expands a single file: bi_platform-


This also expands a single file, and this then also needs unzipping:


This creates a sub-directory called Disk2.

To start the installer simply run the file expanded from the first zip file, in my case bi_platform-, obviously this will be different for each OS. If you are running on a linux/unix platform make sure you have an x-windows emulator running first.



This then starts the standard Oracle installer.  Click next pass the first screen.



The next screen asks about auto updating patches, something I never use – I’d rather manage patching myself, so I just leave the default ‘Skip Auto Updates’ selected:


Next we need to specify the home for this installation. This needs to be the same home as the Fusion Middleware installed earlier (in part 1).  The drop down field should already know about this, so just select it and carry on.


You are then asked if you want the Sample Apps installed too. As I’m just playing with the new version I’ve answer yes to this, but the choice is yours.


Then the prerequisite checks are carried out. As I’m running OEL6 everything in the OS is already configured correctly, you may not be so lucky. If you get failures the installer will usually either offer to fix the issues or provide instructions on what is required.


Finally we get installation summary, which given how few questions we’ve been asked is fairly straight forward. Notice that unlike OBIEE 11g, we are not asked which components of OBIEE to install – BI Enterprise Edition, BI Publisher or Essbase. The software install always gives you all three, however later during the configuration we can decide which components we actually want setup.


I usually save the response file so I have a record of the installation settings. Then click install and let it do it’s stuff.


As this is just a file-copy installation it’s quite quick – on my slow vm it took eight minutes.


You then get the final installation complete screen. Click Finish to close the installer.

You can see what’s been installed just by looking in the install directory. This now contains a lot more than after the Fusion Middleware installation earlier.


So Fusion Middleware and OBIEE 12c have now been installed. The next step is to start the configuration which begins with the repository creation. I’ll cover that in part 3:




read more
Paul CannonInstalling OBIEE 12c.  Part 2: OBIEE Software install

Installing OBIEE 12c.  Part 1: Prerequisites

by Paul Cannon on 3rd November 2015 2 comments

With the recent release of OBIEE 12c by Oracle it’s time to take a look at how to install it. There are some major changes to how it is installed compared to the various 11g releases, primarily around how it is configured with Fusion Middleware.

Fusion Middleware is no longer part of the OBIEE installation – it must be installed beforehand and then when OBIEE is installed you get to control how OBIEE is deployed to Fusion Middleware. Under a standard “single server/instance” installation this is quite straight forward and not too different from 11g, but for an Enterprise deployment consisting of multiple servers & instances the configuration of OBIEE is much more comprehensive now.

Before you can install Fusion Middleware you also need to download and install JDK 8.

Once Fusion Middleware is installed you next perform a software-only installation of OBIEE – in an Enterprise deployment you would do this on each server. Finally you configure OBIEE for the deployment type you are after.

For now I’m going to look at a standard single-server/instance installation, and as this is Part 1 I’m just going to install Fusion Middleware.

I’m starting with a simple Linux vm server, running OEL 6. For any OBIEE installation you need access to a database for the metadata repositories, I have Oracle DB 12.1 already installed on this server – any database you can connect to across a network will do, it does not have to be on the same server.

To start with you need to download the software install set from technet at:

There are five files you need, although which you download is dependent on the OS are you installing on. I’m on Linux x86-64bit so I have:

The Java Development Kit version 8 (8u65 was the latest version at time of writing)

Fusion Middleware Infrastructure install.

OBIEE 12c itself – 2 files now

The OBIEE 12c client install. Obviously this is just for Windows.

So the full file list I’ve downloaded to a directory called /u02/software/obiee is:


If you’ve installed OBIEE 11g before note that there is no RCU to download – it is now included in the OBIEE installation so doesn’t need to be downloaded separately.

The Oracle installers are as usual graphical, so ensure you have an x-windows emulator installed, I’ve downloaded X-ming.

So the first step is to install the JDK.

To do this you need to be connected as the root user. So login as root, or su to it.  I’ve downloaded the rpm installation file for the JDK, but there are the other usual install files available (tar.gz, zip etc.) So I’m using the rpm command to install it:

su –
cd /u02/software/obiee
rpm -ivh jdk-8u65-linux-x64.rpm


This installed the JDK into the directory /usr/java/jdk1.8.0_65.  You need to locate the directory the JDK was installed if different from this and set the JAVA_HOME and PATH environment variables:

export JAVA_HOME=/usr/java/jdk1.8.0_65
export PATH=$JAVA_HOME/bin:$PATH

You can then confirm Java is available ok with the java –version command:


I also added these to my .bash_profile so they are always set upon login:

vi /home/oracle/.bash_profile

We are now ready to install Fusion Middleware.

The first task is to unzip the downloaded install file:


This expands a single jar file: fmw_12. Check this file name hasn’t changed, just in case Oracle have replaced it with a newer version.

To start the installation use the following command:

$JAVA_HOME/bin/java -d64 -jar fmw_12.

After a few seconds the splash screen will appear, followed by page 1 of the install wizard.


Just click next to continue.

The next screen asks if you want auto-updates. I’ve never come across a situation where I want middleware updated automatically…Leave ‘Skip Auto Updates’ selected and carry on.


Next you need to specify the home location for Fusion Middleware, I entered /u01/app/obiee:


The next screen basically asks if you want Middleware installed with examples. I’ve no idea what these examples are and as they are nothing to do with OBIEE, I passed on the offer.


The installer will then perform prerequisite checks, essentially checking that the OS is recognised and that you’ve installed JDK 8 before starting.


Finally you are asked if you want security emails from Oracle support. I get these anyway, so again I passed up the kind offer and ignored the unnecessary warning message when you do…


So now the installation is ready to begin. You can check over the summary screen and I usually save the response file so I’ve got a reference to how I installed it.


Then click Install and let it run through. It doesn’t take long – on my slowish vm it only took four minutes.


The install should be uneventful and once it’s finished you should see the summary screen.


That’s all there is to it.  Fusion Middleware is now installed and ready for OBIEE to be installed into it. At this point Fusion Middleware isn’t running – it hasn’t been configured or started yet – this all happens when you configure OBIEE later on. You can however see the directory and view what’s been installed so far:


In Part 2 we’ll continue and install OBIEE 12c itself:





read more
Paul CannonInstalling OBIEE 12c.  Part 1: Prerequisites