You are on page 1of 13

Kin trc Oracle Database Server

ng vo ngy 14 Thang Tam 2011 lc 22:40 bi Duy Khanh Mc: IT, Oracle, SQL || Tags: Oracle, SQL Bnh lun (4)

Oracle Database l h thng qun l c s d liu quan h (RDBMS) c tch hp cho php qun l thng
thng tin mt cach ton din. Trong bi ny, chng ta s phn tch qua v kin trc ca Oracle Database Server
nh th no nh

I Kt ni ti Oracle Server :

Mt User c th kt ni ti Oracle Server thng qua mt trong ba cch sau:

User s logon trc tip trn h thng ang chy Oracle Instance v s dng cac ng dng, cng c
thao tac ln c s d liu ca h thng ny.

User s dng ng dng, cng c t mt may trm no v kt ni ti Oracle Server (m hnh ClientServer). Trong m hnh ny chng ta c 2 thnh phn l: Front-End (client) v Back-End (Server) c kt ni
thng qua mng.

User s truy xut ti mt may ch ng dng (Application Server) trung gian bng cac cng c (nh Web
Browser chn hn) t mt may trm (Client). Sau may ch ng dng trung gian ny s thay mt Client tng
tac vi may ch c s d liu (Database Server).
Qu trnh kt ni ti Database Instance:

V User process v Server process: V mt l thuyt th User khng th thao tac trc tip tip trn c s d liu
c. M User s to ra cac yu cu (gi l User process), cac yu cu ny s c gi ti Server v Server s
thc hin cac yu cu ny (Server Process) tac ng ln c s d liu.
c s d liu Oracle, vic kt ni ti mt Database Instance c hai khai nim m chng ta cn bit
lConnection v Session.

Connection: L qua trnh giao tip gia mt User Process v mt Instance. Con ng lin lc ny c
th c thit lp nh mt trong ba cach kt ni ti Oracle Server m mnh ni trn. C ngha l mt h
thng c th va chy c User Process v Oracle Database, hoc c th tach ra, kt ni thng qua mt mng.

Session: L mt kt ni c th t mt User ti mt Instance thng qua User Process. V d khi mt User


s dng SQL*Plus ng nhp vo Oracle Server, nu qua trnh ng nhp tht bi th s khng c chuyn g
xy ra. Nu User ng nhp thnh cng, th mt Session (phin lm vic) s c thit lp t y. Session s
tn ti cho ti khi User ngt kt ni khi h thng.

II Oracle Instance Architecture:


Kin trc tng quat ca Oracle Database Server

Nh trong hnh cho thy, kin trc ca Oracle Server bao gm 2 thnh phn chnh l: Oracle
Instance vOracle Database.

1) Oracle Database Memory Structure:

Oracle Database phn chia v s dng cu trc b nh theo nhiu mc ch khac nhau. V d b nh lu tr
on code chng trnh ang chy, d liu c share gia cac User hoc cac d liu ring t cho mi kt ni
ca User n Server,
C hai cu trc b nh c bn trong mt Instance:

System Global Area (SGA): L vng b nh chia s c s dng lu tr d liu v cac thng tin
iu khin ca Oracle server. c ch nh khi mt Instance c khi ng, v l thnh phn c bn ca mt
Oralce Instance.

Program Global Area (PGA): L mt phn cu trc b nh lu tr dnh cho 1 User process kt ni ti 1
Instance bao gm d liu v thng tin iu khin cho mt Server hoc mt Background process. c ch nh
khi mt Server Process c khi ng.

a) Cc thnh phn trong System Global Area (SGA):


*** Shared pool: c dng lu tr nhng on SQL va c thc thi gn y nht v nhng nh ngha d
liu c dng gn y nht.

Shared Pool bao gm:

Library cache: Lu tr nhng nh ngha v nhng on lnh SQL v PL/SQL va c thc thi gn y
nht theo thut gii Least Recently Used (LRU). Library cache bao gm 2 cu trc l Shared SQL area v
Shared PL/SQL area. Kch thc ca vng ny c xac nh bi Shared pool sizing.

