Jump to content
pyth0n3

[Unix/Solaris] Oracle Database 11g Release2

Recommended Posts

oNkEwOracle Database 11g Release2 Unix/Solaris

In acest tutorial voi descrie pasii care trebuie facuti pentru a instala Oracle Database.Acest database vine in 4 release diverse:

-Enterprise Edition

-Standard Edition

-Standard Edition One

-Express Edition (free)

Dintre toate acestea Express Edition poate fi instalat doar in Linux sau in Windows. In acest tutorial ma voi concentra asupra Oracle Database 11g Release2 Enterprise Edition .Acest release suporta diverse platforme Unix/Linux/Windows In acest tutorial voi explica pasii care trebuie facuti pentru a instala acest database intrun sistem Unix/Solaris. Aceasta versiune de database 11g Release2 suporta o noua optiune de instalare si anume Oracle RAC One Node ( care permite sa rulezi mai multe instante RAC intrun singur nod de cluster)De obicei initial Oracle RAC a fost creat sa ruleze in multi-node cu instante separate alocate pe servere separate.One Node RAC in schimb reuseste sa ruleze instante multiple intrun singur nod de cluster iar realocarea instanstantelor in cazul in care merg in crash se face folosind Omotion care este defapt un utility care faciliteaza realocarea. Probabil voi reveni cu diverse alte articole in lagatura cu sistemul de clustering Oracle dar in acest tutorial voi continua cu Oracle database.Oricum daca sunteti interesati sa vedeti cum functioneaza puteti accesa paginile de manual online pe site-ul oficial ORACLE.

Inainte de a instala database-ul sistemul va trebui configurat

Memoria:

Sistemul necesita o memorie de minim un gb de RAM , si jumatate de gb de swap

In cazul in care exista sistemul are mai mult de 2 ram , memoria swap va trebui sa fie egala cu memoria ram.

Pentru a verifica memoria ram

[blade]# prtconf | grep "Memory size"
Memory size: 3072 Megabytes

Dupa cum am spus voi instala database-ul intrun sistem Sparc deci pentru a cunoaste tipul procesorului si a sistemului se poate folosi isainfo .


[blade]# isainfo -kv
64-bit sparcv9 kernel modules

Alocare spatiu disk

Aici ar trebui luate in considerare urmatoarele:

Aprox 2Gb installer+preconfig

Aprox 6Gb database after install

Aprox 500 Mb pentru TMP

Necesita si cateva pachete , pentru a vedea daca sunt instalate pkginfo poate fi de ajutor


[blade]# pkginfo -i SUNWarc SUNWbtool SUNWhea SUNWlibC SUNWlibms SUNWsprot SUNWtoo SUNWi1of SUNWi1cs SUNWi15cs SUNWxwfnt
system SUNWarc Lint Libraries (usr)
system SUNWbtool CCS tools bundled with SunOS
system SUNWhea SunOS Header Files
system SUNWi15cs X11 ISO8859-15 Codeset Support
system SUNWi1cs X11 ISO8859-1 Codeset Support
system SUNWi1of ISO-8859-1 (Latin-1) Optional Fonts
system SUNWlibC Sun Workshop Compilers Bundled libC
system SUNWlibms Math & Microtasking Libraries (Usr)
system SUNWsprot Solaris Bundled tools
system SUNWtoo Programming Tools
system SUNWxwfnt X Window System platform required fonts

In cazul in care nu gaseste un pachet instalat , va da oroare


ERROR: information for "SUNWnumepachet" was not found

In Solaris 10 probabil nu va gasi 2 pachete SUNWi1cs si SUNWi15cs, pot fi instalate direct din dvd-ul de installare

folosind pkgadd.Atentie folosind pkgadd intrun sistem cu mai multe zone va instala pachetele in toate zonele virtuale.Folosind optiunea -G pachetele vor fi instalate doar pe nodul fizic.Evident eu am instalat pachetele in ambele sisteme global si virtual.Sistemul in care voi instala oracle are deja o zona virtualizata.

O data montat dvd-ul pachetele pot fi gasite in /cdrom/sol_10/Product

Note :

