ODI 12c Installation Configuration

40
ODI12c Installation (from an OWB developers view!) Posted on December 16, 2013 by Paul Cannon I’ve been using OWB to build data warehouses for BI reporting for more years than I care to remember and have never had the need to switch to ODI – I believe the clue is in the name, you want to build a warehouse?, use warehouse builder! Now however Oracle have merged OWB and ODI into a single ETL product – ODI12c, and my first impressions are that they’ve done a pretty good job of it – all the main features in OWB are in there (such as the oh so important mapping screen) but they’ve been improved with some of the slicker features of ODI. But that’s enough of the sales pitch, here is the first of what will be a number blogs on ODI12c written from the point of view of coming to it from an OWB background – so let’s start by installing it – later on I’ll cover migrating OWB projects as well. I performed this install on a Linux x64 vm with an Oracle 11g database (11.2.0.4). Three files were needed from technet before I started Weblogic Server: wls_121200.jar ODI 12c: ofm_odi_generic_12.1.2.0.0_disk1_1of1.zip Latest Java JDK: jdk-7u45-linux-x64.rpm.bin ODI can be run stand-alone or within a weblogic server, and as such does not come with weblogic built into the installer, so if you want to use weblogic you need to install that first (or deploy it into an existing weblogic server, but I’m not doing that here!) It also needs an up to date Java JDK – my vm came with 1.6.0.24, which wasn’t good enough. So the first step was to install the later JDK. Overview The whole installation is done in a number of steps: 3sixty-analytics Blogs All.Things.Oracle

description

ODI 12c Installation Configuration

Transcript of ODI 12c Installation Configuration

Page 1: ODI 12c Installation Configuration

ODI12c Installation (from an OWB

developers view!)Posted on December 16, 2013 by Paul Cannon

I’ve been using OWB to build data warehouses for BI reporting for more years than I care

to remember and have never had the need to switch to ODI – I believe the clue is in the

name, you want to build a warehouse?, use warehouse builder!

Now however Oracle have merged OWB and ODI into a single ETL product – ODI12c,

and my first impressions are that they’ve done a pretty good job of it – all the main

features in OWB are in there (such as the oh so important mapping screen) but they’ve

been improved with some of the slicker features of ODI.

But that’s enough of the sales pitch, here is the first of what will be a number blogs on

ODI12c written from the point of view of coming to it from an OWB background – so let’s

start by installing it – later on I’ll cover migrating OWB projects as well.

I performed this install on a Linux x64 vm with an Oracle 11g database (11.2.0.4). Three

files were needed from technet before I started

Weblogic Server: wls_121200.jar

ODI 12c: ofm_odi_generic_12.1.2.0.0_disk1_1of1.zip

Latest Java JDK: jdk-7u45-linux-x64.rpm.bin

ODI can be run stand-alone or within a weblogic server, and as such does not come with

weblogic built into the installer, so if you want to use weblogic you need to install that first

(or deploy it into an existing weblogic server, but I’m not doing that here!)

It also needs an up to date Java JDK – my vm came with 1.6.0.24, which wasn’t good

enough. So the first step was to install the later JDK.

Overview

The whole installation is done in a number of steps:

3sixty-analytics BlogsAll.Things.Oracle

Page 2: ODI 12c Installation Configuration

Install the latest JDK (as mentioned above)

Install Weblogic Server

Install ODI 12c

Create the ODI Repositories

Create weblogic domain

Running ODI Studio for the first time & Configure the Agent*

Login to enterprise manager

Create the Start/Stop script

* The Agent being the process that executes the ETL – the equivalent of the control

centre service in OWB.

Installing Weblogic Server

Kicking off the weblogic installer is just a case of running the downloaded jar file with the

new JDK:

/usr/java/jdk1.7.0_45/bin/java -jar wls_121200.jar

After it’s extracted its files, the installer will start up

Page 3: ODI 12c Installation Configuration

Just click next.

Specify the location where you want to install ODI. Note for the remainder of this blog

this location will be referred to as the ODI_HOME.

I just wanted a basic weblogic server installation, so I selected that.

Page 4: ODI 12c Installation Configuration

All the pre-requisite checks passed ok…

