arcdisp.c – XP-Fehler

Ich wollte einen altes, betagtes Notebook mit der Installations-CD „Windows XP“ booten – das Betriebssystem fährt nicht mehr wie erwartet hoch.

Sehr rasch wird immer wieder der gleiche Fehler angezeigt:

Ein unerwarteter Fehler (0) ist in Zeile 1773 in pfadderdiskarcdisp.c aufgetreten.

Fazit: Der Tausch eines RAM Bausteins hat Abhilfe gebracht, das installierte System bootete wieder ordnungsgemäß!

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! =)