U prošlom tekstu smo se upoznali sa CentOS Linuksom, 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 free 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 – a ako budete želeli dalje da se upoznate krenite od ove knjige (ali je kupite kad se upoznate sa njom).

U ovom primeru instaliraćemo 64-bitni Oracle 11g (poslednja verzija je 12c ali nemam licencu za njega) 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, da ne bi ispalo da sam baš pravi debeli Linux-addicted štreber 🙂

Kompjuter koji će se se u ovom slučaju koristiti jeste virtualni kompjuter na besplatnom VirtualBoxu (kompanije većinom vrte servere na virtualnoj infrastrukturi počevši od KVM-a i VMwarea 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 hostnameom: 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 mode setup 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/passwird 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

Editovati 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

#Paznja: SHMMAX mora da bude minimum: 536870912 a maksimum INSTALIRANI RAM-1byte. Preporuceno vise od pola instaliranog RAM-a odnosno, posto u ovom slucaju imamo instalirano 2GB RAM-a da ta vrednosto 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 izvrsiti komandu:
/sbin/sysctl -p

Editovati 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 linije: # End of file
oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  1024
oracle              hard    nofile  65536
oracle              soft    stack   10240

Editovati 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 za vreme instalacije. 
# 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 Oracklov 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 managera (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 viewera 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 ssh 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 user i odradite:

rm -rf /home/oracle/Desktop/database

# ...i deinstalirajte VNC server jer nije baš najsigurniji
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

Sqlplus

…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 SQLdevelopera 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 🙂