INSTALACJA ORACLE 11g – Fedora / CentOS / RedHat
Oracle Database to oficjalna nazwa relacyjnego systemu baz danych (RDBMS) stworzonego przez Oracle Corporation. Nazwa Oracle pochodzi od nazwy kodowej jednego z projektów sponsorowanych przez CIA, nad którymi pracował współzałożyciel korporacji Oracle – Larry Ellison.
Cały proces instalacji Oracla będzie podzielony na 3 etapy. W pierwszej kolejności zainstalujemy samą instancję, następnie doinstalujemy listenera, w ostatnim kroku zainstalujemy bazę.
Opis dotyczy Oracle Database 11g Release 1 ver. 11.1.0.6.0. W Release 2 ver. 11.2.0.1.0 niewiele się zmieniło – procedura jest ta sama.
-
Ustawiamy w /etc/hosts
127.0.0.1 localhost 192.168.14.101 oracled
-
Edytujemy plik /etc/selinux/config i zmieniamy
z:
SELINUX=enforcing
na:
SELINUX=disabled
-
Reboot servera
shutdown -r now
-
W pliku /etc/sysctl.conf dopisujemy
kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 # semaphores: semmsl, semmns, semopm, semmni kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default=4194304 net.core.rmem_max=4194304 net.core.wmem_default=262144 net.core.wmem_max=262144
(Parametr kernel.shmmax powinien być ustawiony na połowę wielkości pamięci RAM)
-
Wydajemy polecenie:
/sbin/sysctl -p
-
Edytujemy /etc/security/limits.conf i dodajemy:
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
-
Edytujemy /etc/pam.d/login i dodajemy:
session required /lib/security/pam_limits.so session required pam_limits.so
-
Edytujemy /etc/profile i dodajemy:
if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi umask 022 fi
-
Uaktualniamy pakiety:
yum install binutils-2.* yum install elfutils-libelf-0.* yum install glibc-2.* yum install glibc-common-2.* yum install libgcc-4.* yum install libstdc++-4.* yum install make-3.* yum install elfutils-libelf-devel-0.* yum install glibc-devel-2.* yum install gcc-4.* yum install gcc-c++-4.* yum install libstdc++-devel-4.* yum install unixODBC-2.* yum install libaio libaio-devel* yum install unixODBC-devel* yum install sysstat* yum install compat-libstdc++*
-
Zakładamy odpowiednich użytkowników i grupy
groupadd oinstall groupadd dba groupadd oper groupadd asmadmin useradd -g oinstall -G dba,oper,asmadmin oracle passwd oracle
-
Dodajemy do /home/oracle/.bash_profile
export ORACLE_HOSTNAME=oracled export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1 export ORACLE_SID=hart export ORACLE_TERM=xterm export PATH=/usr/sbin:$PATH export PATH=$ORACLE_HOME/bin:$PATH export ORA_OWNR="oracle" export PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin export LD_LIBRARY_PATH=$ORACLE_HOME/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib export CLASSPATH=$ORACLE_HOME/JRE export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib export THREADS_FLAG=native export TEMP=/tmp export TMPDIR=/tmp
-
Zakładamy odpowiednie katalogi i nadajemy im odpowiednie prawa
mkdir -p /u01/app/oracle/product/11.1.0/db_1 chown -R oracle:oinstall /u01 chmod -R 775 /u01
-
W /etc/redhat-release zmieniamy
z Fedora Release 9 (Sulphur)
na RedHat Release 5echo "Red Hat Linux release 5" > /etc/redhat-release
-
Logujemy się na użytkownika oracle i na wszelki wypadek wydajemy polecenia:
export ORACLE_HOSTNAME=oracled export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1 export ORACLE_SID=hart export ORACLE_TERM=xterm export PATH=/usr/sbin:$PATH export PATH=$ORACLE_HOME/bin:$PATH export ORA_OWNR="oracle"
-
Odpalamy instalator będąc zalogowani jako użytkownik oracle w trybie graficznym
./runInstaller
-
Wydajemy polecenia
/u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/11.1.0/db_1/root.sh
-
Mamy już instancję – teraz konfigurujemy litenera
cd /u01/app/oracle/product/11.1.0/db_1/bin ./netca
-
Następnie zakładamy bazę:
cd /u01/app/oracle/product/11.1.0/db_1/bin ./dbca
- Startujemy bazę odpalając po kolei: listenere, bazę, dbconsolę:
lsnrctl start dbstart $ORACLE_HOME emctl start dbconsole
Super opis, próbowałem z książki ale za dużo błędów, może na początek dodałbym jeszcze uname -a, aby prawidłową instalkę ściągnąć.
pozdrawiam
„shmmax – Either 4 GB – 1 byte, or half the size of physical memory (in bytes), whichever is lower.” warto zaznaczy że nie jest to wartośc bezwzględna, a zalezna od ilości zainstalowanej pamięci
Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
Można to jakoś obejść? Zainstalowałem CentOS 5.0 zrobiłem wszystko to co jest tutaj napisane i mam taką odpowiedź.
zmienilem echo „redhat-4” > /etc/redhat-release i mam teraz to
——————————-
Starting Oracle Universal Installer…
Checking installer requirements…
Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
Passed
All installer requirements met.
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2009-10-13_03-17-18PM. Please wait …[oracle@localhost ~]$ Exception in thread „main” java.lang.UnsatisfiedLinkError: /tmp/OraInstall2009-10-13_03-17-18PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at sun.security.action.LoadLibraryAction.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.NativeLibLoader.loadLibraries(Unknown Source)
at sun.awt.DebugHelper.(Unknown Source)
at java.awt.Component.(Unknown Source)
——————————————————–
czy ktoś jest mi stanie pomóc co mam teraz zrobić?
_
yum install xorg-x11-deprecated-libs
dzieki pomogło 🙂
mam teraz problem przy punkcie 17
______________________________________________________
[oracle@localhost bin]$ ./netca
UnsatisfiedLinkError exception loading native library: njni10
java.lang.UnsatisfiedLinkError: jniGetOracleHome
at oracle.net.common.NetGetEnv.jniGetOracleHome(Native Method)
at oracle.net.common.NetGetEnv.getOracleHome(Unknown Source)
at oracle.net.ca.NetCA.main(Unknown Source)
Oracle Net Services configuration failed. The exit code is -1
___________________
podpowiesz jak to rozwiązać?
Podczas konfiguracji były jakieś błędy ? Sprawdź plik $ORACLE_HOME/install/make.log
Poczytaj to: http://forums.oracle.com/forums/thread.jspa?threadID=479307
Witam bardzo dobry opis instalacji. Jednakże po zainstalowaniu i restarcie nie mogę uruchomić żadnej z usług. Pisze że np. lsnrctl command not found. Zauważyłem też że zmienna $ORACLE_HOME i inne nie są ustawione. Jak wydam polecenie export ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1 a potem dla sprawdzenia echo $ORACLE_HOME to wyświetla się pusta linijka. Podejrzewam że to problem ze zmiennymi środowiskowymi, bo po instalacji i przed restartem wszystko dobrze działało. Jest na to jakaś rada?
Raczej niemożliwe. Mała podpowiedź, żeby zmienne środowiskowe były aktywne na użytkownika oracle przelogowujemy się komendą:
su – oracle (ważny jest ten myślnik)
Mam jeszcze jedno pytanie. Czy po instalacji musiał Pan konfigurować dodatkowo jakieś pliki? Mi np nie chciał startować listener. Pojawiał się komunikat Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr zmieniłem to przez edycję pliku dbstart i przypisanie scieżki $ORACLE_HOME w 78 linijce tego pliku. Po tej operacji listener wystartował ale pojawił się komunikat TNS:listener does not currently know of SID given in connect descriptor. Wyedytowałem plik listner.ora w /network/admin i zmieniłem SID na taki jaki ma mieć baza. Teraz mi pisze ORA-28547: connection to server failed, probable Oracle Net admin error (DBD ERROR: OCISessionBegin).
sprawdź dokładnie czy w pliku bash_profile dla użytkownika ORACLE jest wpis „umask 022” – miałem podobny problem i to pomogło.
Fajny artykuł. Ja co prawda właśnie zainstalowałem 11.2 ale artykuł pomaga 🙂
U mnie zamiast
dbstart $ORACLE_HOME
muszę robić
echo startup|sqlplus / as sysdba
a przy zamykaniu:
echo shutdown immediate|sqlplus / as sysdba
To tak dopisuję – by było dla potomności…
pozdrawiam
Marcin
Jak ktoś ma problem z javą:
yum install libXext.so.6
Hej Mam do was wielką prośbę męcze się z wgraniem Oracla 11g R2 na Fedorze 16 wszystko jest fajnie dopuki nie dochodzę do momentu instalacji i wyślietla mi w check że mam np libaio fail i 8 innych tez choć wgrywałem je i również próbowałem ściągnąć rmpy ale wyświetla że są już wgrane co robić?
W Fedorze przed instalacją Oracla proszę ściągnąć i uruchomić the Gladstone Oracle preinstaller script : http://dl.dropbox.com/u/30619235/gladstone/gladstone.sh
pozdrawiam
A czy dla fedory 17 również jest taki skrypt męcze się z tym na tym systemie ?
Hej
mam ciągle ten błąd ./runInstaller: line 254: /home/oracle/database/install/.oui: cannot execute binary file
nie rozumiem co jest z tym nie tak proszę o pomoc
błąd w punkcie 18:
./dbca
bash: ./dbca: Nie ma takiego pliku ani katalogu
W punkcie 7
edytujemy /etc/pam.d/login i dodajemy:
zamiast session required /lib/security/pam_limits.so
powinno być: session required /lib64/security/pam_limits.so
Inaczej nie zalogujemy się na kosole. Będzie komunikat: Module is Unknown