Data dictionary cache: Thu thp nhng nh ngha c dng gn y nht trn c s d liu bao gm
cac thng tin v Database file, tables, indexes, columns, user, privileges,Trong qua trnh phn tch c phap
on lnh, Server Process s c cac thng tin nh ngha Data dictionary cache ly tn cac i tng, xac
nhn truy cp,Kch thc ca vng ny c xac nh bi Shared pool sizing.

Control structures.
*** Database Buffer Cache: Lu tr nhng bn copy ca Block d liu c c t Data File. Khi mt on
SQL c thc thi, th Server Process s c cac thng tin t Database buffer cache ly cac block d liu
cn thit, iu ny gip cho tc hot ng ca h thng s cao hn v c trn cache s nhanh hn l c trn
a cng
. Nu cac block d liu khng c trong Database buffer cache th Server process mi c d liu t
data file. Database buffer cache cng s dng thut gii LRU nh Shared Pool.

Database buffer cache bao gm cac thng s:

DB_CACHE_SIZE (bt buc)

DB_KEEP_CACHE_SIZE (ty chn)

DB_RECYCLE_CACHE_SIZE (ty chn)

DB_nK_CACHE_SIZE (ty chn)


*** Redo Log Buffer: L mt bn ghi tm thi, ghi li tt c nhng thay i trn cac Data Block vi mc ch
chnh l phc hi d liu. c thc hin bi cac background process.

Mt s c im ca Redo log buffer:

Kch thc c xac nh bi tham s LOG_BUFFER.

Lu tr cac redo records (bn ghi hi phc) mi khi c thay i d liu.

Redo log buffer c s dng mt cach thng xuyn v cac thay i bi mt transaction c th nm an
xen vi cac thay i ca cac transactions khac.

B m c t chc theo kiu circular buffer (b m ni vng) tc l d liu thay i s tip tc c


np ln u sau khi vng m c s dng ht.
*** Large Pool: Cung cp mt vng nh ln, c cp phat cho cac trng hp nh: Vng b nh cho UGA, x
l I/O, sao lu v phc hi h thng. Khng ging nh Shared Pool, Large Pool khng s dng thut gii LRU.
Tham s xac nh ca Large Pool l LARGE_POOL_SIZE.

*** Java Pool v Streams Pool: Java Pool l vng dng cho cac Procedure vit bng Java. Stream Pool dng cho
Oracle Stream.

b) Cc thnh phn trong Program Global Area (PGA):

Program Global Area (OGA) l vng nh ring t bao gm d liu v thng tin iu khin ca mt Server
Process. Mi Server Process u c mt PGA ring bit. PGA bao gm:

Session information.

Cursor information.

SQL execution work area.

2) Process Architecture:
Trong h thng Oracle Database th Process c th c chia lm ba nhm l:

User Process: Bao gm ng dng hay cng c kt ni ti Oracle Database.


Database Process: Bao gm Server Process v Background Process. Trong Server Process c to
ra khi mt Session c thit lp. Cn Background Process c khi ng mi khi Instance c khi ng.
Daemon/Application Process: Bao gm Networking listeners v Grid infrastructure daemons.

+ V Server Process:

i vi Dedicated Server: Mt Server Process s phc v cho 1 User Process (1-1).

i vi Shares Server: Mt Server Process s phc v cho nhiu User Process (1-n)
+ V Background Process: Thc hin cac chc nng thay cho li gi tin trnh x l tng ng. N iu khin
vo ra, cung cp cac c ch x l song song nng cao hiu qu v tin cy.
C cc Background Process:

Database writer process (DBWn)

Log Writer process (LGWR)

Checkpoint process (CKPT)

System monitor process (SMON)

Recoverer process (RECO)

Job queue coordinator (CJQ0)

Job slave processes (Jnnn)

Archiver processes (ARCn)

Queue monitor processes (QMNn)


Trong cac Background Process trn th DBWn, PMON, CKPT, LGWR, SMON v RECO l cac Background
Process bt buc phi c. Chng ta hy phn tch qua v chng

