Tanti Technology

My photo
Bangalore, karnataka, India
Multi-platform UNIX systems consultant and administrator in mutualized and virtualized environments I have 4.5+ years experience in AIX system Administration field. This site will be helpful for system administrator in their day to day activities.Your comments on posts are welcome.This blog is all about IBM AIX Unix flavour. This blog will be used by System admins who will be using AIX in their work life. It can also be used for those newbies who want to get certifications in AIX Administration. This blog will be updated frequently to help the system admins and other new learners. DISCLAIMER: Please note that blog owner takes no responsibility of any kind for any type of data loss or damage by trying any of the command/method mentioned in this blog. You may use the commands/method/scripts on your own responsibility. If you find something useful, a comment would be appreciated to let other viewers also know that the solution/method work(ed) for you.

Sunday, 2 March 2014

Oracle Database Install AIX


Pre Installation Tasks

Oracle database has several requirements. Please note that this article is purely for my environment because we don't use an out-of-the-box installation but AIX SOE. I can skip these steps because they are all taken care of in the SOE, or because the blades are specifically bought for this purpose and meet requirements by far:
  • X Window System requirements
  • Hardware requirements
  • Operating System level
  • Operating System filesets
  • Network setup
  • Check for unprivileged user nobody

Creating Users and Groups

Oracle Inventory Group (oinstall)

You must create this group the first time you install Oracle software on the system. The usual name chosen for this group is oinstall. This group owns the Oracle inventory, which is a catalog of all Oracle software installed on the system.
sudo mkgroup oinstall

Creating the OSDBA Group (dba)

You must create this group the first time you install Oracle Database software on the system. It identifies operating system user accounts that have database administrative privileges (the SYSDBA privilege).
sudo mkgroup dba

Creating the OSOPER group (oper)

This is an optional group. Create this group if you want a separate group of operating system users to have a limited set of database administrative privileges (the SYSOPER privilege).
sudo mkgroup oper

Creating the Oracle Software Owner User (oracle)

Note: most security auditors will not let you have an user called oracle, so keep that in mind.
You must create this user the first time you install Oracle software on the system. This user owns all of the software installed during the installation. This user must have the Oracle Inventory group as its primary group. It must also have the OSDBA group as secondary groups. 
sudo mkuser pgrp="oinstall" groups="oinstall,dba,oper" shell='/bin/bash' rlogin='false' sugroups='ALL' su='true' loginretries='10' maxage='0' maxrepeats='8' minlen='5' minother='1' maxexpired='-1' minalpha='3' minage='0' histsize='0' histexpire='0' fsize='-1' cpu='-1' data='-1' stack='-1' "oracle"

And set the password:
>sudo passwd oracle

Changing password for "oracle"
oracle's New password:
Re-enter oracle's new password:

>sudo pwdadm -c oracle

System Environmentals

You need to set the maximum number of processes users are allowed to run:
sudo chdev -l sys0 -a maxuproc='2048' 

Oracle Directories

/opt>sudo mkdir oracle
/opt>sudo chown oracle:oinstall oracle
Gives:
drwxr-xr-x   2 oracle   oinstall        256 Mar 19 11:22 oracle

Installation

One note: I am not allowed to log in on the server using a local account (due to the security policy) so I first need to login using my personal account, su to the oracle user and then run the installation. But because I'm su-ing, I cannot use the X Server authentication for my account, why not, and how to solve this is explained in this section.
When you've downloaded the software you have to unpack the software before you can install it:
Unzip:
oracle@oracledbbox:/tmp/sft>gunzip 10gr2_aix5l64_database.cpio.gz
Extract:
oracle@oracledbbox:/tmp/sft>cpio -idcmv < 10gr2_aix5l64_database.cpio
When you run the rootpre script and you run into the error below it's because you did not acquire patch 6613550:
Configuring Asynchronous I/O....
Asynchronous I/O is not installed on this system.
You will need to install it, and either configure it yourself using
'smit aio' or rerun the Oracle root installation procedure.

