Schlagwort-Archive: Oracle

Oracle Java Package erstellen unter Debian

Problem:
Oracles Java wird benötigt, ist aber in keinem Repo verfügbar.

Lösung:
Ich habe hier schon einen anderen Beitrag zur manuellen Installation von Java verfasst, dieser ist hiermit ungültig und sollte NICHT MEHR VERWENDET WERDEN!!

Um die Dinge der Installation rückgängig zu machen, empfiehlt sich die Ausführung folgender Befehle als root

Achtung, hier wird die 64bit Version genutzt! Für 32bit müssen die Pfade (amd64 –> i386) entsprechend angepasst werden!


update-alternatives --remove java /usr/lib/jvm/java-7-oracle/bin/java
update-alternatives --remove javac /usr/lib/jvm/java-7-oracle/bin/javac
update-alternatives --remove javaws /usr/lib/jvm/java-7-oracle/bin/javaws
update-alternatives --remove javadoc /usr/lib/jvm/java-7-oracle/bin/javadoc
update-alternatives --remove javah /usr/lib/jvm/java-7-oracle/bin/javah
update-alternatives --remove javap /usr/lib/jvm/java-7-oracle/bin/javap
update-alternatives --remove java_vm /usr/lib/jvm/java-7-oracle/jre/bin/java_vm
update-alternatives --remove jvisualvm /usr/lib/jvm/java-7-oracle/bin/jvisualvm
update-alternatives --remove policytool /usr/lib/jvm/java-7-oracle/jre/bin/policytool
update-alternatives --remove ControlPanel /usr/lib/jvm/java-7-oracle/jre/bin/ControlPanel
update-alternatives --remove iceweasel-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove firefox-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove mozilla-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove midbrowser-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove iceape-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove xulrunner-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove xulrunner-addons-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so

Im Anschluss sollte das aktuellste, verfügbare Paket java-package installiert werden

apt-get install java-package

Ich habe die Debian Backports eingebunden (Howto) und habe daher zusätzlich folgenden apt-get Schalter genutzt.
-t wheezy-backport
Nun ist das Tool make-jpkg bereitgestellt, mit welchem künftig das Installationspaket / Update generiert werden wird! =)

Zuerst lädt mal auf der Java-Webseite das aktuelle Paket für die verwendete Architekture (i386/amd64) herunter. Dann führt man als User (!! Wichtig, als root wirds mit Fehler enden !!)

make-jpkg jdk-7u51-linux-x64.tar.gz

aus.

Am Ende erhält man daraus ein Paket, in meinem Fall oracle-java7-jdk_7u51_amd64.deb
Dieses kann als root wie gewohnt installiert werden!

dpkg -i oracle-java7-jdk_7u51_amd64.deb

Im Anschluss sollte man sich vergewissern, welche Applikationen denn für die Bereitstellung von „java“ noch installiert sind. Diese kann man eigentlich alle Deinstallieren sofern keine Abhängkeit zu anderen Paketen besteht.
update-alternatives --list java zeigt die installiert-/registrierten Binaries. Welchem zu deinstallierendem Debian Paket die jeweilige Binary gehört, kann mit „dpkg -S“ rausgefunden werden.

Hier ein Beispiel:

user@host:~$ update-alternatives --list java
/usr/lib/jvm/jdk-7-oracle-x64/jre/bin/java
user@host:~$ dpkg -S /usr/lib/jvm/jdk-7-oracle-x64/jre/bin/java
oracle-java7-jdk: /usr/lib/jvm/jdk-7-oracle-x64/jre/bin/java

Ergebnis: oracle-java7-jdk wäre nun ein Ergebnis – aber das ist in diesem Fall auch gut so! 😉

SQL Schema Dump erstellen und in neues Schema einspielen unter Oracle

Problem:
Ich habe ein Datenbank auf dem Oracle welche für die Entwicklung geclont werden soll

Lösung:
Über die Kommandozeile wird ein „Oracle Data Pump“ erstellt.
Ich melde mich als Systemuser an, erstelle ein Backup Directory und erstelle darin den Dump