++ Database Writer (DBWn):

Database Writer (DBWn) s c nhim v ghi cac modified (dirty) buffer t Database buffer xung a (Data files).
Nhng trng hp m DBWn thc hin cng vic ghi trn:

ht cac free buffers.

C qua nhiu dirty buffers.

C mi 3 giy mt ln.

Xy ra Checkpoint.
+++++ Gii thch thm v cac trng thai ca buffer

Free: trng.

Pinned: C Process ang thc thi trn buffer ny.

Dirty: Ni dung trong buffer c thay i, cn c ghi xung datafile.


++ Log Writer Process (LGWR):

Log Writer Process (LGWR): C nhim v ghi cac Redo log buffer xung mt Redo log file.
Cac trng hp LGWR thc hin cng vic ghi trn:

Khi User Process thc hin commit mt transaction.

Khi Redo log buffer y.

Trc khi DBWn ghi d liu xung a.

C mi 3 giy mt ln.

++ Checkpoint (CKPT):

Checkpoint (CKPT) c th c coi nh l mt s kin khi thc hin ghi tt c cac dirty buffer trong SGA, bao
gm c nhng d liu c commit v cha c commit xung Data files.
++ System Monitor Process (SMON):

System monitor process (SMON) c cac nhim v:

Phc hi li nhng thay i trong redo logs.

M database cho User truy xut.

Phc hi cac transactions cha c commit.


++ Process Monitor Process (PMON):

Process Monitor Process (PMON) c nhim v thu dn sau khi mt Process tht bi:

Quay tr li transaction.

Gii phng blocks.

Gii phng nhng ti nguyn khac.

Khi ng li cac dispathcers.

T ng ng k Database services vi Listeners

III Oracle Database Architecture:

Oracle database l tp hp cac d liu c xem nh mt n v thnh phn (Unit).

Database c nhim v lu tr v tr v cac thng tin lin quan.

Database c xem xt di hai gc cu trc logic v cu trc vt l . Tuy vy, hai cu trc d liu ny
vn tn ti tach bit nhau, vic qun l d liu theo cu trc lu tr vt l khng gy nh hng ti cu trc
logic
Oracle database c xac nh bi tn mt tn duy nht v c quy nh trong tham s DB_NAME ca
parameter file.

Cu trc vt l v logic ca Database

1) Cu trc vt l ca Database:
Cu trc vt l bao gm tp hp cac control file, online redo log file v cac datafile:
a) Datafiles:
Mi mt Oracle database u c th c mt hay nhiu datafiles. Cac database datafiles cha ton b d liu trong
database. Cac d liu thuc cu trc logic ca database nh tables hay indexes u c lu tr di dng vt l
trong
cac
datafiles
ca
database.
Mt s tnh cht ca datafiles:

Mi datafile ch c th c s dng trong mt database.


Bn cnh , datafiles cng cn c mt s tnh cht cho php t ng m rng kch thc mi khi
database ht ch lu tr d liu.

Mt hay nhiu datafiles to nn mt n v lu tr logic ca database gi l tablespace.

Mt datafile ch thuc v mt tablespace.


D liu trong mt datafile c th c ra v lu vo vng nh b m ca Oracle. V d: khi mt user mun truy cp

10

