Install and Configure OBIEE 12c on Linux VM

Jared Bach
Geek Culture
Published in
19 min readSep 16, 2021

Today we are going to be installing Oracle BI 12c on our Linux Virtual Machine. If you have not already created an Oracle Linux VM, I wrote a blog on how to do this here. If you have not already installed Oracle Database 19c on your Linux VM, I wrote a blog on how to do this here. This blog also assumes that you have access to the sample HR dataset that comes pre-installed with Oracle Database 19c. I covered how to access this in the Oracle 19c installation blog that I mentioned above.

Before we begin, I just wanted to say good luck and

Starting-up and opening the database

If you have not already done so, log-in to your Linux instance’s GUI. Your screen should look like this.

First, let’s start our listener and open-up our database. Open a new terminal window and execute the following command to start your listener, if it is not already started. If it has already been started, the terminal will let you know.

lsnrctl start

Let’s now open-up our container database. In your terminal log-in to SQL Plus as SYSDBA with the following command.

sqlplus "/ AS SYSDBA"

Inside SQL Plus, run the following commands to start-up the database.

STARTUP FORCE;

Run the command below to open-up the container database, if it is not already open.

ALTER PLUGGABLE DATABASE ALL OPEN;

Run the command below to connect to PDB1, if you are not already connected to it.

ALTER SESSION SET container=PDB1;

Pre-requisite installation

Awesome — we can log-out of SQL Plus now by entering exit inside the SQL Plus shell in our terminal. Your terminal screen should now look like this.

Let’s now install the pre-requisites. Paste the command below into your terminal.

sudo yum install oracle-rdbms-server-12cR1-preinstall

Now, we need to download and install the following files, in this order.

  1. Java Developer Kit (8) JDK 8
  2. Web Logic Server
  3. Oracle Business Intelligence 12c (12.21.0.0)

Java Developer Kit (8) JDK 8

If you successfully completed my tutorial on how to install Oracle Database 19c on Linux and also completed the installation of SQL Developer within that tutorial, you should already have JDK 8 installed. You can check whether you have JDK running and its version with this command in your terminal.

java -version

If you already have JDK8 installed, skip to Part 2.

Part 1: Installing JDK8

If you need to install JDK8, navigate to this page to download JDK 8 for your machine. If you are using the same machine as me, on the page, scroll down to the Linux x64 RPM Package and download it.

Before the download can commence, you will be prompted to log into your Oracle SSO account. After successfully logging-in, you will be asked if you want to open the download file with Archive Manager (default) or if you want to save the file. Select “Save File” and then hit “OK.” Make a mental note of where this zip file was saved. It should have been saved, by default, in your downloads folder. After the download is completed, navigate back to your terminal and make sure that you are logged in as root. Again, you can log-in as root with the following command.

sudo su -

Your terminal screen should look like this.

Navigate to where you downloaded the RPM. By default, it should have saved to the Downloads folder. Navigate to the Downloads folder with the following command.

cd /home/oracle/Downloads

Your terminal should now look like this.

To install the RPM package, run the following command.

rpm -ivh jdk-8u301-linux-x64.rpm

Part 2: Setting the JAVA_HOME variable

After you successfully install JDK8, we need to set the JAVA_HOME variable and export this to our path. We can do that with this command.

export JAVA_HOME=/usr/java/jdk1.8.0_301-amd64
export PATH=$JAVA_HOME/bin:$PATH

You can check that you set the path correctly by running this command in your terminal

echo $JAVA_HOME

This should return the path that we set. Let’s now also change our default Java location. Paste the following command into your terminal as root.

update-alternatives --config java

Your terminal screen should look like this.

As you can see, we have two programs that provide Java — and the default location is different from the Java that we just installed. The one that we just installed is “Selection 2” — let’s change the selection by entering the number 2 in the terminal. Our Java should now be pointing at the right location when we go to launch the Web Logic Server and OBIEE.

Web Logic Server

We now need to install the web logic server. This can be downloaded here. Scroll down to where it says “2. Web Logic Server” and download the generic file to your VM

