Kako instalirati Oracle 11g na CentOS 6 minimal

U prošlom tekstu smo se upoznali sa CentOS-om, u ovom ćemo instalirati jednu od najpopularnijih komercijalnih baza podataka na svetu – Oracle bazu podataka.

Ukratko: Oracle bazu podataka koriste većinom velike ili srednje kompanije (manje je izbegavaju zbog visoke cene licence), i u suštini je relaciona baza podataka koju odlikuje velika stabilnost, brzina, milijardu raznoraznih opcija za administraciju i upravljanje.

Ja radim oko 4 godine sa Oracle-om nisam DBA nažalost :( što ne znači i da neću biti ipak imam tek 35 godina....

Ja radim oko 4 godine sa Oracle DB, nisam DBA nažalost što ne znači i da neću biti ipak imam tek 35 godina…

Oracle postoji i u besplatnoj varijanti pod nazivom Oracle Database Express Edition i u odnosnu na licenciranu ima razna neka ograničenja (veličina baze sme biti max 4GB, ima CPU/RAM ograničenja i slična sranja).

Trenutno je situacija takva da je kvalitetne Oracle DBA kadrove teško naći te ako se zainteresujete za dalje izučavanje i bavljenje ovim – plate koje imaju Oracle DBA u inostranstvu su ludilo svemira.

U ovom primeru instaliraćemo 64-bitni Oracle 11g (poslednja verzija je 12c) na mašini na kojoj je instaliran 64-bitni CentOS 6.6 u minimalnom izdanju (kako – link ovde), a instalaciju ćemo izvesti iz Windows 8.1 sistema.

Kompjuter koji će se se u ovom slučaju koristiti jeste virtualni kompjuter na besplatnom VirtualBox-u (kompanije većinom vrte servere na virtualnoj infrastrukturi počevši od KVM-a i VMware-a pa nadalje…).

Taj naš virtualni kompjuter ima instalirano 2GB RAM memorije, swap particiju od 4GB, hard disk od 500GB i koristi jedno jezgro od procesora Intel Core i5-3230M CPU @ 2.60GHz i IP adresa tog kompjutera je 192.168.1.123 i sa hostname-om: centos6-minimal.kompjuteras.com

Da bi instalacija mogla da se sprovede, potrebno je da posedujete Oracle instalacione fajlove (i licencu, sem ako ne koristite Oracle Express) i po mogućstvu internet konekciju kroz koju ćemo instalirati dodatne potrebne pakete. Instalacija je moguća i bez internet konekcije ali je u tom slučaju dosta komplikovanija (lakše je kad se koristi yum).

Hardverski zahtevi

Da bi Oracle mogao normalno da funkcioniše potrebno je da server ispunjava sledeće uslove:

  • Ima minimum 512MB RAM-a. Komanda kojom možete proveriti koliko vaš sistem ima instaliranog RAM-a je:
    grep MemTotal /proc/meminfo
  • Treba da ima minimum 400MB slobodnog prostora u /tmp-u. Prostor za tmp možete proveriti komandom:
    df -h /tmp
  • Veličina prostora na swap-u. U zavisnosti od količine RAM-a, vaš swap mora da ima minimum:
    RAM između 512MB i 1GB —> SWAP mora biti minimum 2xRAM
    RAM između 1 i 2GB —> SWAP mora biti minimum 1.5xRAM
    RAM između 2 i 8GB —> SWAP mora biti minimum koliko i RAM
    RAM veći od 8GB —> SWAP mora biti minimum 0,75xRAM
    Veličinu RAM-a proverate komandom:
    grep SwapTotal /proc/meminfo
  • Na hard disku morate imati minimum 6GB slobodnog prostora. Slobodan prostor proveravate komandom:
    df -h

Instalacija grafičkog okruženja (GUI)

Komande u daljem tekstu se odvijaju tako što se putem programa PuTTY ili sličnog ssh klijenta kačite da udaljeni server i izvršavate komande na njemu. Za sad se logujete kao root proz PuTTY…

CentOS minimal nema grafičko okruženja (ima samo „command line interface“, skraćeno cli) a instalacija Oracle DB se radi kroz grafički interfejs – dakle, to treba doinstalirati na naš CentOS minimal.

yum -y groupinstall "Desktop" "Desktop Platform" "X Window System" "Fonts" yum -y install xorg-x11-apps.x86_64 # Da ne smara onaj Text modesetup utility prilikom butovanja chkconfig firstboot off

Kreiranje korisnika Oracle

Instalaciju Oracle DBA radi korisnik oracle uz pokretanje par skripti kao root, tako da morate napraviti tog korisnika na nivou Linuksa. Lozinku koju stavljate stavljate da bude ultra zajebana. Generalno – autentifikaciju username/password treba izbegavati i koristiti umesto toga samo autentifikacione ključeve – ali otom-potom.

groupadd  oinstall groupadd  dba useradd -m -g oinstall -G dba -d /home/oracle -s /bin/bash -c "Oracle Software Owner" oracle passwd oracle

Instalacija potrebnih paketa

yum -y install unzip binutils compat-libstdc++-* compat-libstdc++-* elfutils-libelf elfutils-libelf-devel gcc gcc-c++-* glibc glibc glibc-common glibc-devel* glibc-headers libaio-* libaio-devel-* libgcc-* libstdc++-* libstdc++-* libstdc++-devel make sysstat unixODBC unixODBC-devel compat-libcap1 ksh

Izmena konfiguracionih fajlova na CentOS-u

Izmeniti fajl /etc/sysctl.conf vrednostima ispod. U tom fajlu se nalaze kernel parametri za rad sistema tako da – pažljivo sa njim.

#####   vi /etc/sysctl.conf # Dodati sledeće vrednosti na kraj fajla fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 # Pažnja: SHMMAX mora da bude minimum: 536870912 a maksimum instalirani RAM-1byte. Preporučeno više od pola instaliranog RAM-a odnosno, pošto u ovom slučaju imamo instalirano 2GB RAM-a da ta vrednost bude 2GB/2=1GB ---> 1073741824 Bytes# Ako se ne snalazite imate ovde kalkulator bytes2GB: http://www.whatsabyte.com/P1/byteconverter.htm kernel.shmmax = 1073741824 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 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 # ZAKOMENTARISATI #net.bridge.bridge-nf-call-ip6tables = 0 #net.bridge.bridge-nf-call-iptables = 0 #net.bridge.bridge-nf-call-arptables = 0# Posle dodavanja ovih linija izvršiti komandu: /sbin/sysctl -p

Izmeniti fajl /etc/security/limits.conf i dodati vrednosti navedene ispod. U tom fajlu se definiše maksimalni broj procesa koje oracle može da pokrene.

####   vi /etc/security/limits.conf# Dodati vrednosti na kraj fajla, ali pre poslednje linijee: # End of file oracle              soft    nproc   2047 oracle              hard    nproc   16384 oracle              soft    nofile  1024 oracle              hard    nofile  65536 oracle              soft    stack   10240

Izmeniti fajl /etc/profile i dodati vrednosti navedene ispod. U tom fajlu se nalaze globalne sistemske varijable ali nivou korisnika.

###   vi /etc/profile# Dodati vrednosti na kraj fajla if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi

Bekapovati pa izmeniti fajl /etc/redhat-release kako je navedeno ispod. U tom fajlu se nalazi informacija o verziji operativnog sistema koji koristite.

cp /etc/redhat-release /etc/redhat-release_BEKAP echo "redhat-6" > /etc/redhat-release # Ugasiti selinux # Fajl gde se ovo menja je: /etc/selinux/config sed -i s/"SELINUX=enforcing"/"SELINUX=disabled"/g /etc/selinux/config 

Izmeniti /etc/hosts i dodati informacije o vezi IP_ADRESA – HOST. U ovom slučaju pun naziv hosta je centos6-minimal.kompjuteras.com pa ćemo dodati taj naziv (vi postavite host koji ste dodelili serveru).
Ovog puta ćemo dodati novu liniju pošto se radi o „klot instaliranom“ serveru. Vi odradite preko vi editora za svaki slučaj.

echo "192.168.1.123 centos6-minimal.kompjuteras.com centos6-minimal" >> /etc/hosts

Dodati sledeće linije u Oraklov bash_profile. Fajl je /home/oracle/.bash_profile

echo "umask 022" >> /home/oracle/.bash_profile echo "export ORACLE_BASE=/home/oracle/app" >> /home/oracle/.bash_profile

Gašenje Network manager-a (nepotreban u ovom slučaju jer je mreža ranije iskonfigurisana ručno) da se ne startuje prilikom startovanja sistema.

chkconfig NetworkManager off ###   Restartovati server   ### reboot

Instalacija i startovanje VNC servera

VNC služi za pristup grafičkom okruženju udaljenom kompjuteru (ako znate šta je „Remote Desktop“ otprilike znate i šta je VNC).

Ako serveru pristupate direktno, odnosno ako imate fizički pristup serveru ovaj korak možete preskočiti. Grafičko okruženje mora da se osposobi bilo kroz VNC bilo kroz direktan pristup serveru jer bez njega nije moguća instalacija Oracle-a.

yum -y install tigervnc-server pixman pixman-devel libXfont # Ulogujte se kroz terminal/Putty kao oracle i pokrenite VNC server su - oracle vncserver # Putem TightVNC view-era ili sličnog softvera možete se ulogovati na server pomoću # adrese: IP_ADRESA:SCREEN odnosno u ovom slučaju 192.168.1.123:1

 

VNC server

VNC View

Ako dobijete izgled desktopa onda je sve kako valja 🙂

Kopiranje i raspakivanje Oracle instalacionih fajlova.

Fajlove potrebne za instalaciju operativnog sistema prekopirajte pomoću FileZilla ili sličnog FTP/SCP klijenta. Ulogujte se kroz FilleZilla (u ovom primeru ćemo njega koristiti) kao korisnik oracle i prekopirajte potrebne fajlove za instalaciju, odnosno u ovom slučaju fajlove: p10404530_112030_Linux-x86-64_1of7.zip i p10404530_112030_Linux-x86-64_2of7.zip i prekopirajte ih u folder Desktop korisnika oracle korisnika.

Kopiranje Oracle install fajlova na server

# Raspakivanje malopre dodatih fajlova su - oracle cd /home/oracle/Desktop unzip p10404530_112030_Linux-x86-64_1of7.zip unzip p10404530_112030_Linux-x86-64_2of7.zip rm p10404530_112030_Linux-x86-64_1of7.zip rm p10404530_112030_Linux-x86-64_2of7.zip

Izmeniti info o distrou da se ne bi javljala greška o pdksh paketu

cd /home/oracle/Desktop vi database/stage/cvu/cv/admin/cvu_config#PROMENITI CV_ASSUME_DISTID=OEL4 u CV_ASSUME_DISTID=OEL6

Instalacija – napokon

Ako ste i dalje nakačeni putem VNC-a na server onda pratite uputstva dalje – a ako niste, nakačite se ali kao korisnik oracle, odnosno putem PuTTY-ja se sa svog kompjutera nakačite na server kao korisnik oracle i startujte VNC server komandom: vncserver

…pa se kroz recimo TightVNC sa svog kompjutera nakačite na taj server…a adresa je u ovom slučaju: 192.168.1.123:1.

Kad ste se ulogovali kroz VNC i došli do grafičkog okruženja kliknite na: Application – System Tool – Terminal pa unesite komande:

cd /home/oracle/Desktop/database ./runInstaller

…dalje se sve svodi na next-next-finish foru…

Kad ste završili sa instalacijom obrišite suvišne instalacione fajlove (da ne ostaje smeće). Ulogujte se kroz Putty/Terminal kao oracle korisnik i odradite:

rm -rf /home/oracle/Desktop/database # ...i deinstalirajte VNC, koji će vam su - root /usr/bin/vncserver -kill :1 yum remove vncserver -y

Podizanje baze

Bazu možemo dići preko Oracle programa koji se zove SQLplus…a koji je instaliran zajedno sa instalacijom ali da bi radio moraju mu se izdefinisati neke putanje kako bi znao ko je gde i gde je šta. To se radi dodavanjem putanja i oracle .bash_file tako da ćemo u ovom slučaju kroz „vi“ editor dodati linije…

###   vi /home/oracle/.bash_profile#Dodati linije export ORACLE_SID=orcl export ORACLE_HOME=${ORACLE_BASE}/product/11.2.0/dbhome_1 export LD_LIBRARY_PATH=$ORACLE_HOME/lib export NLS_LANG=AMERICAN_america.EE8ISO8859P2 PATH=$PATH:$ORACLE_HOME/bin # Pa pokrenite sledeće komande kako bi povukli ta podešavanja su - oracle . ./.bash_profile

Startovanje baze podataka radite tako što kao oracle korisnik pokrenete sledeće komande

sqlplus / as sysdba startup;

…tako da bi posle startovanja baze terminal trebalo da izgleda ovako nekako

…a treba startovati i listener bez njega je nemoguće nakačiti se na bazu sa drugih kompjutera (može samo sa lokalnog kompjutera gde je Oracle DB instalirana)

lsntctl start

Testiranje

Posle startovanja baze i listenera ostaje vam samo da putem programa za manipulaciju bazom poput komercijalnog Toad-a ili besplatnog Oraklovog SQL developer-a proverite da li radi neki upit, recimo u ovom slučaju bi kroz Toad pokrenuli upit:

select * from dual;

Logovanje

Time je deo koji se tiče instalacije Oracle DB na CentOS 6 minimal završen te se možete početi igrati sa učenjem…a imate i knjigu za apsolutne početnike čiji sam link za skidanje postavio gore u tekstu.

Posle ove instalacije potrebno je odraditi instalaciju pečeva za Oracle i neka dodatna podešavanja baze, postavljanje bezbedonosnoh postavki na nivou baze i operativnog sistema, pravljenje procedure za bekap baze i još podosta stvari…ali otom-potom