d liu trong mt table thuc database. Trong trng hp thng tin yu cu khng c trong cache memory hin
thi, n s c c trc tip t cac datafiles ra v lu tr vo trong b nh.
Tuy nhin, vic b sung hay thm mi d liu vo database khng nht thit phi ghi ngay vo cac datafile. Cac
d liu c th tm thi ghi vo b nh gim thiu vic truy xut ti b nh ngoi ( a) lm tng hiu nng s
dng h thng. Cng vic ghi d liu ny c thc hin bi DBWn background process.
b) Redo Log Files:
Mi Oracle database u c mt tp hp t 02 redo log files tr ln. Cac redo log files trong database thng
c gi l database's redo log. Mt redo log c to thnh t nhiu redo entries (gi l cac redo records).
Chc nng chnh ca redo log l ghi li tt c cac thay i i vi d liu trong database. Redo log files c s
dng bo v database khi nhng hng hc do s c. Oracle cho php s dng cng mt lc nhiu redo log
gi l multiplexed redo log cng lu tr cac bn sao ca redo log trn cac a khac nhau.
Cac thng tin trong redo log file ch c s dng khi phc li database trong trng hp h thng gp s c
v khng cho php vit trc tip d liu trong database ln cac datafiles trong database. V d: khi c s c xy ra
nh mt in bt cht chng hn, cac d liu trong b nh khng th ghi trc tip ln cac datafiles v gy ra hin
tng mt d liu. Tuy nhin, tt c cac d liu b mt ny u c th khi phc li ngay khi database c m
tr li. Vic ny c th thc hin c thng qua vic s dng ngay chnh cac thng tin mi nht c trong cac
redo log files thuc datafiles. Oracle s khi phc li cac database cho n thi im trc khi xy ra s c.
Cng vic khi phc d liu t cac redo log c gi l rolling forward.
c) Control Files:
Mi Oracle database u c t nht mt control file. Control file cha cac mc thng tin quy nh cu trc vt l ca
database nh:

Tn ca database.

Tn v ni lu tr cac datafiles hay redo log files.

Time stamp (mc thi gian) to lp database, ...


Mi khi no mt instance ca Oracle database c m, control file ca n s c s dng xac nh data files
v cac redo log files i km. Khi cac thnh phn vt l c database b thay i (v d nh, to mi datafile hay redo
log
file),
Control
file
s
c
t
ng
thay
i
tng
ng
bi
Oracle.
Control file cng c s dng n khi thc hin khi phc li d liu.

2) Cu trc Logic ca Database:


Cu trc logic ca Oracle database bao gm cac i tng tablespaces, schema objects, data blocks, extents, v
segments.
a) Tablespaces:
Mt database c th c phn chia v mt logic thnh cac n v gi l cac tablespaces, Tablespaces thng
bao gm mt nhm cac thnh phn c quan h logic vi nhau.

11

Mi quan h gia Databases, Tablespaces, v Datafiles

Mi database c th phn chia v mt logic thnh mt hay nhiu tablespace.

Mi tablespace c th c to nn, v mt vt l, bi mt hoc nhiu datafiles.

Kch thc ca mt tablespace bng tng kch thc ca cac datafiles ca n.

Kch thc ca database cng c th xac nh c bng tng kch thc ca cac tablespaces ca n.
b) Schema v Schema Objects:
Schema l tp hp cac i tng (objects) c trong database. Schema objects l cac cu trc logic cho php tham
chiu trc tip ti d liu trong database. Schema objects bao gm cac cu trc nh tables, views, sequences,
stored procedures, synonyms, indexes, clusters, v database links.
c) Data Blocks, Extents, and Segments:

Oracle iu khin khng gian lu tr trn a cng theo cac cu trc logic bao gm cac data blocks, extents, v
segments.
Oracle Data Blocks:L mc phn cp logic thp nht, cac d liu ca Oracle database c lu tr trong cac
data blocks. Mt data block tng ng vi mt s lng nht nh cac bytes vt l ca database trong khng gian
a cng. Kch thc ca mt data block c ch ra cho mi Oracle database ngay khi database c to lp.

12

Database s dng, cp phat v gii phng vng khng gian lu tr thng qua cac Oracle data blocks.
Extents: L mc phn chia cao hn v mt logic cac vng khng gian trong database. Mt extent bao gm mt s
data blocks lin tip nhau, cng c lu tr ti mt thit b lu gi. Extent c s dng lu tr cac thng tin
c cng kiu.
Segments: L mc phn chia cao hn na v mt logic cac vng khng gian trong database. Mt segment l mt
tp hp cac extents c cp phat cho mt cu trc logic
Ng Duy Khnh http://Khanh.Com.Vn
(Bi vit c tham kho ti liu t Oracle v Blog ca ch Moon)

13

You might also like