As this isn’t a production install, I skipped on the support emails.

Page 5: ODI 12c Installation Configuration

A quick check of the installation I’d asked for and away we go.

Wait for all of the tasks to complete…

Page 6: ODI 12c Installation Configuration

On the final screen you get the option to automatically launch the configuration wizard –

although weblogic has been installed, a domain hasn’t been created yet. However you

need to run the weblogic configuration a second time later on to deploy the ODI services,

so you can (and I did) skip the configuration now and do it all in one step later on.

Installing ODI 12c

So now I can install ODI 12c, specifically ODI 12.1.2.0.0. I unzipped the downloaded

ofm_odi_generic_12.1.2.0.0_disk1_1of1.zip file to get odi_121200.jar, then ran it with the

latest version of java.

Note: I didn’t have enough space in my tmp folder to unzip this, so I created a new tmp

folder (/u01/tmp) and used a parameter in java to point to it (Djava.io.tmpdir), you

probably won’t need this, but I included it below as an example of how to…

/usr/java/jdk1.7.0_45/bin/java -Djava.io.tmpdir=/u01/tmp -jar odi_121200.jar

After extracting the files the installer starts…

Page 7: ODI 12c Installation Configuration

Click next passed the first screen.

The Oracle Home needs to be the same home as Weblogic above.

Page 8: ODI 12c Installation Configuration

I wanted to do an enterprise installation, so that’s what I chose. Just a quick note here…if

you want to do a stand-alone installation the oracle home must NOT contain a weblogic

install (i.e. don’t install weblogic then decide to do a stand-alone ODI install!)

All the pre-requisite checks passed ok.

Page 10: ODI 12c Installation Configuration

Finally I got the completion screen.

Creating the ODI Repositories

ODI requires two repositories – a Master repository, containing global configuration

details, such as security, and a Work repository, containing the actual ETL projects you

build.

The repositories are created with the Repository Creation Utility (RCU)

In a terminal window I changed directory to ODI_HOME/oracle_common/bin, set the

JAVA_HOME and ran rcu:

cd /u01/app/Middleware/Oracle_Home/oracle_common/bin

JAVA_HOME=/usr/java/jdk1.7.0_45

export JAVA_HOME

./rcu

This opens the usual RCU installation:

Page 11: ODI 12c Installation Configuration

Click pass the welcome screen.

Select ‘Create Repository’ and ‘System Load and Product Load’ to do it all in one go.

Page 12: ODI 12c Installation Configuration

I entered the connection details for my local 11g database.

I got this interesting message…ODI 12c not officially supported on Oracle Database

11.2.0.4…I chose ignore…

Page 13: ODI 12c Installation Configuration

Otherwise all the pre-requisite checks passed ok.

I just selected ‘Oracle Data Integrator’, the other dependencies are auto-selected.

Page 14: ODI 12c Installation Configuration

More pre-requisite checks…

Used the same password for all schemas…(see the full list of schemas in the select

components screen earlier).

Some additional details are required for the ODI repositories:

Supervisor password (SUPERVISOR is the admin user in ODI)

Work Repository Type – I chose Development (which allows execution as well)

The Work Repository Name

The Work Repository Password

Page 16: ODI 12c Installation Configuration

Finally click Create to build the repositories.

All were created successfully!

Creating the Weblogic domain

Now ODI is installed we can create the weblogic domain and deploy the ODI service at

the same time.

Once again from a terminal window change directory, this time to

ODI_HOME/oracle_common/common/bin, set the java home and run config.sh:

Page 17: ODI 12c Installation Configuration

cd /u01/app/Middleware/Oracle_Home/oracle_common/common/bin

JAVA_HOME=/usr/java/jdk1.7.0_45

export JAVA_HOME

./config.sh

The configuration wizard will then begin:

Choose ‘Create a new Domain’. The domain location defaulted to

ODI_HOME/user_projects/domains/base_domain.

Page 18: ODI 12c Installation Configuration

Now I can include ODI in the domain configuration. I left ‘Create Domain using Product

Templates’ selected and then from the available templates added:

Oracle Enterprise Manager Plugin for ODI – 12.1.2.0 [em]]