Before the download can commence, you will be prompted to log into your Oracle SSO account. After successfully logging-in, you will be asked if you want to open the download file with Archive Manager (default) or if you want to save the file. Select “Save File” and then hit “OK.” Make a mental note of where this zip file was saved. It should have been saved, by default, in your downloads folder. After the download is completed, navigate back to your terminal. Navigate to where you downloaded the zip file. By default, it should have saved to the Downloads folder. Navigate to the Downloads folder with the following command.

cd /home/oracle/Downloads

Your terminal should now look like this.

We now need to unzip the zip file that we just downloaded.

unzip -q fmw_12.2.1.0.0_infrastructure_Disk1_1of1.zip

Let’s now run the .jar file that we just unzipped.

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

Uh oh — I got an error.

The OpenJDK JVM is not supported on this platform.

Let’s try to run this again but instead of using the JAVA_HOME variable, let’s write out the path.

/usr/java/jdk1.8.0_301-amd64/bin/java -d64 -jar fmw_12.2.1.0.0_infrastructure.jar

A GUI wizard for Oracle Fusion Middleware 12c Infrastructure should pop-up on your screen. Let’s run through it.

Update (October 2021):

So, of course, you can still write-out the full Java path to get this to work — however, the reason why the $JAVA_HOME was not working properly is because it was not in the bash_profile. To fix this, first open-up the bash profile with the following command. Make sure you are logged-in as a sudo user.

vi .bash_profile

Press Shift+G to navigate to the bottom of the document. Press the letter “i” on your keyboard to begin editing the document. At the bottom of the document, paste these lines of code.

export JAVA_HOME=/usr/java/jdk1.8.0_301-amd64
export PATH=$JAVA_HOME/bin:$PATH
export PATH

The bash_profile should now look like this.

When you are done, hit the ESC button, scroll down to the bottom of the document and type the following text. Then, hit enter.

:wq

This sequence will save the file and exit the editor. We now need to export the bash profile. We can do this with the following command.

. .bash_profile

The $JAVA_HOME variable should be able to be called properly.

Step 1: Welcome

Click “Next”

Step 2: Auto Updates

Click “Next” to skip auto updates

Step 3: Installation Location

Click “Next”

Make a note of the Oracle Home directory it is as follows.

/home/oracle/Oracle/Middleware/Oracle_Home

Step 4: Installation Type

Select “Fusion Middleware infrastructure With Examples” if you are keen on playing with them. Then, click “Next”

Step 5: Prerequisite Checks

Uh oh — I got a warning. I am going to ignore it. Click “Next”

Step 6: Security Updates

Uncheck the highlighted box and click “Next”

If you get the pop-up below, just click “Yes” to continue the installation process.

Step 7: Installation Summary

Click “Install” to proceed with the installation process

Step 8: Installation Progress

Once the installation reached 100%, click “Next”

Step 9: Installation Complete

Click “Finish”

Oracle Fusion Middleware Infrastructure 12c is now installed. Let’s now move onto the OBIEE installation.

Oracle Business Intelligence 12c (12.21.0.0)

We now need to download and install OBIEE. This can be downloaded here. Scroll down to where it says “3. Oracle Business Intelligence 12c (12.21.0.0)” and download the “for Linux-x86–64-bit” File 1 and File 2.

Before the download can commence, you will be prompted to log into your Oracle SSO account. After successfully logging-in, you will be asked if you want to open the download file with Archive Manager (default) or if you want to save the file. Select “Save File” and then hit “OK.” Make a mental note of where this zip file was saved. It should have been saved, by default, in your downloads folder. After the download is completed, navigate back to your terminal. Navigate to where you downloaded the zip file. By default, it should have saved to the Downloads folder. Navigate to the Downloads folder with the following command.

cd /home/oracle/Downloads

Your terminal should now look like this.

Let’s view the contents of our download folder with the ls command.

We need to move the fmw_12.2.1.0.0_bi_linux64_Disk1_1of2.zip and the fmw_12.2.1.0.0_bi_linux64_Disk1_2of2.zip to the Oracle_Home directory where we installed the web logic server. This is the Oracle_Home directory on our system.

