Sunteți pe pagina 1din 40

3sixty-analytics Blogs

All.Things.Oracle

ODI12c Installation (from an OWB


developers view!)
Posted on December 16, 2013 by Paul Cannon
Ive 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 theyve 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 theyve
been improved with some of the slicker features of ODI.
But thats 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 lets
start by installing it later on Ill 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 Im not doing that here!)
It also needs an up to date Java JDK my vm came with 1.6.0.24, which wasnt good
enough. So the first step was to install the later JDK.
Overview
The whole installation is done in a number of steps:

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 its extracted its files, the installer will start up

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.

All the pre-requisite checks passed ok

As this isnt a production install, I skipped on the support emails.

A quick check of the installation Id asked for and away we go.

Wait for all of the tasks to complete

On the final screen you get the option to automatically launch the configuration wizard
although weblogic has been installed, a domain hasnt 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 didnt 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 wont 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

Click next passed the first screen.

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

I wanted to do an enterprise installation, so thats what I chose. Just a quick note hereif
you want to do a stand-alone installation the oracle home must NOT contain a weblogic
install (i.e. dont install weblogic then decide to do a stand-alone ODI install!)

All the pre-requisite checks passed ok.

Check the install summary and go for it.

The installation ran through fine.

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:

Click pass the welcome screen.

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

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

I got this interesting messageODI 12c not officially supported on Oracle Database
11.2.0.4I chose ignore

Otherwise all the pre-requisite checks passed ok.

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

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

I left the default table-spaces selected.

Let the RCU create the tablespaces.

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:

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.

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.

The Application location defaulted to:


ODI_HOME/user_projects/applications/base_domain

Next enter the administrator user-id and password.

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 Ill show this later on.
The JDK defaulted to the JAVA_HOME set before running the wizard above.

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.

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

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 keyname, 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.

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 dont have/want any server groups, I this is left as unspecified.

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.

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.

Im 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.

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

Leave it a while to perform all these tasks.

Finally take a note of the URL for the admin console


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

Again, as this is a first-time run, it asks about importing preferences. I didnt 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

From the ODI category, click on Create a new ODI Repository Login

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.
Its also worth selecting the Work Repository to connect to at this point as well
otherwise youll 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 well be doing
every time we launch ODI.

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

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.

Thats all thats 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.

Create boot.properties files


When the weblogic and ODI services are started they prompt for the administrator user-id
and password we dont 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.

cdODI_HOME/user_projects/domains/base_domain/servers/AdminServer
mkdirsecurity
cdsecurity
viboot.properties

add the following lines and save.

username=weblogic
password=Password1

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

cdODI_HOME/user_projects/domains/base_domain/servers/ODI_server1
mkdirsecurity
cdsecurity
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#LocalUnixuserrunningODI
MIDDLEWARE_HOME=/u01/app/Middleware/Oracle_Home#Deploymenthomedirectory
DOMAIN_NAME=base_domain#Domainname
SERVER_NAME=ODI_server1
WL_DOMAIN_PATH=$MIDDLEWARE_HOME/user_projects/domains/$DOMAIN_NAME/bin
ODI_USER=weblogic#ODIadministratorname
ODI_PASSWD=Password1
#ODIadministratorpassword
MANAGED_SERVER_URL=oraclelinux6.localdomain:7001#AdminserverURL(hostname
SUBSYS=ODI
NOW=$(date+"%Y%m%d%H%M")
START_LOG=~/logs/odistart$NOW.log
STOP_LOG=~/logs/odistop$NOW.log

start(){
echo"***********************************************************************
echo"StartingNodeManageron$(date)"
echo"***********************************************************************
$WL_DOMAIN_PATH/startNodeManager.sh&
wait_for"socketlistenerstartedonport"
echo"***********************************************************************
echo"StartingWeblogicServeron$(date)"
echo"***********************************************************************
$WL_DOMAIN_PATH/startWebLogic.sh&
wait_for"ServerstartedinRUNNINGmode"
echo"***********************************************************************
echo"StartingODIServiceson$(date)"

echo"***********************************************************************
$WL_DOMAIN_PATH/startManagedWebLogic.sh$SERVER_NAME&
echo"***********************************************************************
echo"ODIstartsequencecompletedon$(date)"
echo"***********************************************************************
}
stop(){
echo"***********************************************************************
echo"StoppingODIServiceson$(date)"
echo"***********************************************************************
$WL_DOMAIN_PATH/stopManagedWebLogic.sh$SERVER_NAMEt3://$MANAGED_SERVER_URL
echo"***********************************************************************
echo"StartingWeblogicServeron$(date)"
echo"***********************************************************************
$WL_DOMAIN_PATH/startWebLogic.sh&
wait_for"serverstartedinRUNNINGmode"
echo"***********************************************************************
echo"StartingODIServiceson$(date)"
echo"***********************************************************************
$WL_DOMAIN_PATH/startManagedWebLogic.sh$SERVER_NAME&
echo"***********************************************************************
echo"ODIstartsequencecompletedon$(date)"
echo"***********************************************************************
}
stop(){
echo"***********************************************************************
echo"StoppingODIServiceson$(date)"
echo"***********************************************************************
$WL_DOMAIN_PATH/stopManagedWebLogic.sh$SERVER_NAMEt3://$MANAGED_SERVER_URL
echo"***********************************************************************
echo"StartingWeblogicServeron$(date)"
echo"***********************************************************************
$WL_DOMAIN_PATH/stopWebLogic.sh
echo"***********************************************************************
echo"StopingNodeManageron$(date)"
echo"***********************************************************************
pkillTERMu$ORACLE_OWNRf"weblogic\\.NodeManager"
echo"***********************************************************************
echo"ODIstopsequencecompletedon$(date)"
echo"***********************************************************************
}
wait_for(){
res=0
while[[!$resgt0]]
do
res=$(tail5"$START_LOG"|fgrepc"$1")
sleep5
done
}

case"$1"in
start)
echo"***********************************************************************
echo"StartingEPMon$(date)"
echo"ViewLogwith:tailf$START_LOG"
echo"***********************************************************************
start&>$START_LOG&
#touch/var/lock/subsys/$SUBSYS

stop)
echo"***********************************************************************
echo"StoppingEPMon$(date)"
echo"Logsaresentto$STOP_LOG"
echo"***********************************************************************
stop&>$STOP_LOG
#rmf/var/lock/subsys/$SUBSYS

restart)
$0stop
$0start

*)
echo"Usage:$(basename$0)start|stop|restart"
exit1
esac
exit0

This entry was posted in Uncategorized by Paul Cannon. Bookmark the permalink
[http://blog.3sixty-analytics.com/?p=577] .
3 THOUGHTS ON ODI12C INSTALLATION (FROM AN OWB DEVELOPERS VIEW!)

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

Hi,
A newbie in ODI, Ive 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

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,
Ive seen all the additional problems and replies on the oracle community
link and I think youre just attacking the symptoms rather than fixing the
main problem which was the install wasnt 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.

S-ar putea să vă placă și