Oracle Data Integrator – Console – 12.1.2.0 [odi]

Oracle Data Integrator – Agent – 12.1.2.0 [odi]

Other dependent templates were automatically selected.

Page 19: ODI 12c Installation Configuration

The Application location defaulted to:

ODI_HOME/user_projects/applications/base_domain

Next enter the administrator user-id and password.

Page 20: ODI 12c Installation Configuration

Umm, I want to setup a Production environment, but I also want to use boot.properties to

avoid entering the user-id/password every time I start/stop the vm. Fortunately I know

how to setup the boot.properties file manually – I’ll show this later on.

The JDK defaulted to the JAVA_HOME set before running the wizard above.

Page 21: ODI 12c Installation Configuration

The wizard now needs to connect to the repository created with the RCU above –

specifically it needs to access the Service tables in the prefix_STB schema (DEV_STB in

this example).

Enter the connection details and click the “Get RCU Configuration” button. If this is

successful carry on.

The JDBC component schema screen should already be populated – this is what the

“Get RCU Configuration” button did.

Page 22: ODI 12c Installation Configuration

Click the “Test Selected Connections” button just to make sure all details have loaded

properly before continuing.

Two keys are required for ODI. The SUPERVISOR credential already exists when you

enter this screen, but needs the actual user-name and password entered (as created

Page 23: ODI 12c Installation Configuration

earlier when running the RCU). Note the user-name must be entered upper case.

The second key is for the ODI Domain within weblogic, and needs to be the weblogic

administrator user-id & password as entered on page 4 of this wizard above.

Click the Add button and on the new line that opens up enter odidomain as the key-

name, followed by the admin user-name and password and finally choose

oracle.odi.credmap as the store name from the drop down list.

The three options Administration Server, Node Manager and Managed Servers need to be

selected – these open up more screens below to complete the configuration.

Page 24: ODI 12c Installation Configuration

In here I left the server name and port as default, however the Listen Address MUST be

changed to the IP address of the server – DO NOT leave this as ‘All Local Addresses’

I don’t have/want any server groups, I this is left as unspecified.

Page 25: ODI 12c Installation Configuration

The default ‘Per Domain’ is required (i.e. one node manager per domain, and there is only

one domain). Enter a user-id and password for the node manager.

In the following five screens I need to configure the ODI server, create a cluster (albeit

with just the one server), then create a machine and assign both the ODI server and

weblogic Admin Server to it.

To start with on this screen the ODI_Server1 server name had already been created, but

the Listen Address again defaulted to ‘All Addresses’ which MUST be changed to the IP

Address of the server. The other settings can be left as default.

Page 26: ODI 12c Installation Configuration

Use the add button and enter a cluster name. No address is required.

Select the ODI_server1 in the servers window and click the > button to move it to the

cluster.

Page 27: ODI 12c Installation Configuration

I’m not using Coherence, so I ignored this screen.

Again I clicked Add to create a machine, entered a name and selected the local IP

address for the listen address.

Page 28: ODI 12c Installation Configuration

Then selectede both the Admin Server and the ODI Server1 and clicked > to add it to the

ODI Machine.

Then a rather full looking summary screen displays the settings chosen over the previous

18 screens…

Page 29: ODI 12c Installation Configuration

Leave it a while to perform all these tasks.

Finally take a note of the URL for the admin console

Page 30: ODI 12c Installation Configuration

Running ODI Studio for the first time

The first time ODI is run a connection to the Master repository needs to be created,

followed by the creation of the Agent.

As this is Linux, ODI is started via terminal window:

cd /u01/app/Middleware/Oracle_Home/odi/studio

./odi.sh

The first time it is run it prompts for the location of Java.

Then the funky splash screen appears…

Page 31: ODI 12c Installation Configuration

Again, as this is a first-time run, it asks about importing preferences. I didn’t have

previous installation to import from…

And then we are in ODI studio!

So the first job is to connect to the master repository.

From the menu bar, select File -> New

Page 33: ODI 12c Installation Configuration

Then enter the connection details to the Repository – the supervisor user/password as

entered when creating the domain, the DEV_ODI_REPO being one of the schemas

created by the RCU above.

It’s also worth selecting the Work Repository to connect to at this point as well –

