pyth0n3 Posted April 1, 2012 Report Share Posted April 1, 2012 (edited) Oracle Database 11g Release2 Unix/SolarisIn 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 swapIn 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 MegabytesDupa 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 modulesAlocare spatiu diskAici ar trebui luate in considerare urmatoarele:Aprox 2Gb installer+preconfig Aprox 6Gb database after installAprox 500 Mb pentru TMPNecesita 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 SUNWxwfntsystem SUNWarc Lint Libraries (usr)system SUNWbtool CCS tools bundled with SunOSsystem SUNWhea SunOS Header Filessystem SUNWi15cs X11 ISO8859-15 Codeset Supportsystem SUNWi1cs X11 ISO8859-1 Codeset Supportsystem SUNWi1of ISO-8859-1 (Latin-1) Optional Fontssystem SUNWlibC Sun Workshop Compilers Bundled libCsystem SUNWlibms Math & Microtasking Libraries (Usr)system SUNWsprot Solaris Bundled toolssystem SUNWtoo Programming Toolssystem SUNWxwfnt X Window System platform required fontsIn cazul in care nu gaseste un pachet instalat , va da oroareERROR: information for "SUNWnumepachet" was not foundIn Solaris 10 probabil nu va gasi 2 pachete SUNWi1cs si SUNWi15cs, pot fi instalate direct din dvd-ul de installarefolosind 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 stopPentru a face un discovery folositi rmformat [blade]# rmformatLooking 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 sistemmount -F hsfs -o ro /dev/dsk/c0t2d0s2 /mountpointAsadar 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)c0t0d0s42.Se creaza un zpool zpool create datazone c0t0d0s4 3.Se creaza un spatiu (filesystem pentru user)zfs create datazone/homezfs create datazone/home/oracleIntrun final totul va arata cam asa:[blade]# zfs list NAME USED AVAIL REFER MOUNTPOINTdatazone 172K 19.6G 32K /datazonedatazone/home 63K 19.6G 32K /datazone/homedatazone/home/oracle 31K 19.6G 31K /datazone/home/oracleCrearea grupului, user-ului pentru a instala si folosi database-ul groupadd oinstall && groupadd dba useradd -d /datazone/home/oracle -m -s /bin/ksh oracleNote : Puteti folosi oricare alt shell in solaris 10 , e disponibil si bash dar eu prefer KornShell deoarecee 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/tmpSe vor atribui drepturile de ownership asupra ierarhiei de directoare user-ului oraclechown -R oracle:oinstall /datazone/home/oracleUserului oracle i se va atribui un passwordpasswd oracleSe va crea un fisier .profile pentru userul oracle care va fi populat cu uramtoarele date###BEGIN###Database required export ORACLE_BASE=/datazone/home/oracleexport ORACLE_HOME=$ORACLE_BASE/product/11/dbexport PATH=$ORACLE_HOME/bin:$PATHexport TMP=/datazone/home/oracle/tmpexport TMPDIR=/datazone/home/oracle/tmpexport ORACLE_UNQNAME=database_nameexport ORACLE_SID=database_name###Korn shell customizationEDITOR=viexport EDITORset -o vi HISTSIZE=10000HISTFILE=$ORACLE_BASE/.ksh_historyexport HISTFILEexport HISTSIZEPS1="[oracle]> "###ENDNote: 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 necesarAvand 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_swapActivarea partitiei swapswap -a /dev/zvol/dsk/datazone/home/oracle/ora_swapList swap[blade]# swap -lswapfile dev swaplo blocks free/dev/dsk/c0t0d0s1 136,9 16 1056704 1054880/dev/zvol/dsk/datazone/home/oracle/ora_swap 256,1 16 4194288 4194288Modificari la nivel de systemDesi 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)" oracleprojmod -sK "project.max-sem-nsems=(priv,256,deny)" oracleprojmod -sK "project.max-sem-ids=(priv,100,deny)" oracleprojmod -sK "project.max-shm-ids=(priv,100,deny)" oracleecho "set maxuprc=16384" >> /etc/systemecho "set max_nprocs=30000" >> /etc/systemecho "set shmsys:shminfo_shmmax=3221225472" >> /etc/systemprojadd 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 rebootReaduc 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/installetionSe 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@bladePentru a porni procesul de instalare a database-ului [oracle]> cd installation/database/ && ./runInstallerDe aici inainte procesul de instalare este interactiv , asadar am facut un slide cu imaginiOracle Database 11g Release2 installer screenshotsO 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. Edited April 1, 2012 by pyth0n3 Quote Link to comment Share on other sites More sharing options...