/home/oracle/Oracle/Middleware/Oracle_Home

We can move these two zip files to the Oracle_Home directory with these two commands.

mv fmw_12.2.1.0.0_bi_linux64_Disk1_1of2.zip /home/oracle/Oracle/Middleware/Oracle_Homemv fmw_12.2.1.0.0_bi_linux64_Disk1_2of2.zip /home/oracle/Oracle/Middleware/Oracle_Home

Let’s now switch to the directory where we just moved these files.

cd /home/oracle/Oracle/Middleware/Oracle_Home

Let’s view the contents of this directory with the ls command. Your terminal should look like this.

Cool — it looks like it worked. We now need to unzip the zip files that we just downloaded. We can do this with the two commands below.

unzip -q fmw_12.2.1.0.0_bi_linux64_Disk1_1of2.zip
unzip -q fmw_12.2.1.0.0_bi_linux64_Disk1_2of2.zip

Let’s view the contents of this directory again with the ls command, so that we can the files that we unzipped. Your terminal should look like this.

I see two new files. I listed them below and circled them in red above in the terminal.

bi_platform-12.2.1.0.0_linux64–2.zip
bi_platform-12.2.1.0.0_linux64.bin

To initiate the OBIEE installation, run the following command in the terminal inside the current directory.

./bi_platform-12.2.1.0.0_linux64.bin

A GUI wizard for Oracle Business Intelligence 12c should pop-up on your screen. Let’s run through it.

Step 1: Welcome

Click “Next”

Step 2: Auto Updates

Click “Next” to skip auto updates

Step 3: Installation Location

Put the Oracle_Home directory here that we used in Step 3 of the Web Logic Server installation. For reference once more, the Oracle_Home directory is as follows.

/home/oracle/Oracle/Middleware/Oracle_Home

After you input the Oracle_Home directory, click “Next.”

Step 4: Installation Type

Select “BI Platform Distribution with Samples” and then click “Next”

Step 5: Prerequisite Checks

Click “Next”

Step 6: Installation Summary

Click “Install”

Step 7: Installation Progress

Click “Next”

Step 8: Installation Complete

Click “Finish”

We have successfully installed the software — but we are not done yet. We need to create a repository that will have access to the container database that we were working out of in my previous blog. To do this, however, we are going to need a user with SYS privileges and create session privileges. If you already have a user with these privileges — great. If you don’t, let’s create one together.

Creating a user with sys and create session privileges

Run the following command in your terminal to log-in to SQL Plus as a SYS user.

sqlplus "/ AS SYSDBA"

Run the command below to open-up our container database, if it is not already open.

ALTER PLUGGABLE DATABASE ALL OPEN;

Run the command below to connect to PDB1, if you are not already connected.

ALTER SESSION SET container=PDB1;

We are now going to write a query in SQL Plus that will create a new user for our container database. The syntax will look like this

CREATE USER user_name IDENTIFIED BY some_password;

I am going to name my user jib and then I am going to input a password. After you do this, your terminal should look like this. I covered my password. Keep your password somewhere safe.

We are now going to grant jib SYSDBA privileges. We can do this with the following syntax. Of course, in my case, I will replace user_name with jib.

GRANT SYSDBA TO user_name;

We are now also going to grant create sessions privileges to jib. We can do this with the following syntax. Again, of course, in my case, I will replace user_name with jib.

GRANT CREATE SESSION TO user_name;

Once you successfully complete this step, you are ready to move onto the repository creation. Exit SQL Plus with the exit command to return to the terminal.

Repository creation

Inside your terminal, change your directory to the following. This is where the Repository Creation Utility (RCU) is stored.

cd /home/oracle/Oracle/Middleware/Oracle_Home/oracle_common/bin

Let’s view the contents of this directory with the ls command. Your terminal should look like this.

We need to start RCU, circled in red above, to start the RCU wizard, which will allow us to create a repository. Run the following command in your terminal to start RCU.

./rcu

A GUI wizard for RCU should pop-up on your screen. Let’s run through it.

Step 1: Welcome

Click “Next”

Step 2: Create Repository

Click “Next”

