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