Ich musste vor etwa 5 Monaten auch eine Oracle Datenbank aufsetzten. Aber "nur" eine 11g.
Ich habe mir fast alle Schritte aufgeschrieben und bin nach der Anleitung gegangen die du verlinkt hast:
http://www.akadia.com/services/ora_linux_install_10g.html
Mein Vorgehen:
1. Benötigte Pakete installieren
- openmotif
- gcc 3.4 or later
- libXtst
- xorg-x11 (not needed if you don't want to have an X server, but only use the client)
- glibc=2.3.x (some oracle utils may require linuxthreads, glibc 2.4 supports only NPTL)
- libaio
- sys-libs/libstdc++-v
|
Quellcode
|
1
|
emerge -av openmotif gcc libXtst xorg-x11 glibc libaio sys-libs/libstdc++-v3
|
2. Parameter überprüfen/setzten
Minimalanforderung von Oracle Befehl zur Überprüfung des Wertes shmmax = 2147483648 cat /proc/sys/kernel/shmmax
shmmni = 4096 cat /proc/sys/kernel/shmmni
shmall = 2097152 cat /proc/sys/kernel/shmall
shmmin = 1 grep "min seg size"
semmsl = 250 awk '{print $1}' /proc/sys/kernel/sem
semmns = 32000 awk '{print $2}' /proc/sys/kernel/sem
semopm = 100 awk '{print $3}' /proc/sys/kernel/sem
semmni = 128 awk '{print $4}' /proc/sys/kernel/sem
file-max = 65536 cat /proc/sys/fs/file-max
ip_local_port_range = 1024 65000 cat /proc/sys/net/ipv4/ip_local_port_range
Falls die Parameter nicht stimmen, muss man sie richtig Anpassen.
/etc/sysctl.conf
|
Quellcode
|
1
|
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
|
Um die Einstellungen zu übernehmen,
|
Quellcode
|
1
|
sysctl -p
|
3.File/Process Limit
/etc/security/limits.conf
|
Quellcode
|
1
2
3
4
5
6
|
#File Limit
oracle soft nofile 4096
oracle hard nofile 65536
#Process Limit
* soft nproc 2047
* hard nproc 16384
|
/etc/pam.d/system-auth
|
Quellcode
|
1
2
|
session required /lib/security/pam_limits.so
session required /lib/security/pam_unix.so
|
4. Benutzer/Gruppen erstellen
Oracle braucht 2 verschiedene Gruppen. Eine für die Software und eine für die Datenbank
|
Quellcode
|
1
2
3
|
groupadd dba # group of users to be granted SYSDBA system privilege
groupadd oinstall # group owner of Oracle files
useradd -c "Oracle Software Owner" -g oinstall -G dba -d /home/oracle oracle
|
Es ist sinnvoll für den oracle User noch ein Passwort zu setzten
|
Quellcode
|
1
|
passwd oracle
|
5. Ordnerstruktur erstellen
|
Quellcode
|
1
2
3
|
mkdir -p /opt/oracle/product/11.2.0.1.0
chown -R oracle:oinstall /opt/oracle
chmod 755 /opt/oracle/
|
!!Bitte Name an Version anpassen!!
6. /etc/profile anpassen
Damit immer die Richtigen Parameter gesetzt werden, wenn sich der User Oracle einloggt.
|
Quellcode
|
1
|
if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -u 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
|
7. /etc/env.d/99oracle
Wenn es noch keine Datei gibt (Was sehr wahrscheinlich der Fall ist) muss man sie erstellen.
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/product/11.2.0.1.0
ORACLE_SID='ora_sid'
ORACLE_TERM=xterm
ORACLE_OWNER=oracle
TNS_ADMIN=/opt/oracle/product/11.2.0.1.0/network/admin
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
ORA_NLS11=/opt/oracle/product/11.2.0.1.0/nls/data
CLASSPATH=/opt/oracle/product/11.2.0.1.0/jdbc/lib/classes12.zip
LD_LIBRARY_PATH=/opt/oracle/product/11.2.0.1.0/lib:/opt/oracle/product/11.2.0.1.0/lib32
DISABLE_HUGETLBFS=1
PATH=/opt/oracle/product/11.2.0.1.0/bin
ROOTPATH=/opt/oracle/product/11.2.0.1.0/bin
LDPATH=/opt/oracle/product/11.2.0.1.0/lib:/opt/oracle/product/11.2.0.1.0/lib32 TZ=CET
ORACLE_HOSTNAME=hostname
|
Danach
|
Quellcode
|
1
2
|
env-update
source /etc/profile
|
8. Installation
Sich als Oracle-User einloggen mit der Option -Y Um zu überprüfen ob X richtig weitergeleitet wird xeyes ausführen. Wenn 2 Augen auf dem Display erscheinen ist alles OK. Wenn nicht überprüfen ob in der
/etc/ssh/sshd_config
|
Quellcode
|
1
|
X11Forwarding yes
|
Danach die Installation starten mit dem Befehl
|
Quellcode
|
1
|
./runInstaller -ignoreSysPrereqs
|
Seite 1
E-Mail Adresse eingeben. Ich persönlich würde das Häkchen wegnehmen bei 'I wish to receive security updates vie My Oracle Support' da ich keinen habe.
Seite 2
Deine Entscheidung, ich habe nur die Software installiert
Seite 3
Ich brauchte nur eine 'Single instance database installation.
Seite 4
Englisch reicht hier vollkommen aus, man darf aber auch noch Deutsch hinzufügen.
Seite 5
Ich nahm die 'Standard Edition (3.88GB)'
Seite 6
Oracle Base: /opt/oracle Software Location: /opt/oracle/product/11.2.0.1.0
Seite 7
Inventory Directory: /opt/oracle/oraInventory oraInventory Group Name: oinstall
Man sollte vielleicht noch schnell ein solches Verzeichnis anlegen
|
Quellcode
|
1
|
mkdir /opt/oracle/oraInventory
|
Seite 8
Für beide Gruppen
dba auswählen.
Seite 9
Jetzt werden sehr wahrscheinlich ein paar Fehler angezeigt.
Ich habe folgende ignoriert
- make-3.80
- binutils-2.15.92.0.2
- gcc-3.4.6
- libaio-0.3.105
- glibc-2.3.4-2.41
- compat-libstd++-33-3.2.3
- elfutils-libelf-0.97
- elfutils-libelf-devel-0.97
- glibc-common-2.3.4
- glibc-devel-2.3.4
- glibc-headers-2.3.4
- gcc-c++-3.4.6
- libaio-devel-0.3.105
- libgcc-3.4.6
- libstc++-3.4.6
- libstc++-devel-3.4.6
- sysstat-5.0.5
- unixODBC-2.2.11
- unixODBC-devel-2.2.11
- pdksh-5.2.14
Auch habe ich ignoriert,
- Group Membership: oinstall
- Group Membership: dba
Seite 10
In der Zusammenfassung kann man nochmals alles überprüfen und sich das Response File abspeichern.
Fehler während der Installation:
Fehler 'idg4odbc' (
librt.so.1): Ich habe in der Datei, /opt/oracle/product/11.2.0.1.0/lib/sysliblist am Ende noch -lrt angehängt.
|
Quellcode
|
1
|
-ldl -lm -lpthread -lnsl -lirc -lipgo -lrt
|
Fehler /usr/lib/libstdc++.so.6 not found. Einen Link setzen
|
Quellcode
|
1
|
ln -s /usr/lib/gcc/i686-pc-linux-gnu/4.4.4/libstdc++.so.6 /usr/lib/libstdc++.so.6
|
Nach der Installation müssen noch zwei Scripte ausgeführt werden:
/opt/oracle/oraInventory/orainstRoot.sh
/opt/oracle/product/11.2.0.1.0/root.sh
Installation fertig.
Vielleicht hilft dir das ein bisschen weiter. Habe dies aus meinen Notizen kopiert (vielleicht ein bisschen unklar/Schreibfehler)
Um eine Datenbank anzulegen hatte ich dann ein Script.