Step 3: Database Connection Details

The next window will look like this.

We are going to connect to the container database that we unlocked and tapped into in SQL Developer and in SQL Plus in my previous blog post. Fill in the boxes in the wizard with the following criteria:

  • Host Name: localhost
  • Port: 1521
  • Service Name: PDB1
  • Username: your_username
  • Password: your_password
  • Role: SYSDBA

Remember that for username and password, you will be using the same username and password that we just created in the previous step. For me, I will be using the user jib. The window should now look like this.

Click “Next”

If you get the error below after clicking “Next,” just click “Ignore.”

When you get the “Operation completed” window below, click OK.

If you are having issues connecting to the database, don’t panic.

Follow the trouble-shooting steps below.

1. Start the listener

Stop the listener and then restart it with this command in a new terminal tab.

lsnrctl stop
lsnrctl start

2. Open and connect to PDB1

Open a new terminal tab and start a new SQL Plus session with the following command.

sqlplus "/ AS SYSDBA"

After you are logged into SQL Plus, run this command to shut down and then restart the database.

SHUTDOWN;
STARTUP FORCE;

Then, run the command below to open-up the container database.

ALTER PLUGGABLE DATABASE ALL OPEN;

Run the command below to connect to PDB1.

ALTER SESSION SET container=PDB1;

After completing these steps, click “Next” inside of the wizard and attempt to connect to the container database again.

Step 4: Select Components

Check the box next to “Oracle AS Repository Components.” This will select all the other boxes below it for you. Then click “Next.”

Click “Next”

When you get the “Operation completed” window below, click OK.

Step 5: Schema Passwords

Enter a password that you will use to access the schemas. Keep your password somewhere safe. Click “Next” to continue.

Click “Next”

Step 6: Map Tablespaces

Click “Next”

If you get a pop-up window like the one below, click “OK.”

When you get the “Operation completed” window below, click OK.

Step 7: Summary

Be patient — this one takes a hot second to finish.

Click “Create”

Step 8: Completion Summary

Click “Close”

We have now successfully created a repository. It is now time to configure OBIEE 12c.

Configure OBIEE 12c

Navigate to the directory below. This is the directory that we have been working out of for the majority of this tutorial.

cd /home/oracle/Oracle/Middleware/Oracle_Home

We then want to navigate to bi/bin. We can do this with the following command.

cd bi/bin

Let’s view the contents of this directory with the ls command. Your terminal should look like this.

To configure OBIEE 12c, we need to run config.sh. We can do this with the following command.

./config.sh

A GUI wizard for OBIEE should pop-up on your screen. Let’s run through it.

Step 1: Welcome

Select “Business Intelligence Enterprise Edition.” You can unselect “Essbase” and “Business Intelligence Publisher.”

Click “Next”

Step 2: Prerequisite Checks

Uh oh — I got a warning. I am going to ignore it. Click “Next”

Step 3: Define Domain

Enter a password that you will use to access the BI domain. Keep your password somewhere safe. Click “Next” to continue.

Click “Next”

For future reference, this is the domain home.

/home/oracle/Oracle/Middleware/Oracle_Home/user_projects/domains/bi

Step 4: Database Details

The next window will look like this.

The repositories schemas were created with the RCU so click “Use existing schemas. Fill out this window with the following criteria:

  • Simple string connect: hostname:port:servicename i.e. localhost:1521:PDB1
  • Prefix: DEV
  • Password: This is the password that we created for the schema in the previous step

The window should now look like this.

Click “Next”

Uh oh — I got an error. Let’s try to fix this.

Error ORA-28040

After some research, I learned that we need to set the minimum authentication protocol allowed when connecting to Oracle Database instances. We can fix this fairly easily by creating and editing the sqlnet.ora file. Before we do this, if you have not already done so, set a password for the SYS user. If you have already done this, go to Step 2.

Step 1: Create a password for the SYS user

Start a new SQL Plus session with the following command.

sqlplus "/ AS SYSDBA"

Change the password of the SYS user with the following command.

ALTER USER SYS IDENTIFIED BY some_password;