otherwise you’ll only have to manually select it each time you connect.

Click test just to make sure! Then continue.

ODI uses a wallet to store encrypted connection details – using this means you only need

to enter the wallet password each time you connect rather than individual passwords for

the master & work repositories and other components. So enter a password for the wallet.

The 18,000 days I entered for expiry is probably a little OTT, but this is only a dev vm!

Now back at the main ODI screen, click Connect to Repository….which we’ll be doing

every time we launch ODI.

Page 34: ODI 12c Installation Configuration

Enter the new Wallet password.

Then in the ODI login screen the user/password details are pre-filled out for us.

Configure the Agent

In the Topology tab of the navigator window, right click on Agents and select New Agent

Page 35: ODI 12c Installation Configuration

In the new tab that opens up enter an Agent Name and the name of the host server. All

other values can be left as default. Click the Test button in the menu bar of the tab.

That’s all that’s needed right now. ODI is up and running and ready to use.

Login to enterprise manager

Just to check that the enterprise manager is up and running correctly, load a browser and

enter the URL:

http://servername:7001/em

Enter the weblogic user-id and password, then one logged in, in the target navigation

window on the left expand Weblogic Domain and click on base_domain. You should see

green pies with both the AdminServer (Weblogic) and ODI_Server1 (ODI) started.

Page 36: ODI 12c Installation Configuration

Create boot.properties files

When the weblogic and ODI services are started they prompt for the administrator user-id

and password – we don’t want this happening every time, so we can place these details

in a special file called boot.properties. Both Weblogic and ODI will then pick-up the

details from this file rather than prompting – the first time these files are accessed both

the user-id and password are encrypted for security. We two of these files, one each for

Weblogic and ODI, although they are identical.

cd ODI_HOME/user_projects/domains/base_domain/servers/AdminServer

mkdir security

cd security

vi boot.properties

add the following lines and save.

username=weblogic

password=Password1

Page 37: ODI 12c Installation Configuration

Then change to the ODI Server directory and copy this file:

cd ODI_HOME/user_projects/domains/base_domain/servers/ODI_server1

mkdir security

cd security

cp ../../AdminServer/security/boot.properties .

Create start/stop script

With ODI embedded in Weblogic, you need to start three separate components, the node

manager, the weblogic admin server and the ODI server. The following script, suitably

amended for the environment, will perform these tasks as background processes. The

script requires an argument of start, stop or restart and will create a log file in a

subdirectory called logs.

#!/bin/bash

ORACLE_OWNR=oracle # Local Unix user running ODI

MIDDLEWARE_HOME=/u01/app/Middleware/Oracle_Home # Deployment home directory

DOMAIN_NAME=base_domain # Domain name

SERVER_NAME=ODI_server1

WL_DOMAIN_PATH=$MIDDLEWARE_HOME/user_projects/domains/$DOMAIN_NAME/bin

ODI_USER=weblogic # ODI administrator name

ODI_PASSWD=Password1

# ODI administrator password

MANAGED_SERVER_URL=oraclelinux6.localdomain:7001 # Admin server URL (hostname:port)

SUBSYS=ODI

NOW=$(date +"%Y%m%d­%H%M")

START_LOG=~/logs/odi­start­$NOW.log

STOP_LOG=~/logs/odi­stop­$NOW.log

start()

echo "********************************************************************************"

echo "Starting Node Manager on $(date)"

echo "********************************************************************************"

$WL_DOMAIN_PATH/startNodeManager.sh &

wait_for "socket listener started on port"

echo "********************************************************************************"

echo "Starting Weblogic Server on $(date)"

echo "********************************************************************************"

$WL_DOMAIN_PATH/startWebLogic.sh &

wait_for "Server started in RUNNING mode"

echo "********************************************************************************"

echo "Starting ODI Services on $(date)"

Page 38: ODI 12c Installation Configuration

echo "********************************************************************************"

$WL_DOMAIN_PATH/startManagedWebLogic.sh $SERVER_NAME &

echo "********************************************************************************"

echo "ODI start sequence completed on $(date)"

echo "********************************************************************************"

stop()

echo "********************************************************************************"

