User:Mrjazzman/OracleBase
Jump to navigation
Jump to search
Oracle Base System Installation
Unfortunatly i have not got the actual oracle installers going but this will setup the base system so that the oracle installer should go through without issues.
Package Configs
Firstly you need a copy of libaio. You can google for the deb package. I installed this on my private debian mirror
package_config/ORACLE
PACKAGES install binutils libdb2 libdb3 libdb4.1 libdb1-compat cpp-3.3 gcc-3.3 libstdc++5-3.3-dev libstdc++2.10-glibc2.2 base-files netbase libc6 libc6-dev make vncserver libaio gcc
Scripting
The following is used to setup the various parts of the system so that the oracle installer will work without problems.
scripts/ORACLE/10-setup
#!/bin/bash
#
#
#
# Configure a server to run Oracle
# Create Users
echo "dba:x:900:oracle" >> ${target}/etc/group
echo "dba:x:900:oracle" >> ${target}/etc/group-
echo "oinstall:x:901:" >> ${target}/etc/group
echo "oinstall:x:901:" >> ${target}/etc/group-
echo "oinstall:!::" >> ${target}/etc/gshadow
echo "oinstall:!::" >> ${target}/etc/gshadow-
echo "dba:!::oracle" >> ${target}/etc/gshadow
echo "dba:!::oracle" >> ${target}/etc/gshadow-
echo "oracle:x:1000:901::/home/oracle:/bin/bash" >> ${target}/etc/passwd
echo "oracle:$1$LgAZMIrX$63LaKC66qMXeLS/xj/PFv1:13230:0:99999:7:::" >> ${target}/etc/shadow
echo "nobody:x:1800:" >> ${target}/etc/group
echo "nobody:!::" >> ${target}/etc/gshadow
#
# Create Directories
mkdir -p ${target}/u01/app/oracle
mkdir -p ${target}/u01/oradata
mkdir ${target}/home/oracle
chown -R 1000:901 ${target}/home/oracle
chown -R 1000:901 ${target}/u01
chmod -R 775 ${target}/u01
#
# Fix System Details
cat >> ${target}/etc/sysctl.conf << EOF
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
EOF
cat >> ${target}/etc/security/limits.conf << EOF
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
EOF
cat >> ${target}/etc/profile << EOF
# For Oracle
if [ \$USER = "oracle" ]; then
if [ \$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
EOF
#
# Fake Being Redhat
echo "Red Hat Enterprise Linux AS release 3 (Taroon)" > ${target}/etc/redhat-release
#
# Setup defaults for the oracle user.
cat >> ${target}/home/oracle/.bash_profile << EOF
umask 022
ORACLE_BASE=/u01/app/oracle
ORACLE_SID=\${HOSTNAME}
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1/
export ORACLE_BASE ORACLE_SID ORACLE_HOME
export LD_LIBRARY_PATH=/usr/lib:\$ORACLE_HOME/lib
unset TNS_ADMIN
EOF
#
# Setup the init scripts
fcopy /etc/init.d/oracle
Init Script
The init script is copy'd using fcopy during the script phase of the installation. Below is the init script used to start oracle
files/etc/init.d/oracle/ORACLE
#!/bin/bash
#
# Run-level Startup script for the Oracle Instance and Listener
#
# chkconfig: 345 91 19
# description: Startup/Shutdown Oracle listener and instance
ORA_HOME="/u01/app/oracle/product/10.2.0/db_1"
ORA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORA_HOME/bin/dbstart -o ! -d $ORA_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl start"
su - $ORA_OWNR -c $ORA_HOME/bin/dbstart
touch /var/lock/subsys/oracle
echo "OK"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl stop"
su - $ORA_OWNR -c $ORA_HOME/bin/dbshut
rm -f /var/lock/subsys/oracle
echo "OK"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 start|stop|restart|reload"
exit 1
esac
exit 0