Your terminal should look like this. I covered my password. Keep your password somewhere safe.

We can now exit SQL Plus with the exit command.

Step 2: Create and configure the sqlnet.ora file

Let’s go back to our terminal and navigate to the following path.

cd $ORACLE_HOME/network/admin

Let’s view the contents of this directory with the ls command. Your terminal should look like this.

I do not see a sqlnet.ora file — do not fear, we are going to create one. Before we do this, let’s stop the listener.

lsnrctl stop

Let’s now create and configure a new sqlnet.ora file with the following command.

vi sqlnet.ora

Press the letter “i” on your keyboard to begin editing the document. Add the following text to the document.

SQLNET.AUTHENTICATION_SERVICES= (NTS)
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION=8
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

Once you complete this task, hit the ESC button, scroll down to the bottom of the document and type the following text. Then, hit enter.

:wq

This sequence will save the file and exit the editor. Let’s now restart the listener with the following command.

lsnrctl start

We now need to log back into SQL Plus. Use the command below to log back into SQL Plus. You use the /nolog argument to start a connectionless session.

sqlplus /nolog

After SQL Plus has started we can connect to a database with the connect command. Run the command below in SQL Plus and replace the variable your_password with the password that you set for the SYS user.

CONN SYS/your_password AS SYSDBA;

Run this command to shut down and then restart the database.

SHUTDOWN;
STARTUP FORCE;

Run the command below to open-up the container database, if it is not already open.

ALTER PLUGGABLE DATABASE ALL OPEN;

Run the command below to connect to PDB1, if you are not already connected to it.

ALTER SESSION SET container=PDB1;

Let’s try to connect to our database again in the wizard…Dang — I am still getting an error. If I were to take a guess, it is not liking the jib user that I created earlier for the schema that we are now trying to connect to.

*Sigh* — another error

Let’s try to create a new schema by clicking “Create new schemas.” Instead of using the jib user to create this new schema, let’s use the SYS user that we just assigned a password to. The window should now look like this.

Fill out this window with the following criteria:

  • Prefix: DEV1 (this needs to be different than the prefix from the schema we already created)
  • Schema password: You can either use the same password from the previous schema that we created or create a new password — store it somewhere safe
  • Confirm Schema password: Enter the same password that you entered above
  • Database type: Oracle Database
  • Simple string connect: hostname:port:servicename i.e. localhost:1521:PDB1
  • Username: sys
  • Password: your_sys_password

Remember to use the password associated with the SYS account that we just set-up. The window should now look like this.

Alas — I got it to work. If you are getting the “invalid username/password” error that I got when trying to connect, go back into SQL Plus and change your SYS password again — perhaps, you should also create a password that you will be able to easily enter into the password box without making a typo. Then, shutdown the database and restart it again. I am not sure what exactly causes this issue but it sure seems to be a common issue than many will run into. Let’s continue on in the wizard.

Step 5: Port Management

Click “Next”

Step 6: Initial Application

Click “Next”

Step 7: Summary

Click “Configure”

Step 8: Configuration Progress

Click “Next”

Step 9: Configuration Complete

Below, where it says “Save this page,” click Save. It is good to have this for reference in the future. When you are ready, click “Finish”

Click “Finish”

Allegedly, after you click “Finish”, a browser window should open with the OBIEE log-in page— this did not happen for me. Let’s start OBIEE manually. Open your browser and open this URL.

http://localhost:9502/analytics/saw.dll?bieehome&startPage=1

You should get a webpage that looks like this — log-in with your weblogic username and password.

Oh my gosh — it worked.

I am so happy. One last thing before I sign-off — let’s talk about what to do before and after a computer reboot.

First, navigate to the following directory.

cd /home/oracle/Oracle/Middleware/Oracle_Home/user_projects/domains/bi/bitools/bin

Next, run this script to startup OBIEE.

./start.sh

To shutdown OBIEE, run this script in the same directory.

./stop.sh

To check the status of OBIEE, run this script in the same directory.

./status.sh

--

--

Jared Bach
Geek Culture

GenZ business techie 👨🏻‍💻📉 lover of dogs and hummus 🇮🇱