Skip to main content

Oracle 10g2 Installation

Diese Anleitung wurde für CentOS 4.5 geschrieben und getestet. Sie sollte aber auf andere Systeme übertragbar sein. Die Anleitung funktioniert auch mit CentOS 5, dort muss der Installer allerdings mit der Option „-ignoreSysPrereqs“ gestartet werden (thx @ http://www.oliver-schaef.de )

  • Anforderungen: mind. 1GB MEM, Swap mind. 1,5*MEM, mind. 2GB HDD rein für die Grundinstallation, kein DHCP.
  • System für die Installation vorbereiten (als root ausführen)
#!/bin/sh

yum -y install gcc binutils make libaio compat-libstdc++-296 compat-libstdc++-33

groupadd -g 1000 oracle
groupadd -g 1001 oinstall
groupadd -g 1002 dba
useradd  -u 1000 -p oracle -g oinstall -G dba oracle

mkdir /oracle
mkdir /oracle/10g
chown -R oracle.oinstall /oracle
mkdir /osource

cat >> /etc/sysctl.conf << EOF

#Added for Oracle Installation
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
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_max = 262144
EOF
/sbin/sysctl -p

cat >> /home/oracle/.bash_profile << EOF

#Added for Oracle Installation
umask 022
ORACLE_BASE=/oracle
ORACLE_HOME=/oracle/10g
ORACLE_SID=orcl
export ORACLE_BASE ORACLE_HOME ORACLE_SID
PATH=/oracle/10g/bin:$PATH:.
LD_LIBRARY_PATH=$ORACLE_HOME/jdk/jre/lib/i386:$ORACLE_HOME/jdk/jre/lib/i386/server:$ORACLE_HOME/rdbms/lib:$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH LD_LIBRARY_PATH

# koennte Probleme machen
export NLS_LANG=american;
export NLS_DATE_FORMAT='DD.MM.YYYY HH24:MI:SS';
EOF

passwd oracle

Oracle Init-Script (Datenbank vorher in /etc/oratab aktivieren)

#!/bin/bash
# chkconfig: 345 99 10
# description: Startup Script for Oracle Databases
# /etc/init.d/oracle

export ORACLE_HOME=/oracle/10g
export PATH=$PATH:$ORACLE_HOME/bin

case "$1" in
start)
  su oracle -c $ORACLE_HOME/bin/dbstart
  touch /var/lock/oracle
  echo "OK"
  ;;
stop)
  echo -n "Shutdown Oracle: "
  su oracle -c $ORACLE_HOME/bin/dbshut
  rm -f /var/lock/oracle
  echo "OK"
  ;;
  *)
  echo "Usage: 'basename $0' start|stop"
  exit 1
esac

exit 0

wichtige URLs nach der Installation:

iSQL*Plus URL:
http://<domain.tld>:5560/isqlplus

iSQL*Plus DBA URL:
http://<domain.tld>:5560/isqlplus/dba

Enterprise Manager 10g Database Control URL:
http://<domain.tld>:1158/em

Database Control URL:
http://<domain.tld>:5500/em

im Script $ORACLE_HOME/bin/dbstart, welches aus dem init-File aufgerufen wird, ist ein Fehler in Zeile 78:

ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle

der richtige Pfad lautet z.B. (i.d.R. das $ORACLE_HOME):

ORACLE_HOME_LISTNER=/oracle/10g

das Script dbshut sollte auch noch gepatched werden, um den Listener beim Shutdown zu stoppen

cd $ORACLE_HOME/bin

eine Datei dbshut.patch mit folgendem Inhalt erzeugen:

--- dbshut.old  2007-06-20 08:59:29.000000000 +0200
+++ dbshut      2007-06-20 08:58:23.000000000 +0200
@@ -55,6 +55,23 @@
 # Save LD_LIBRARY_PATH
 SAVE_LLP=$LD_LIBRARY_PATH

+# Set this to stop Oracle Net Listener
+ORACLE_HOME_LISTNER=/oracle/10g
+if [ ! $ORACLE_HOME_LISTNER ] ; then
+  echo "ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener"
+else
+  LOG=$ORACLE_HOME_LISTNER/listener.log
+
+  # Start Oracle Net Listener
+  if [ -f $ORACLE_HOME_LISTNER/bin/tnslsnr ] ; then
+    echo "$0: Stopping Oracle Net Listener" >> $LOG 2>&1
+    $ORACLE_HOME_LISTNER/bin/lsnrctl stop >> $LOG 2>&1 &
+    #export VER10LIST=`$ORACLE_HOME_LISTNER/bin/lsnrctl version | grep "LSNRCTL for " | cut -d' ' -f5 | cut -d'.' -f1`
+  else
+    echo "Failed to stop Oracle Net Listene using $ORACLE_HOME_LISTNER/bin/tnslsnr"
+  fi
+fi
+
 # Set this in accordance with the platform
 ORATAB=/etc/oratab
 if [ ! $ORATAB ] ; then

danach einfach ein:

patch -p0 < dbshut.patch

Jetzt sollte man die Installation noch absichern (in der mount-Phase):

  • Archivelog einschalten (alter database archivelog;)
  • Flashback einschalten (alter database flashback on;)
  • Flashback Zeitraum einstellen (alter system set db_flashback_retention_target = 4320;)
  • Flashback Filegröße einstellen (alter system set db_recovery_file_dest_size=20G;)
  • Redologs in verschiedene Verzeichnisse spiegeln
  • Controlfiles an verschiedene Orte legen
  • RMAN-Backup einrichten