echo "Stopping ODI Services on $(date)"

echo "********************************************************************************"

$WL_DOMAIN_PATH/stopManagedWebLogic.sh $SERVER_NAME t3://$MANAGED_SERVER_URL $ODI_USER $ODI_PASSWD

echo "********************************************************************************"

echo "Starting Weblogic Server on $(date)"

echo "********************************************************************************"

$WL_DOMAIN_PATH/startWebLogic.sh &

wait_for "server started in RUNNING mode"

echo "********************************************************************************"

echo "Starting ODI Services on $(date)"

echo "********************************************************************************"

$WL_DOMAIN_PATH/startManagedWebLogic.sh $SERVER_NAME &

echo "********************************************************************************"

echo "ODI start sequence completed on $(date)"

echo "********************************************************************************"

stop()

echo "********************************************************************************"

echo "Stopping ODI Services on $(date)"

echo "********************************************************************************"

$WL_DOMAIN_PATH/stopManagedWebLogic.sh $SERVER_NAME t3://$MANAGED_SERVER_URL $ODI_USER $ODI_PASSWD

echo "********************************************************************************"

echo "Starting Weblogic Server on $(date)"

echo "********************************************************************************"

$WL_DOMAIN_PATH/stopWebLogic.sh

echo "********************************************************************************"

echo "Stoping Node Manager on $(date)"

echo "********************************************************************************"

pkill ­TERM ­u $ORACLE_OWNR ­f "weblogic\\.NodeManager"

echo "********************************************************************************"

echo "ODI stop sequence completed on $(date)"

echo "********************************************************************************"

wait_for()

res=0

while [[ ! $res ­gt 0 ]]

do

res=$(tail ­5 "$START_LOG" | fgrep ­c "$1")

sleep 5

done

Page 39: ODI 12c Installation Configuration

3 THOUGHTS ON “ODI12C INSTALLATION (FROM AN OWB DEVELOPERS VIEW!)”

case "$1" in

start)

echo "********************************************************************************"

echo "Starting EPM on $(date)"

echo "View Log with: tail ­f $START_LOG"

echo "********************************************************************************"

start &> $START_LOG &

# touch /var/lock/subsys/$SUBSYS

;;

stop)

echo "********************************************************************************"

echo "Stopping EPM on $(date)"

echo "Logs are sent to $STOP_LOG"

echo "********************************************************************************"

stop &> $STOP_LOG

# rm ­f /var/lock/subsys/$SUBSYS

;;

restart)

$0 stop

$0 start

;;

*)

echo "Usage: $(basename $0) start|stop|restart"

exit 1

esac

exit 0

This entry was posted in Uncategorized by Paul Cannon. Bookmark the permalink[http://blog.3sixty-analytics.com/?p=577] .

Adi

on February 9, 2014 at 1:37 am said:

Hi,

A newbie in ODI, I’ve installed ODI12c 12.1.2. In the installation, I missed to give

‘odidomain’ credentials in the Credentials screen. So, I ran wlst and gave in these

credentials. my domain name is base_domain so i created credentials with keys

odidomain and base_fomain. Yet, my JEE agent is not starting, its giving this

Page 40: ODI 12c Installation Configuration

error:

SEVERE: org.apache.commons.cli.ParseException: ODI-1625: This must be

executed from a domain. System property domain.home cannot be null”

org.apache.commons.cli.ParseException: ODI-1625: This must be executed from

a domain. System property domain.home cannot be null”

There is no agent.bat in the domain\bin, rather its in odi\agent\internal\bin.

Detailed question is here: https://community.oracle.com/thread/3513978

Please let me know where am I going wrong.

Thank you in advance!

-Adi

Paul Cannon

on February 10, 2014 at 8:39 am said:

Adi,

I’ve seen all the additional problems and replies on the oracle community

link and I think you’re just attacking the symptoms rather than fixing the

main problem – which was the install wasn’t carried out properly. As this

is a new installation my advice would be to delete it and start over.

Paul.

OracleAppsDbaGirl

on July 2, 2014 at 1:20 pm said:

This is amazing. Thanks for sharing I appreciate your contributions. Definitely

bookmarking and referring to this as I go through my installation of ODI.