Configuring POSIX Asynchronous I/O....
Posix Asynchronous I/O is not installed on this system.
You will need to install it, and either configure it yourself using
'smit aio' or rerun the Oracle root installation procedure.
The solution is to run a modified rootpre script as supplied in patch 6613550 (see links above):
root@oracledbbox:/tmp/sft>./rootpre.sh
./rootpre.sh output will be logged in /tmp/rootpre.out_10-04-20.10:58:08
Saving the original files in /etc/ora_save_10-04-20.10:58:08....
Copying new kernel extension to /etc....
./rootpre.sh[295]: test: argument expected
Loading the kernel extension from /etc

 Oracle Kernel Extension Loader for AIX
       Copyright (c) 1998,1999 Oracle Corporation


 Kernel Extension /etc/pw-syscall.64bit_kernel already loaded, unloading it
 Unconfigured the kernel extension successfully
 Unloaded the kernel extension successfully
 Successfully loaded /etc/pw-syscall.64bit_kernel with kmid: 0x50b84000
 Successfully configured /etc/pw-syscall.64bit_kernel with kmid: 0x50b84000
The kernel extension was successfuly loaded.
./rootpre.sh[360]: test: argument expected

Checking if group services should be configured....
Nothing to configure.

Set (or check) the LANG parameter for the system:
oracle@oracledbbox:/tmp/sft/Disk1>echo $LANG
C

Now it's time to install the oracle database software. Again, you need to be able to redirect X to your local machine. See here for more information.
oracle@oracledbbox:/tmp/sft/Disk1>./runInstaller -ignoreSysPrereqs
**************************************************************************
******

Your platform requires the root user to perform certain pre-installation
OS preparation.  The root user should run the shell script 'rootpre.sh' be
fore
you proceed with Oracle installation.  rootpre.sh can be found at the top
level
of the CD or the stage area.

Answer 'y' if root has run 'rootpre.sh' so you can proceed with Oracle
installation.
Answer 'n' to abort installation and then ask root to run 'rootpre.sh'.

**************************************************************************
******

Has 'rootpre.sh' been run by root? [y/n] (n)
y

Starting Oracle Universal Installer...

No pre-requisite checks found in oraparam.ini, no system pre-requisite checks will be executed.

>>> Ignoring required pre-requisite failures. Continuing...

Preparing to launch Oracle Universal Installer from /tmp/OraInstall2010-04-20_11-12-23AM. Please wait ...oracle@oracledbbox:/tmp/sft/Disk1>Oracle Universal Installer, Version 10.2.0.1.0 Production
Copyright (C) 1999, 2005, Oracle. All rights reserved.
oradbinstall01.jpg
oradbinstall02.jpg
Now you have to enter the oracle home data, the following list shows the Oracle homes maintained on AIX:
  • All Oracle homes that are already created using OUI
  • All homes as defined in the /etc/oratab or /var/opt/oracle/oratab file, depending on your operating system
  • The path specified by the ORACLE_HOME environment variable
oradbinstall03.jpg
oradbinstall04.jpg
oradbinstall05.jpg
oradbinstall06.jpg
oradbinstall07.jpg 
root@oracledbbox:/opt/oracle/oraInventory>./orainstRoot.sh
Changing permissions of /opt/oracle/oraInventory to 775.
Changing groupname of /opt/oracle/oraInventory to oinstall.
The execution of the script is complete
root@oracledbbox:/opt/oracle/product/10.2>./root.sh
Running Oracle10 root.sh script...

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /opt/oracle/product/10.2

Enter the full pathname of the local bin directory: [/usr/local/bin]:
Creating /usr/local/bin directory...
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
oradbinstall08.jpg 

Post Installation

Patchset 10.2.0.4

Pre installation task as root:
root@oracledbbox:/tmp/sft>slibclean
Installation as oracle user:
oracle@oracledbbox:/tmp/sft/p6810189_10204_AIX5L/Disk1>./runInstaller -ignoreSysPrereqs
********************************************************************************

