Saturday, June 5, 2010

Silent installation of Enteprise Manager Grid Control 11g

(originally posted at Pythian)
One of the first questions that I asked myself when EM GC 11g came out is how would a silent
installation go especially taking into account the use of WebLogic server as the http server.

But before any attempt of silent installation I started the GC 11g GUI installation to local VM machine
(Oracle Enterprise Linux 5.4 64-bit) with an allocated 2Gb of memory and got errors since
WebLogic server was not installed there.

I downloaded it from edelivery.oracle.com and unpacked zip file - got one jar file! Not bad at all!
But where are all those runInstaller, stage, & other directories? There was not even a sample silent
response file. This is where documentation is helpful, and based on Creating a Silent Installation,
I created response file silent.xml




and tried to start installation but got an error that java should be at least 1.6 version.
After installation of JRE out of jre-6u20-linux-x64-rpm.bin I changed the symbolic link
and pointed new version java to /usr/bin/java and completed silent installation of
WebLogic Server 10.3.0.2:

java -jar wls1032_generic.jar -mode=silent -silent_xml=silent.xml -log=install.log
Extracting 0%.............................................................................100%
May 6, 2010 9:33:34 PM java.util.prefs.FileSystemPreferences$2 run
INFO: Created user preferences directory.

Intstalling Grid Control requires running a database where the repository will be created.
Oracle RDBMS 11.2 was installed silently as well and that installation is even more silent
than previous versions since there is no progress bar now for 11.2.


./runInstaller -silent \
-responseFile /home/oracle/install/db112/database/response/db_install.rsp \
oracle.install.option=INSTALL_DB_SWONLY \
oracle.install.db.InstallEdition=EE \
security_updates_via_myoraclesupport=false \
decline_security_updates=true \
oracle.install.db.DBA_GROUP=dba \
oracle.install.db.OPER_GROUP=dba \
ORACLE_BASE="/u01/app/oracle" \
ORACLE_HOME="/u01/app/oracle/product/11.2.0/dbhome_1"
Starting Oracle Universal Installer...


Database emrep was created on file system taking into account database parameter requirements
for the repository database at Setting Database Initialization Parameters

./dbca -silent -createDatabase -gdbName emrep -templateName General_Purpose.dbc \
-emConfiguration none -datafileDestination /u01/oradata \
-sysPassword sys_pwd -systemPassword sys_pwd -storageType FS \
-initParams filesystemio_options=setall,job_queue_processes=10,log_buffer=10485760,\
open_cursors=300,processes=500,session_cached_cursors=200 \
-totalMemory 600


One pre-requisite is to have undo tablespace not less than 200Mb. I increased the size of the datafile, followed with a database control deletion from the created database:

emca -deconfig dbcontrol db -repos drop -silent -SYS_PWD sys_pwd -SYSMAN_PWD sys_pwd -SID emrep -PORT 1521

Before proceeding with further GC silent installation I checked Prerequisites
and recognized that "soft nofile" limits for an oracle user are required to be set to 4096 instead of 1024
recommended for oracle 11.2 RDBMS installation.
After change of kernel parameters I put values to response file for silent installation of Grid Control 11:

RESPONSEFILE_VERSION=2.2.1.0.0
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
INSTALL_UPDATES_SELECTION="skip"
ORACLE_MIDDLEWARE_HOME_LOCATION=/u01/app/oracle/product/gc11
ORACLE_INSTANCE_HOME_LOCATION=/u01/app/oracle/product/gc11/gc_inst
WLS_ADMIN_SERVER_USERNAME=weblogic
WLS_ADMIN_SERVER_PASSWORD=Mon10day10
WLS_ADMIN_SERVER_CONFIRM_PASSWORD=Mon10day10
NODE_MANAGER_PASSWORD=Mon10day10
NODE_MANAGER_CONFIRM_PASSWORD=Mon10day10
DATABASE_HOSTNAME="oel7.pythian"
LISTENER_PORT="1521"
SERVICENAME_OR_SID="emrep"
SYS_PASSWORD="sys_pwd"
MANAGEMENT_TABLESPACE_LOCATION="/u01/oradata/emrep/mgmt.dbf"
CONFIGURATION_DATA_TABLESPACE_LOCATION="/u01/oradata/emrep/mgmt_ecm_depot1.dbf"
JVM_DIAGNOSTICS_TABLESPACE_LOCATION="/u01/oradata/emrep/mgmt_ad4j.dbf"
START_OMS=true
SYSMAN_PASSWORD=Mon10day10
SYSMAN_CONFIRM_PASSWORD=Mon10day10
ALLOW_ONLY_SECURE_ACCESS_TO_CONSOLE=true
AGENT_REGISTRATION_PASSWORD=Mon10day10
AGENT_REGISTRATION_CONFIRM_PASSWORD=Mon10day10
FROM_LOCATION="../oms/Disk1/stage/products.xml"
DEINSTALL_LIST={"oracle.sysman.top.oms","11.1.0.1.0"}
TOPLEVEL_COMPONENT={"oracle.sysman.top.oms","11.1.0.1.0"}
COMPONENT_LANGUAGES={"en"}
b_upgrade=false
EM_INSTALL_TYPE="NOSEED"


Installation ran almost all the way through but failed at OMS Configuration Assistant step:

Running Configuration assistant "OMS Configuration"
Executing the OMSCA command...
Check the OMS Configuration Assistant logs at: /u01/app/oracle/product/gc11/oms11g/cfgtoollogs/omsca
Configuration assistant "OMS Configuration" Failed


In the latest log in /u01/app/oracle/product/gc11/oms11g/cfgtoollogs/cfgfw directory
I found the reason of the failure:

Check the OMS Configuration Assistant logs at:
/u01/app/oracle/product/gc11/oms11g/cfgtoollogs/omsca
INFO: oracle.sysman.top.oms:/u01/app/oracle/product/gc11/oms11g/bin/omsca:
line 40: /bin/java: No such file or directory INFO: oracle.sysman.top.oms:
Check the OMS Configuration Assistant logs at:
/u01/app/oracle/product/gc11/oms11g/cfgtoollogs/omsca


Further check of omsca code unveiled use of WebLogic configuration script
/u01/app/oracle/product/gc11/wlserver_10.3/common/bin/commEnv.sh
where there was code block responsible for JAVA_HOME and JAVA_VENDOR variables.

I simply put values for the variables to the script:
JAVA_HOME="/usr/java/jre1.6.0_20"
JAVA_VENDOR="Sun"


# Reset JAVA_HOME, JAVA_VENDOR and PRODUCTION_MODE unless JAVA_HOME
# and JAVA_VENDOR are pre-defined.
if [ -z "${JAVA_HOME}" -o -z "${JAVA_VENDOR}" ]; then
# Set up JAVA HOME
JAVA_HOME=""
# Set up JAVA VENDOR, possible values are
#Oracle, HP, IBM, Sun ...
JAVA_VENDOR=
# PRODUCTION_MODE, default to the development mode
PRODUCTION_MODE=""
fi


I reinstalled WebLogic, recreated database, removed entries from inventory.xml and started installation again.
It was finished successfully and I completed it with execution of allroot.sh script under root
from /u01/app/oracle/product/gc11/oms11g

Have a good day!