Pentru a monta un device extern de tipul dvd sau usb in solaris 10 va trebui sa faceti stop la volume management


/etc/init.d/volmgt stop

Pentru a face un discovery folositi rmformat


[blade]# rmformat
Looking for devices...
1. Logical Node: /dev/rdsk/c0t2d0s2
Physical Node: /pci@1e,600000/ide@d/sd@2,0
Connected Device: JLMS XJ-HD166S D3S4
Device Type: DVD Reader
2. Logical Node: /dev/rdsk/c1t0d0s2
Physical Node: /pci@1e,600000/usb@b/storage@2/disk@0,0
Connected Device: SanDisk U3 Cruzer Micro 8.01
Device Type: Removable
[blade]#

Daca nu opriti serviciul volmgt nu veti vedea discul.

O data ce discul a fost gasit se poate monta oriunde in sistem


mount -F hsfs -o ro /dev/dsk/c0t2d0s2 /mountpoint

Asadar se pot instala pachetele care lipsesc


pkgadd -d /cdrom/sol_10/Product numepachet numepachet etc

Pentru alocarea spatiului eu am decis sa ii dau un minim de 20 gb intrun slice

Asadar am creat un slice de 20gb pe care am creat un zpool c0tr04d0s4.

Pentru a prepara spatiul folosind ZFS :

1.Se creaza un slice folosind format care va fi alocat (poate fi un disk sau doar o partitie)

c0t0d0s4

2.Se creaza un zpool


zpool create datazone c0t0d0s4

3.Se creaza un spatiu (filesystem pentru user)


zfs create datazone/home
zfs create datazone/home/oracle

Intrun final totul va arata cam asa:


[blade]# zfs list
NAME USED AVAIL REFER MOUNTPOINT
datazone 172K 19.6G 32K /datazone
datazone/home 63K 19.6G 32K /datazone/home
datazone/home/oracle 31K 19.6G 31K /datazone/home/oracle

Crearea grupului, user-ului pentru a instala si folosi database-ul

groupadd oinstall && groupadd dba 

useradd -d /datazone/home/oracle -m -s /bin/ksh  oracle

Note : Puteti folosi oricare alt shell in solaris 10 , e disponibil si bash dar eu prefer KornShell deoarece

e mult mai performant (parerea mea)

Adasar vor trebui create directoarele unde se va instala database-ul

 mkdir -p /datazone/home/oracle/product/11/db && mkdir /datazone/home/oracle/tmp

Se vor atribui drepturile de ownership asupra ierarhiei de directoare user-ului oracle


chown -R oracle:oinstall /datazone/home/oracle

Userului oracle i se va atribui un password

passwd oracle

Se va crea un fisier .profile pentru userul oracle care va fi populat cu uramtoarele date


###BEGIN

###Database required
export ORACLE_BASE=/datazone/home/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11/db
export PATH=$ORACLE_HOME/bin:$PATH
export TMP=/datazone/home/oracle/tmp
export TMPDIR=/datazone/home/oracle/tmp
export ORACLE_UNQNAME=database_name
export ORACLE_SID=database_name

###Korn shell customization
EDITOR=vi
export EDITOR
set -o vi
HISTSIZE=10000
HISTFILE=$ORACLE_BASE/.ksh_history
export HISTFILE
export HISTSIZE
PS1="[oracle]> "

###END

Note: Fisierul ar trebui sa contina si variabila DISPLAY , dar eu voi face X forwarding in ssh pentru a instala database-ul deoarece procesul de instalare are o interfata grafica , in mod divers se poate face export la display daca va aflati in fata serverului si aveti un monitor "export DISPLAY=:0.0".Desi nu prea cred ca un Netra Sparc sau un Blade Sun parcat intrun Data Center are tastiera si mouse , nu e exclus oricum.

Se va crea o partitie de swap

Note: In ZFS sintaxa e putin diversa , oricum voi crea 2 GB de swap iar pe parcurs o voi extinde daca va fi necesar

Avand in vedere faptul ca serverul are 3GB de ram ar trebui alocat si 3 GB de swap si cred ca installer-ul

