ot Qvor Ivanov(8-03-2004)

reiting (11)   [ dobre ]  [ zle ]

Printer Friendly Variant za otpechatvane

Instalatsiia na Oracle 10g pod Linux x86

V nachaloto iskam da predupredia, che tova ne e rukovodstvo za instalirane na Production sistema. Poznaniiata mi v oblastta na Linux ne sa tolkova dulboki, kolkoto mi se iska. Za tova, ako sum napravil neshto, koeto ne mozhe da si pozvoli edin Linux guru – molia za izvinenie.

Iskam da blagodaria i na Geroy, koito mi okaza beztsenna pomosht. To e moia lichen Linux guru

Oracle e utvurdena sistema za upravlenie na bazi ot danni. Vupreki napreduka na bezplatnite open-source SUBD kato MySQL i PostgeSQL, vse oshte za seriozna rabota triabva seriozna BD. Novata versiia Oracle 10g durzhi rekorda za proizvoditelnost – 1 184 893 tranzaktsii v minuta (tpmC) vurhu HP Integrity rx5670 Cluster 64P s OS Red Hat Enterprise Linux AS 3 (http://www.tpc.org/tpcc/results/tpcc_perf_results.asp). Oracle dava zhivot i na nai-goliamata biznes BD za 2003 g. – 29 232 GB danni na France Telecom (http://www.wintercorp.com/vldb/ 2003_TopTen_Survey /TopTenWinners.asp). Pri tova vseki mozhe da si svali funktsionalno neogranicheno kopie na poslednata versiia na Oracle softuera (http://otn.oracle.com/software/products/database/oracle10g/index.html), ako e suglasen sus usloviiata. Eto chast ot tiah:

”License Rights
We grant you a nonexclusive, nontransferable limited license to use the programs only for the purpose of developing a single prototype of your application, and not for any other purpose...”

Ako tova predizvikva vuv vas niakakuv gudel, zapretvaite rukavi i da zapochvame.
Instalatsiiata na Oracle 10g for Linux x86 e znachitelno oprostena ot tazi na predishnite versii. Tova pozvoli na men, chovek, koito suvsem ne e „na vutre” s administriraneto na Linux, da se spravia s pomoshtta na Oracle Database Installation Guide for UNIX Systems (http://download.oracle.com/docs/pdf/B10811_01.pdf).

Da zapretvame rukavi. Testovata instalatsiia napravih na Compaq Prolinat ML 350 G3 survur sus protsesor Intel Xeon 2.8 GHz, 512 MB RAM i 3 x 36 GB SCSI diska. Spored Oracle se poddurzha vseki harduer, na koito se poddurzha Red Hat AS. Instalirah go na Red Hat Advanced Server 2.1 (chist, bez fiksove). Spored Oracle se poddurzha samo Red Hat Advanced Server 2.1 i 3 i SuSE SLES8. Vupreki tova chuh, che ima i uspeshni instalatsii na vurhu Fedora.

1. Podgotovka na OS

V Installation Guide sa opisani niakoi neobhodimi paketi i tehnite versii. Eto s kakvi instalirah az:
# rpm –q make
make-3.79.1-8
# rpm –q bunutils
bunutils-2.11.90.0.8-12
# rpm –q gcc
gcc-2.96-108.1
# rpm –q openmotif
openmotif-2.1.30-11

Neobhodimi sa i slednite fiksove za RH AS 2.1:

RHSA-2003:195-06
Updated kernel addresses security vulnerabilities
RHSA-2003:022-09
Updated glibc packages fix vulnerabilities in resolver

Nalichieto im e silno preporuchitelno, osobeno za production databases, no ne i zadulzhitelno. Az ne sum gi slagal, t.k. instalirah testov survur. Za da proverite dali e instaliran update RHSA-2003:195-06 napishete:
# uname -r
2.4.9-e.25
Pri men rezultata e
2.4.9-e.3smp
Krupkata mozhe da se iztegli ot
https://rhn.redhat.com/errata/RHSA-2003-195.html

Za da proverite dali e instaliran update RHSA-2003:022-09:
# rpm -q glibc
glibc-2.2.4-31
Pri men rezultata e
glibc-2.2.4-26
Krupkata mozhe da se iztegli ot
https://rhn.redhat.com/errata/RHSA-2003-022.html

2. Suzdavane na neobhodimite grupi i potrebiteli

Za instalatsiia sa neobhodimi grupite dba (grupata na administratorite na bazata) i oinstall (neobhodima samo za instalatsiiata). Kum tezi grupi triabva da prinadlezhi potrebitelia oracle, ot koito se startira instalatsiiata. Neobhodimo e i da ima potrebitel nobody.
# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba oracle
# passwd oracle

Za da proverim dali potrebitelia e korektno suzdaden mozhe da polzvame id:
# id oracle
uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba)

Za da proverim dali ima potrebitel nobody:
# id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)

3. Nastroiki na parametrite na Kernel

Oracle e sistema s iziskvaniia i kum kernel parametrite. Eto iziskvaniiata, spored installation guide:

Parametur Stoinost Fail
semmsl 250 /proc/sys/kernel/sem
semmns 32000 /proc/sys/kernel/sem
semopm 100 /proc/sys/kernel/sem
semmni 128 /proc/sys/kernel/sem
shmall 2097152 /proc/sys/kernel/shmall
shmmax (physical memory)/2 /proc/sys/kernel/shmmax
shmmni 4096 /proc/sys/kernel/shmmni
file-max 65536 /proc/sys/fs/file-max
ip_local_port_range 1024 65000 /proc/sys/net/ipv4/ip_local_port_range

Nastroikite, neobhodimi pri men, biaha:
echo "250 32000 100 128" > /proc/sys/kernel/sem
echo "65536" > /proc/sys/fs/file-max
echo “1024 65000” > /proc/sys/net/ipv4/ip_local_port_range
echo “262266880” > /proc/sys/kernel/shmmax

4. Posledni stupki predi instalatsiiata

Ostava da napravim neobhodimite direktorii i da razopakovame arhiva. Az instalirah vsichko na edin SCSI disk, montiran v /u01. Tova ne e nai-dobroto reshenie, no vsushtnost za nai-dobroto reshenie sa neobhodimi pone 20 diska (-:
# mkdir -p /u01/app/oracle
# chown -R oracle:oinstall /u01/app/oracle
# chmod -R 775 /u01/app/oracle

Kopirame instalatsiiata ot cd-to...
# mount /dev/cdrom /mnt/cdrom
# cd /u01
# cp /mnt/cdrom/ship.db.cpio.gz .
# umount /dev/cdrom
... i ia razarhivirame
# gunzip ship.db.cpio.gz
# cpio –idmv Instalatsiiata se izsipva vuv direktoriia Disk1.

Triabva da nastroim i obkruzhenieto na potrebitelia oracle predi da pusnem samata instalatsiia. Zadavat se bazova direktoriia za vsichki Oracle instalatsii (ORACLE_BASE), direktoriia za instalatsiia na nastoiashtiia produkt (ORACLE_HOME) i ime na BD, koiato shte suzdadem po-kusno (ORACLE_SID). Za tselta redaktirah faila .bash_profile ot /home/oracle, kato mu dobavih slednite redove:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/10.1.0.2
export ORACLE_SID=TEST10G

Bazovite direktoriia triabva da bude edna za vsichki instalirani na kompyutura Oracle produkti. Razlichni versii (primerno 9i i 10g) mogat da suzhitelstvat bezproblemno, pri uslovie, che sa v edin obsht oracle_base i razlichni oracle_home.

Osven tova triabva da se dobavi i $ORACLE_HOME/bin kum putia. Tova postignah kato promenih reda, ukazvasht path na
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin


5. Instalatsiia na softuera

Instalatsiiata e grafichna, pod Java. V predishnite versii (Oracle 9i i po-niski) triabvashe da se iztegli spetsialna versiia na jvm. V 10g veche instalatora se opravia sam. No triabva da se startira pod X, i to kato potrebitel oracle
$ startx

Startira se Konsole (ili konzolata na Gnome, ili druga konzola pod X) i se startira samiia instalator
$ cd /u01/Disk1
$ ./runInstaller

Purvo izliza Welcome screen. Sledvashtiiat ekran ni pita kude da slozhi Inventory. Priema se stoinostta po podrazbirane, ako niama predishna instalatsiia na niakakuv oracle softuer. Pri natiskane na Next izkacha popup screen, koito ni kazva da pusnem skripta orainstRoot.sh kato root.

Za tselta se puska druga konzola:
$ su –
# cd /u01/app/oracle/oraInventory/
# ./orainstRoot.sh

Bez da zatvariame konzolata nastiskame continue na popup screen-a. Sled tova priemame file locations. Tova e direktoriiata, v koiato da se instalira softuera. Ne e zadulzhitelno sled tova da se slagat i failovete s danni v neia.

Na sledvashtiiat ekran izbirame tip na instalatsiia. Az izbrah Enterprise edition, kato nai-pulna s blaginki. Pri natiskane na Next instalatora proveriava OS. Ako ne e instalirana krupkata za iadro 2.4.9-e.25 izdava preduprezhdenie. Natiskame next i potvurzhdavame s Yes

Na sledvashtiiat ekran triabva da izberem kakva BD da suzdade instalatora. Izbirame Do not create starter database. Ako instalatsiiata e uspeshna, posle shte startirame Database Configuration Assistant.

Stigame do zavetniiat buton Install. Sled natiskaneto mu, pri predishnite versii zapochvashe istinskata muka po popraviane na make failove. CHest za Oracle e, che nastoiashtata instalatsiia ne grumva nito vednuzh (pri pravilno konfigurirana OS)

Ako vse pak grumne na 71% za ins_net_client.mk znachi ne e instaliran gcc. Sled instalatsiia na gcc produlzhavame s retry.

Na kraia na instalatsiiata izliza popup, koito ni podkanva (otnovo kato root) da startirame /u01/app/oracle/product/10.1.0.2/root.sh. Startirame go v konzolata, v koiato sme root. Na vuprosa kude e lokalnata bin direktoriia natiskame enter. Sled kato priklyuchi skripta (otnema mu okolo minuta-dve) potvurzhdavame s OK na instalatora.

Izlizame s Exit.


6. Suzdavane na BD

Sled kato imame veche instaliran softuer, triabva i da go vpregnem v deistvi. Za tselta triabva da suzdadem BD, koiato da upravliava. Sredstvoto, predostaveno ni za tazi tsel e Database Configuration Assistant i raboti pod X (spomenah li, che Java e lyubima sreda na Oracle?). Ot Konsole startirame:
$ dbca

Ako ne trugne, znachi niama ukazan put kum $ORACLE_HOME/bin

Na Welcome ekrana natiskame next. Sled tova triabva da izberem s kakvo sme se zahvanali. Izbirame “Create a Database”.

Na sledvashtiiat ekran predstoi da izberem tipa na BD, koiato shte suzdavame. Transaction Processing (ili OLTP) e baza, v koiato shte ima mnogo potrebiteli s malki tranzaktsii, koito postoianno shte promeniat dannite. Data Warehouse e BD, koiato izpulniava predimno golemi po obem i malko na broi zaiavki, koito sa glavno read-only. General purpose e opit da se nameri kompromis mezhdu dvata tipa. Ot izbora tuk zavisi kak shte bude razpredelena posle pametta, kakto i drugi parametri na BD. Az preporuchvam Custom database.

Sled tova triabva da vuvedem Global Database Name i SID za novata baza. SID triabva da e unikalno za survura – primerno TEST10G. Imeto triabva da e ukazano i v promenlivata na obkruzhenieto ORACLE_SID (zadadeno v .bash_profile). Global name se sustoi ot SID i domein, primerno TEST10G.us.acme.com (standartno sravnenieJ). Az izbiram
Global name -> TEST10G.WORLD
SID -> TEST10G

Sled tova triabva da zadadem niakoi nastroiki po upravlenieto na BD. Silno preporuchitelno e da izberem “Configure the Database with Enterprise Manager”. Edna Oracle BD mozhe da se upravliava i chrez prosta tekstova konzola, no Enterprise Manager e goliamo ulesnenie.

Sledvashtiiat ekran ni predlaga da zadadem paroli na niakoi ot potrebitelite na BD. Nai-vazhnite sa SYS i SYSTEM. Potrebiteliat s nai-mnogo prava e SYS. Toi edinstven mozhe da startira i spira BD. SYSTEM e drug silen potrebitel, s koito obiknoveno raboti administratora na BD.

Sledvashtiiat vazhen izbor e kak shte se suhraniavat failovete s danni. Nai lesnoto reshenie e da se zapishat kato failove na failova sistema. Nai-trudniia (za suzdavane i za poddruzhka) e Raw devices. Toi se izpolzva samo ako se izgrazhda kluster (RAC). ASM e nova tehnologiia, vuvedena v 10g i kato takava ne bih ia izpolzvam pone do vtoriia patchset J. Za tova izbiram filesystem.

Na ekrana Database File Locations izbiram “Use Common Location for All Database Files” i ukazvam /u01/app/oracle. Tova oznachava, che samite failove s danni shte se suzdadat v /u01/app/oracle/TEST10G

Osmata stupka ot wizard-a predlaga izbor na Flash recovery area (neobhodima e ako se pravi backup). Devetata ni dava izbor kakvo da vklyuchim v bazata, koiato predstoi da se suzdade. V desetata ima razni fini nastroiki ,koito sa opisani v dokumentatsiiata.

Na sledvashtiiat ekran mozhe da promenim razmera ili miastoto na failovete na BD. Sled tova samo potvurzhdavame, che iskame da suzdadem baza, zarezhdame se s turpenie i natiskame Finish.

7. Dopulnitelni nastroiki

Za da dostigame bazata e neobhodimo da se napraviat oshte niakolko nastroiki.

1. Nastroika na Listener
Listener e uslugata, koiato priema zaiavkite za vruzka kum BD ot klientite. Za da go podkarame mozhem da izpolzvame Oracle Net Manager (otnovo napisan na Java instrument, rabotesht samo pod X):
$ netmgr

Drugiiat (i preprochitan ot men) variant e da redaktirame faila $ORACLE_HOME/network/admin/listener.ora. Eto edna primerna nastroika:
# File: /u01/app/oracle/product/10.1.0.2/network/admin/listener.ora
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = TEST10G.world)
      (ORACLE_HOME = /u01/app/oracle/product/10.1.0.2)
      (SID_NAME = TEST10G)
    )
  )
LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.38)(PORT = 1521))
  )

V purvata sektsiia se opisvat bazite, koito obsluzhva listener-a. Vtorata sektsiia opisva adresa i porta na koito da „slusha”. Sled kato nastroim tozi fail triabva da startirame samiia listener. Tova stava s komandata
$ lsnrctl start

2. Nastroika na TNSNames
Faila $ORACLE_HOME/network/admin/tnsnames.ora opisva bazite s koito shte rabotim (kato klient). Tozi fail se izpolzva ot oracle klienta, koito shte startirame. Faila mozhe da se generira s Oracle Net Manager, a mozhe da se napishe i ruchno:
# File: /u01/app/oracle/product/10.1.0.2/network/admin/tnsnames.ora
TEST10G.WORLD =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.38)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = TEST10G.world)
    )
  )

Vazhno e tuk da zadadem adresa i porta, na koito raboti listener i SERVICE_NAME, koito e opisan v listener.ora kato GLOBAL_DBNAME.
Sled tezi nastroiki mozhem uspeshno

3. Da podkarame vsichko
Kato star Windows potrebitel smiatam momenta za podhodiasht za restart. Sled tova vsichko se startira v sledniia red.

- startirame Listener
$ lsnrctl start

- startirame instantsiia na BD
$ sqlplus /nolog
SQL> connect sys@test10g.world as sysdba
SQL> startup
SQL> exit

- startirame uslugata Enterprise Manager
$ emctl start dbconsole

Veche mozhem da upravliavame bazata ot http://localhost:5500/em

Qvor Ivanov

Molia ne se pritesniavaite da izprashtate mneniia, preporuki i vuprosi na
yivanov@abv.bg



<< Naruchnik za izpolzvane na GnuPG (CHast I) | Da pogovorim otnovo za Samba >>