Your platform requires the root user to perform certain pre-installation
OS preparation.  The root user should execute '/usr/sbin/slibclean' on all the nodes before
you proceed with Patchset Installation.

Answer 'y' if root has run '/usr/sbin/slibclean' so you can proceed with Oracle
Patchset installation.
Answer 'n' to abort installation and then ask root to run '/usr/sbin/slibclean'.

********************************************************************************
Has '/usr/sbin/slibclean' been run by root? [y/n] (n)
y

Starting Oracle Universal Installer...

Checking installer requirements...

Checking operating system version: must be 5200, 5300 or 6100
                                      Passed


All installer requirements met.

Preparing to launch Oracle Universal Installer from /tmp/OraInstall2010-04-20_01-19-47PM. Please wait ...oracle@oracledbbox:/tmp/sft/p6810189_10204_AIX5L/Disk1>Oracle Universal Installer, Version 10.2.0.4.0 Production
Copyright (C) 1999, 2008, Oracle. All rights reserved.
The installation is about the same as the original installation. This is the Oracle home screen, in which you should select the oracle home you created with the original installation:
oradbinstall09.jpg
There is also a root.sh post installation script:
root@oracledbbox:/home/root>/opt/oracle/product/10.2/root.sh
Running Oracle10 root.sh script...

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /opt/oracle/product/10.2

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin.  Overwrite it? (y/n) [n]: y
   Copying dbhome to /usr/local/bin ...
The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n) [n]: y
   Copying oraenv to /usr/local/bin ...
The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n) [n]: y
   Copying coraenv to /usr/local/bin ...

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.

Errors Patchset

During the installation I also got this error:
Oracle Universal Installer has detected that
there are processes running in the
currently selected Oracle Home. The
following processes need to be shutdown
before continuing:
java
There are some unpublished bug reports about is, I can't find the original bug reports:
11.1.0.7 OUI FAILS TO DETECT RUNNING PROCESSES CORRECTLY ON AIX 6.1 ML 4 SP1
APPLYING 10.1.2.3 PATCHSET FAILS WITH “THE FOLLOWING PROCESSES NEED TO SHUTDOWN BEFORE CONTINUING: JAVA”
The solution is, as root user, before the installation is started:
cd /usr/sbin/
mv fuser fuser.orig
touch /usr/sbin/fuser
chmod +x /usr/sbin/fuser
Undo the change after the installation is done.

Oracle Profile

Create or edit the oracle .profile file:
# Set the path
PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:/opt/oracle/product/10.2/bin:.

# Set oracle environment
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/product/10.2
CLASSPATH=${ORACLE_BASE}/product/10.2/jdk/jre:${ORACLE_BASE}/product/10.2/jlib:${ORACLE_BASE}/product/10.2/rdbms/jlib:${ORACLE_BAS
E}/product/10.2/network/jlib:${ORACLE_BASE}/product/10.2/jdk/jre/bin
LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${ORACLE_HOME}/lib:${ORACLE_HOME}/ctx/lib
ORACLE_OWNER=oracle
ORA_NLS33=${ORACLE_HOME}/ocommon/nls/admin/data
TNS_ADMIN=${ORACLE_HOME}/network/admin
ORACLE_SID=

# Set the prompt to username@hostname:/current/directory
HOST=$(hostname -s)
PS1='$USER@$HOST:$PWD>'

# Set environment for Korn Shell
ENV=$HOME/.kshrc

export PATH ORACLE_BASE ORACLE_HOME CLASSPATH LD_LIBRARY_PATH ORACLE_OWNER ORA_NLS33 TNS_ADMIN ORACLE_SID HOST PS1 ENV

if [ -s "$MAIL" ]           # This is at Shell startup.  In normal
then echo "$MAILMSG"        # operation, the Shell checks
fi                          # periodically.
Note that the ORACLE_SID has to be set after the database/instance has been created.

No comments:

Post a Comment