va face print cu un error dar vom face skip pentru a extinde memoria post install daca este necesar

(Aici am luat o decizie personala de a face asa dar in teorie ar trebui alocat 3 gb de swap)

Crearea partitiei pt swap

 zfs create  -V 2G datazone/home/oracle/ora_swap

Activarea partitiei swap

swap -a /dev/zvol/dsk/datazone/home/oracle/ora_swap

List swap


[blade]# swap -l
swapfile dev swaplo blocks free
/dev/dsk/c0t0d0s1 136,9 16 1056704 1054880
/dev/zvol/dsk/datazone/home/oracle/ora_swap 256,1 16 4194288 4194288

Modificari la nivel de system

Desi se pot face folosind diverse SMF utility in solaris 10 , voi modifica fisierele precum vine scris in manual.

Daca vin modificate manual bineinteles va trebui facut un fel de refresh pentru a fi citite si aici vom face un reboot.In unele servere nu se poate face reboot si vor trebui adoptate metodele care vor face aceste modificari in HOT level fara reboot.


projadd -U oracle -K "project.max-shm-memory=(priv,2g,deny)" oracle
projmod -sK "project.max-sem-nsems=(priv,256,deny)" oracle
projmod -sK "project.max-sem-ids=(priv,100,deny)" oracle
projmod -sK "project.max-shm-ids=(priv,100,deny)" oracle
echo "set maxuprc=16384" >> /etc/system
echo "set max_nprocs=30000" >> /etc/system
echo "set shmsys:shminfo_shmmax=3221225472" >> /etc/system

projadd administreaza proiectele in system si sintaxa pe care em folosito este sa creeze un nou proiect pentru user-ul oracle unde i-am oferit un maxim shared memory de 2 gb.Folosind projmod nu necesita reboot ci doar un log-out a user-ului.Modificarile asupra fisierului /etc/system necesita reboot desi eu nu as numi reboot in Unix deoarece sistemul nu face shutdown ci doar un INIT restart deci nu e un reboot ca in sistemele Windows. Ar putea fi folosit un modular debugger mdb pentru a modifica valorile dar vred ca e mai complicat si nu toti ar itelege cum functioneaza.

maxuprc - Maximum number of processes that can be created on a system by any one user.

max_nprocs - Maximum number of processes that can be created on a system.

shmsys:shminfo_shmmax - Maximum size of system V shared memory segment that can be created. (e doar o valoare care

exprima un maxim nu face memory alocation)

Dupa aceste configurari se va face reboot

Readuc aminte reboot in unix face doar un kernel restart

Citez din man pages

The reboot utility restarts the kernel. The kernel is loaded

into memory by the PROM monitor, which transfers control to

the loaded kernel.

Daca totul a fost configurat bine se poate incepe cu instalarea database-ului.Se va face login cu user-ul oracle deoarece installer-ul necesita ca user-ul sa nu fie root Se creaza un director temporar pt installer

mkdir /datazone/home/oracle/installetion

Se vor copia fisierele descarcate sub acest director

[blade]# mv database/ /datazone/home/oracle/installation/

Pentru a instala din remote se va face ssh cu optiunea -X (X forwarding)

Asadar vom avea display-ul pe un computer extern.

ssh -X oracle@blade

Pentru a porni procesul de instalare a database-ului

[oracle]> cd installation/database/ && ./runInstaller

De aici inainte procesul de instalare este interactiv , asadar am facut un slide cu imagini

Oracle Database 11g Release2 installer screenshots

O data terminata instalarea se poate configura database-ul dar acest lucru nu mai face parte din acest topic.Daca aveti intrebari , nedumeriri sunteti liberi sa le faceti.E interesanta structura prin care functioneaza un database oracle din punct de vedere client server.Probabil ve-ti gasi greseli de exprimare , faceti un report la adresa mea de mail le voi corecta.Daca va intrebati ce rost ar avea un tutorial de instalare a unui db pe un forum de hacking , ei bine cu cat cunosti mai bine piesele din puzzle cu atat mai repede temini figura si ar fi stupid sa distrugi ceea ce nu reusesti sa creezi.

oNkEw

Edited by pyth0n3
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...