sqlplus SYSTEM/oracle@ORCL
## Ab hier in SQLPLUS
SQL> desc DBA_DIRECTORIES
Name Null? Type
----------------------------------------- -------- ----------------------------
OWNER NOT NULL VARCHAR2(30)
DIRECTORY_NAME NOT NULL VARCHAR2(30)
DIRECTORY_PATH VARCHAR2(4000)

SQL> CREATE DIRECTORY tmp as '/home/oracle/EXPORTS' ;

Directory created.
SQL> exit
Disconnected from Oracle Database 11g
## Ab hier wieder in der Shell

# dieser Dump wird nun in /home/oracle/EXPORTS erstellt
expdp USER/PASS schemas=USER directory=tmp dumpfile=myDB.dmp logfile=myDB.log

Das Backup ist nun vom gewünschten Schema erstellt worden, nun wird der neue User erstellt und der Dump in ein neues Schema eingespielt. Wichtig ist hier das Remappen beim Importieren!!

sqlplus SYSTEM/oracle@ORCL
##Ab hier SQL Plus
SQL> CREATE USER TESTUSER IDENTIFIED BY TESTUSER;
SQL> GRANT CREATE SESSION TO TESTUSER;
SQL> exit
## Ab hier wieder in der Shell
impdp TESTUSER/TESTUSER schemas=USER directory=tmp dumpfile=myDB.dmp remap_schema=USER:TESTUSER

Das müsste es auch schon gewesen sein

Oracle 11g R2 auf Debian 7 Wheezy 64bit installieren

Problem:
Ich möchte Oracle 11g auf einem Debian 7.0 „Wheezy“ 64bit Rootserver installieren. Der Server befindet sich in meinem Netzwerk.

Lösung:
Zuerst besorge ich mir die Installationsmedien Oracle 11g für 64bit Linux Systeme von der Oracle Seite
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
–> Linux x86-64

Wenn die Dateien heruntergeladen sind, entpacke ich diese auf meinem Linuxrechner. Nun sollte alles benötigte im Ordner „database“ zu finden sein.

Ich installiere ein frisches Debian Wheezy und wähle nur SSH-Server und Systemstandards. Ich nehme dazu eine 40 GB Partition, ich nutze die DB eh nur zum Testen. Als Nutzer lege ich den Nutzer „oracle“ an, dieser wird später zur Datenbankinstallation genutzt.

Da der Host hier in einer Sphere läuft, sollten auch die VMTools erfolgreich installiert sein.

Vorbereitung:
1. Installationen aus dem Debian Repository

apt-get install sshfs gcc make binutils gawk x11-utils rpm build-essential libaio1 libaio-dev libmotif4 libtool expat alien ksh pdksh unixodbc unixodbc-dev sysstat elfutils libelf-dev binutils lesstif2 lsb-cxx libstdc++5 linux-headers-amd64 udisks udev hal x11-xserver-utils screen figlet curl mutt w3m-img postfix resolvconf unzip mc sudo

2. Installation der VMTools (Installation aktivieren im Sphere Clienten) und Reboot

udisks --mount /dev/sr0
cd /root
tar xvzf /media/cdrom0/VMwareTools-9.0.0-782409.tar.gz
./vmware-tools-distrib/vmware-install.pl

Nun wird noch automatisch /usr/bin/vmware-config-tools.pl ausgeführt und im Anschluss starte ich den Host neu.

3. Systemanpassungen
Da ich gerne weiss, auf welchem Host ich mich befinde, lass ich die Datei /etc/motd beim booten neu schreiben.
Dazu bearbeite ich die /etc/rc.local und setze vor „exit 0“ folgende Zeile

figlet oracle > /etc/motd

Damit erwartet mich bei der Anmeldung immer folgendes:

Linux oracle 3.2.0-4-amd64 #1 SMP Debian 3.2.32-1 x86_64
_
___ _ __ __ _ ___| | ___
/ _ | '__/ _` |/ __| |/ _
| (_) | | | (_| | (__| | __/
___/|_| __,_|___|_|___|

No mail.

Ich änder den Runlevel des Systems von 2 auf 3 in der /etc/inittab

# The default runlevel.
id:3:initdefault:

Dann die Datei /etc/sysctl.d/oracle.conf mit folgendem Inhalt erstellen

# Oracle 11gR2
kernel.shmmax=536870912
kernel.shmmni=4096
kernel.shmall=2097152
net.ipv4.ip_local_port_range=9000 65500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048586
fs.aio-max-nr=1048576
fs.file-max=6815744
fs.suid_dumpable=1
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem=250 32000 100 128
vm.swappiness = 3

Mit folgende Befehl aktiviert man die Einstellungen – alternativ tuts ein Reboot

sysctl --system

Für den User „oracle“ müssen noch die Limits gesetzt werden,
dazu erstell ich die Datei /etc/security/limits.d/oracle.conf mit folgendem Inhalt

#Oracle 11gR2 limits:
oracle soft nproc 2048
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240

Der User kommt auch in die Gruppe „fuse“, um Verzeichnisse per sshfs mounten zu können

adduser oracle fuse

Ein paar Links müssen auch noch erstellt werden, bei „bash“ muss forciert (-f) werden, denn der Link existiert und zeigt nach der Installation auf „dash“

ln -sf /bin/bash /bin/sh
ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/rpm /bin/rpm
ln -s /usr/bin/basename /bin/basename
mkdir /usr/lib64
ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/libpthread_nonshared.a
ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/libc_nonshared.a
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/libstdc++.so.6
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64/libgcc_s.so.1

Ich melde mich als User oracle am System an, mit aktivem XForwarding.

ssh -l oracle -X 192.168.0.200

Jetzt mounte ich die entpackte Oracle Installation via sshfs. Sollte der Server nicht im eigenen Netz stehen, dann muss man eben die Downloads auf den Server transferieren bzw diese auf den Server herunterladen.

mkdir ~/mount
sshfs oracle@192.168.0.63:/home/oracle/database ~/mount

Folgende Zeilen kommen ans Ende der Datei /home/oracle/.bashrc

# Oracle 11g R2 Variablen
# HOSTNAME anpassen!!
export ORACLE_HOSTNAME=oracle.home.net
export ORACLE_SID=orcl
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_UNQNAME=orcl
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

# Oracle 11g R2 Aliases
alias sz-oralog='tail -n 50 -f $ORACLE_HOME/startup.log'
alias sz-all-oralog='tail -n 50 -f $ORACLE_HOME/*_orcl/sysman/log/*.log'
alias sz-sqlplus='sqlplus SYSTEM/oracle@ORCL'

Ich nutze zur Installation „screen“ und öffne eine 2 Konsole, in der ich das Installlog per „tail“ verfolgen kann.
Wer screen nicht nutzen möchte oder kann, der ignoriert im nächsten Schritt einfach den Aufruf.

Wir starten die Installation im einen Fenster

cd ~/mount
screen
./runInstaller -ignoreSysPrereqs

und im anderen Fenster taile ich die globalen Installer Logfiles

tail -f /tmp/OraInstall*/*.log

Im Verlauf der Installation kann man ein weiteres Fenster starten und die Install Logs der Instanz tailen

tail -f /home/oracle/app/oraInventory/logs/installActions*.log

Installationstyp „Erweiterte Installation“
Ich installiere „Serverklasse“ und die „StandardEdition“
In Schritt 12 setze ich den Zeichensatz auf Unicode „AL32UTF8“
In Schritt 15 aktiviere ich die „Automatischen Backups“ für Notfälle
In Schritt 16 bekommen alle Accounts das selbe Passwort „oracle“ – bei Produktivsystemen bitte etwas kreativer sein! xD
In Schritt 18 werden bestenfalls „nur“ die fehlenden Pakete angezeigt. In meinem Fall wird noch die Swapgröße bemängelt, dieser sollte so groß sein, wie der zugewiesene Arbeitsspeicher.
Haken bei „Alles ignorieren“ setzen und fortfahren!

Während der Installation können dann Fehler gemeldet werden – die muss man jeweils einzeln angehen.

Fehler 1:

/home/oracle/app/oracle/product/11.2.0/dbhome_1/lib/libnnz11.so: could not read symbols: Invalid operation

Lösung: Zeile 190 anpassen in $ORACLE_HOME/sysman/lib/ins_emagent.mk

nano $ORACLE_HOME/sysman/lib/ins_emagent.mk

Aus
$(MK_EMAGENT_NMECTL)
wird
$(MK_EMAGENT_NMECTL) -lnnz11
Gefunden unter http://www.sysdbaonline.com/2010/09/11gr2-install-fails-on-fedora-13/

Nun läuft die Installation durch!

Im Anschluss müssen als Benutzer root noch folgende Scripte ausgeführt werden

sh /home/oracle/app/oraInventory/orainstRoot.sh
sh /home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh

Die Ausgabe:

root@oracle:~# sh /home/oracle/app/oraInventory/orainstRoot.sh
Berechtigungen ändern von/home/oracle/app/oraInventory.
Lese- und Schreibberechtigungen für Gruppe werden hinzugefügt.
Lese-, Schreib- und Ausführungsberechtigungen für World werden entfernt.

Ändern des Gruppennamen von /home/oracle/app/oraInventory zu oracle.
Die Ausführung des Skripts ist abgeschlossen.
root@oracle:~# sh /home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh
Running Oracle 11g root.sh script...

The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /home/oracle/app/oracle/product/11.2.0/dbhome_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
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.
Finished product-specific root actions.

Die /etc/oratab kann auch gleich angepasst werden, in der letzten Zeile das :N durch :Y ersetzen. Dieser Wert wird von dbstart gecheckt und die mit „:Y“ getaggten Datenbanken werden hochgefahren.

Juhe… aber leider wars das noch nicht ^^
Nun sollte man mal den Server neu starten und sich wieder als oracle anmelden und die Datenbank starten

oracle@oracle:~$ dbstart
ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener

gleiches gilt für dbshut

oracle@oracle:~$ dbshut
ORACLE_HOME_LISTNER is not SET, unable to auto-stop Oracle Net Listener

Um das zu lösen, müssen die beiden Scripte angepasst werden.

Es wird folgende Zeile gesucht
ORACLE_HOME_LISTNER=$1
und durch folgende ersetzt
ORACLE_HOME_LISTNER=${1:-$ORACLE_HOME}
Die Lösung habe ich hier gefunden http://blog.vpire.com/237/oracle_home_listner-is-not-set-error/#comment-481

Nun kann „dbstart“ und „dbshut“ verwendet werden.

Zum ganzen Glück fehlt nun noch ein Init Script, ich habe folgendes im Einsatz und nach /etc/init.d/oracle kopiert. Ausführbar sollte das Script auch sein „chmod +x /etc/init.d/oracle“

#! /bin/sh
#
# Author: Sascha Xander
# Mail: sascha.xander@gmail.com
# Licence: Creative Commons
# Spread & Use
#
# Inspired by docs.oracle.com
# http://docs.oracle.com/cd/B19306_01/server.102/b15658/strt_stp.htm#CFAHAHGA
#
### BEGIN INIT INFO
# Provides: oracle
# Required-Start: $local_fs $remote_fs $network $syslog $named
# Required-Stop: $local_fs $remote_fs $network $syslog $named
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive: true
# Short-Description: Start/stop oracle database instance
### END INIT INFO
#
### VARIABLES
#
# Change the value of ORACLE_HOME to specify the correct Oracle home
# directory for your installation.
ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1
#
# Change the value of ORACLE_USER to the login name of the
# oracle owner at your site.
#
ORACLE_USER=oracle
#
# Change the value of ORACLE_UNQNAME to the UNQNAME of the
# database. You can find out the right entry via sqlplus:
#
# SELECT name, db_unique_name FROM v$database;
#
ORACLE_UNQNAME=orcl
#
export ORACLE_HOME ORACLE_USER ORACLE_UNQNAME
#
### some SYSTEM checks
# Check for root - are you root?
if [ $EUID -ne 0 ]; then
echo "you must be root, bye!"
exit 1
# Check for Platform - is it Linux?
elif [ $(uname) != "Linux" ]; then
echo "this script only works for Linux, bye!"
exit 1
# Check for ORACLE_HOME - is it a Directory?
elif [ ! -d $ORACLE_HOME ]; then
echo "$ORACLE_HOME does not exist or is not a directory."
exit 1
fi

# The functions
StartDatabase () {
if [ -x $ORACLE_HOME/bin/dbstart ]; then
if [ -f /var/lock/subsys/oracle ] ; then
echo "We stop here because Oracle Database should already be up!"
exit 1
else
touch /var/lock/subsys/oracle
fi
echo "Starting Oracle Databases"
su $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
return $?
else
echo "$ORACLE_HOME/bin/dbstart is not executable!"
exit 1
fi
}

StartDbconsole () {
if [ -x $ORACLE_HOME/bin/emctl ]; then
echo "Starting Oracle Enterprise Manager Console"
su $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"
return $?
else
echo "$ORACLE_HOME/bin/emctl is not executable!"
exit 1
fi
}

StopDatabase () {
if [ -x $ORACLE_HOME/bin/dbshut ] ; then
echo "Stopping Oracle Databases"
su $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
rm -f /var/lock/subsys/oracle
return $?
else
echo "$ORACLE_HOME/bin/dbshut is not executable!"
exit 1
fi
}

StopDbconsole () {
if [ -x $ORACLE_HOME/bin/emctl ] ; then
echo "Stopping Oracle Enterprise Manager"
su $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
return $?
else
echo "$ORACLE_HOME/bin/emctl is not executable!"
exit 1
fi
}

. /lib/lsb/init-functions

case $1 in
start)
StartDatabase
StartDbconsole
;;

stop)
StopDatabase
StopDbconsole
;;

restart)
$0 stop
$0 start
;;
status)
su $ORACLE_USER -c "netstat -tnp --listening"
;;
*)
echo "usage: $0 {start|stop|restart|status}"
exit
;;
esac
exit

Mittels

update-rc.d oracle defaults

schmiegt sich das Script in die „dependency-based“ Bootreihenfolge ein. =)

Gleich mal n rebooten und testen – hier läufts!

Sollte man eine Oracle DB von einem anderen Host bzw die IP wechseln, geht im Anschluss idR die AdminConsole nicht mehr. Meist genügt ein Neukonfigurieren der Adminconsole – in meinem Fall hats jedenfalls gereicht.

emca -config dbcontrol db -repos recreate

Im Zweifel neu frisch generieren

emca -config dbcontrol db -repos drop
emca -config dbcontrol db -repos create

Folgende Seiten waren sehr hilfreich
http://www.techienote.com/2012/06/how-to-install-oracle-database-11g-r2-on-ubuntu-12-04.html
http://www.oracle-base.com/articles/11g/oracle-db-11gr2-installation-on-oracle-linux-5.php
http://flocki.org/2010/03/25/oracle-11g-installation-auf-debian-squeeze/

BÄM – Happy Oracle!

Oracle 11g Installation auf Debian Squeeze

Kürzlich habe ich eine Oracle 11g Datenbank auf einem Debian Squeeze installiert.
Vielleicht kann Euch diese Zusammenfassung ja behilflich sein.

Es ist eine X-Oberfläche für die Installation notwendig, ich habe fluxbox dafür verwendet.
Die nachfolgenden Dinge habe ich vor der Installation durchgeführt, die Installation selbst wurde als Benutzer Oracle durchgeführt!
1. Oracle 11g downloaden von http://www.oracle.com/technology/software/products/database/index.html – es ist eine Registrierung erforderlich!
2. User „oracle“ anlegen
3. libstdc++5 aus lenny oder sid herunterladen – kann man hier finden.
4. Im Verlauf der Installation sind Fehler aufgetreten – diese sind mittels Links zu beheben. Wichtig: keine symbolische Links generieren! Die Pakete coreutils und mawk sollten dafür installiert sein.

ln /usr/bin/basename /bin/basename
ln /usr/bin/mawk /bin/awk

5. Es werden einige sysctl Variablen abgefragt, daher habe ich die Datei /etc/sysctl.d/oracle11g.conf mit folgendem Inhalt erstellt:

kernel.shmmax=536870912
net.ipv4.ip_local_port_range=9000 65500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048576
fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.sem=250 32000 100 128
# Mögliche Tuninghilfe – bei Bedarf
#vm.overcommit_memory=1

6. PAM – Limits für User oracle in der Datei /etc/security/limits.d/oracle11g.conf
definiert:

oracle hard nofile 65536

7. Die .bashrc des Users oracle angepasst.

# Oracle Vars
# ORACLE_SID nach Bedarf modifizieren
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=“$ORACLE_BASE“/11.2.0.1.0
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin

8. Die Pakete „build-essential“ und „libaio“ installieren

Nun kann man mit der geführten Installation beginnen – die Requirements habe ich ignoriert – meist ist die installierte Version eine höhere wie von Oracle genannt (Beispiel make). Dann läuft die Installation und Kompilierung mancher Dinge – hier werden die erstellten Links benötigt.
Am Ende muss noch ein Shellscript mit root-Rechten ausgeführt werden. Dies funktioniert problemfrei wenn vorherige Punkte beachtet wurden.
Nach Abschluss der Installation sollte man dann die Weboberfläche aufrufen können. Dort muss der Listener angepasst werden, diese hört standardmäßig nur auf localhost und sollte zB auf 0.0.0.0 hören.
Anschließend muss man die DB neu starten.
Zuvor muss man aber das Shellscript dbstart im bin Verzeichnis von Oracle bearbeiten
Die Zeile

ORACLE_HOME_LISTNER=$1

wurde zu

ORACLE_HOME_LISTNER=$ORACLE_HOME

Nun kann man die Datenbank mit folgenden Befehlen fehlerfrei starten:

lsnrctl start
dbstart

Um das Automatisiert beim Systemstart zu erledigen, kann in der Datei /etc/oratab der Eintrag mit einem Y statt N versehen werden, detailierte Erläuterung dazu finden sich in der Datei selbst.
Nun kann auch ein Script /etc/init.d/oracle mit folgendem Inhalt Verwendung finden

#!/bin/sh
#
# chkconfig: 345 98 10
# description: Oracle
#
#
# change the value of ORACLE to the login name of the
# oracle owner at your site
#
ORACLE=oracle
case $1 in
’start‘)
cat < <-"EOF"|su – ${ORACLE}
# Start Oracle Net
if [ -f ${ORACLE_HOME}/bin/tnslsnr ] ;
then
echo "starting Oracle Net Listener"
${ORACLE_HOME}/bin/lsnrctl start
fi
echo "Starting Oracle databases"
${ORACLE_HOME}/bin/dbstart
${ORACLE_HOME}/bin/emctl start dbconsole
EOF
;;
'stop')
cat <<-"EOF"|su – ${ORACLE}
echo "shutting down"
${ORACLE_HOME}/bin/emctl stop dbconsole
# Stop Oracle Net
if [ -f ${ORACLE_HOME}/bin/tnslsnr ] ;
then
echo "stopping Oracle Net Listener"
${ORACLE_HOME}/bin/lsnrctl stop
fi
echo "stopping Oracle databases"
${ORACLE_HOME}/bin/dbshut
EOF
;;
*)
echo "usage: $0 {start|stop}"
exit
;;
esac
#
exit

Dies ist nur exemplarisch und wurde nicht von mir getestet. Das Script ist von der Seite http://www.odi.ch/weblog/posting.php?posting=489 und kann problemlos via Google gefunden werden!
Dieses Script muss zuletzt noch via update-rc.d oracle defaults den Runleveln hinzugefügt werden.

Well done!

1.Update: 22.September 2010 –> Vielen Dank Mark! =)