13
Kiến trúc Oracle Database Server Đăng vào ngày 14 Thng Tm 2011 lúc 22:40 bởi Duy Khnh Mục: IT , Oracle , SQL || Tags: Oracle , SQL Bình luận (4) Oracle Database là hệ thống quản lý cơ sỡ dữ liệu quan hệ (RDBMS) được tích hợp để cho phép quản lý thông thông tin một cch toàn diện. Trong bài này, chúng ta sẽ phân tích qua về kiến trúc của Oracle Database Server như thế nào nhé . I – Kết nối tới Oracle Server : Một User có thể kết nối tới Oracle Server thông qua một trong ba cách sau: User sẽ logon trực tiếp trên hệ thống đang chạy Oracle Instance và sử dụng cc ứng dụng, công cụ để thao tc lên cơ sở dữ liệu của hệ thống này. User sử dụng ứng dụng, công cụ từ một my trạm nào đó và kết nối tới Oracle Server (mô hình Client-Server). Trong mô hình này chúng ta có 2 thành phần là: Front-End (client) và Back-End (Server) được kết nối thông qua mạng. User sẽ truy xuất tới một my chủ ứng dụng (Application Server) trung gian bằng cc công cụ (như Web Browser chẳn hạn) từ một my trạm (Client). Sau đó my chủ ứng dụng trung gian này sẽ thay mặt Client tương tc với my chủ cơ sỡ dữ liệu (Database Server). Quá trình kết nối tới Database Instance: Về User process Server process: Về mặt lý thuyết thì User không thể thao tc trực tiếp tiếp trên cơ sỡ dữ liệu được. Mà User sẽ tạo ra cc yêu cầu (gọi là User process), cc yêu cầu này sẽ được gửi tới Server và Server sẽ thực hiện cc yêu cầu này (Server Process) để tc động lên cơ sỡ dữ liệu. 1

Kiến Trúc Oracle Database Server

Embed Size (px)

DESCRIPTION

Mô tả tổng quan về oracle database

Citation preview

Kin trc Oracle Database Serverng vo ngy 14 Thang Tam 2011 lc 22:40 biDuy KhnhMc:IT,Oracle,SQL||Tags:Oracle,SQLBnh 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 cch 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 cc ng dng, cng c thao tc ln c s d liu ca h thng ny.

User s dng ng dng, cng c t mt my trm no v kt ni ti Oracle Server (m hnh Client-Server). 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 my ch ng dng (Application Server) trung gian bng cc cng c (nh Web Browser chn hn) t mt my trm (Client). Sau my ch ng dng trung gian ny s thay mt Client tng tc vi my ch c s d liu (Database Server).

Qu trnh kt ni ti Database Instance:

VUser processvServer process: V mt l thuyt th User khng th thao tc trc tip tip trn c s d liu c. M User s to ra cc yu cu (gi l User process), cc yu cu ny s c gi ti Server v Server s thc hin cc yu cu ny (Server Process) tc 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 lConnectionvSession.

Connection: L qu trnh giao tip gia mtUser Processv mtInstance. Con ng lin lc ny c th c thit lp nh mt trong ba cch 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 tch 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 qu trnh ng nhp tht bi th s khng c chuyn g xy ra. Nu User ng nhp thnh cng, th mtSession(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 qut ca Oracle Database Server

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

1) Oracle Database Memory Structure:

Oracle Database phn chia v s dng cu trc b nh theo nhiu mc ch khc nhau. V d b nh lu tr on code chng trnh ang chy, d liu c share gia cc User hoc cc 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 cc 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 xc 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 cc thng tin v Database file, tables, indexes, columns, user, privileges,Trong qu trnh phn tch c php on lnh, Server Process s c cc thng tin nh ngha Data dictionary cache ly tn cc i tng, xc nhn truy cp,Kch thc ca vng ny c xc nh bi Shared pool sizing.

Control structures.

*** Database Buffer Cache:Lu tr nhng bn copy caBlockd liu c c tData File.Khi mt on SQL c thc thi, thServer Processs c cc thng tin tDatabase buffer cache ly ccblockd 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 cc 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 cc 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 ccData Blockvi mc ch chnh l phc hi d liu. c thc hin bi cc background process.

Mt s c im ca Redo log buffer: Kch thc c xc nh bi tham s LOG_BUFFER.

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

Redo log buffer c s dng mt cch thng xuyn v cc thay i bi mt transaction c th nm an xen vi cc thay i ca cc transactions khc.

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 pht cho cc 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 xc nh ca Large Pool l LARGE_POOL_SIZE.

*** Java Pool v Streams Pool:Java Pool l vng dng cho cc 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 viDedicated Server: Mt Server Process s phc v cho 1 User Process (1-1).

i viShares Server: Mt Server Process s phc v cho nhiu User Process (1-n)

+ V Background Process:Thc hin cc chc nng thay cho li gi tin trnh x l tng ng. N iu khin vo ra, cung cp cc 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 cc Background Process trn th DBWn, PMON, CKPT, LGWR, SMON v RECO l cc 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 cc modified (dirty) buffer t Database buffer xung a (Data files).

Nhng trng hp mDBWnthc hin cng vic ghi trn:

ht cc free buffers.

C qu nhiu dirty buffers.

C mi 3 giy mt ln.

Xy ra Checkpoint.

+++++ Gii thch thm v cc trng thi 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 cc Redo log buffer xung mt Redo log file.

Cc trng hpLGWRthc hin cng vic ghi trn:

Khi User Process thc hincommitmt 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 ccdirty buffertrongSGA, bao gm c nhng d liu c commit v cha c commit xungData files.

++ System Monitor Process (SMON):

System monitor process (SMON)c cc nhim v:

Phc hi li nhng thay i trong redo logs.

M database cho User truy xut.

Phc hi cc 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 khc.

Khi ng li cc dispathcers.

T ng ng k Database services vi Listeners

III Oracle Database Architecture: Oracle database l tp hp cc d liu c xem nh mt n v thnh phn (Unit).

Database c nhim v lu tr v tr v cc 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 tch 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 xc 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 Database1) Cu trc vt l ca Database:Cu trc vt l bao gm tp hp cc control file, online redo log file v cc datafile:a) Datafiles:Mi mt Oracle database u c th c mt hay nhiu datafiles. Cc database datafiles cha ton b d liu trong database. Cc d liu thuc cu trc logic ca database nh tables hay indexes u c lu tr di dng vt l trong cc 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 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 cc 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 cc datafile. Cc 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. Cc 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 cc redo records).Chc nng chnh ca redo log l ghi li tt c cc 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 cc bn sao ca redo log trn cc a khc nhau.Cc 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 cc datafiles trong database. V d: khi c s c xy ra nh mt in bt cht chng hn, cc d liu trong b nh khng th ghi trc tip ln cc datafiles v gy ra hin tng mt d liu. Tuy nhin, tt c cc 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 cc thng tin mi nht c trong cc redo log files thuc datafiles. Oracle s khi phc li cc database cho n thi im trc khi xy ra s c. Cng vic khi phc d liu t cc redo log c gi l rolling forward.c) Control Files:Mi Oracle database u c t nht mt control file. Control file cha cc mc thng tin quy nh cu trc vt l ca database nh:

Tn ca database.

Tn v ni lu tr cc 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 xc nh data files v cc redo log files i km. Khi cc 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 cc i tng tablespaces, schema objects, data blocks, extents, v segments.

a) Tablespaces:Mt database c th c phn chia v mt logic thnh cc n v gi l cc tablespaces, Tablespaces thng bao gm mt nhm cc thnh phn c quan h logic vi nhau.

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 cc datafiles ca n.

Kch thc ca database cng c th xc nh c bng tng kch thc ca cc tablespaces ca n.

b) Schema v Schema Objects:Schema l tp hp cc i tng (objects) c trong database. Schema objects l cc cu trc logic cho php tham chiu trc tip ti d liu trong database. Schema objects bao gm cc 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 cc cu trc logic bao gm cc data blocks, extents, v segments.

Oracle Data Blocks:L mc phn cp logic thp nht, cc d liu ca Oracle database c lu tr trong cc data blocks. Mt data block tng ng vi mt s lng nht nh cc 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. Database s dng, cp pht v gii phng vng khng gian lu tr thng qua cc Oracle data blocks.

Extents: L mc phn chia cao hn v mt logic cc 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 cc thng tin c cng kiu.

Segments: L mc phn chia cao hn na v mt logic cc vng khng gian trong database. Mt segment l mt tp hp cc extents c cp pht cho mt cu trc logic

Ng Duy Khnh http://Khanh.Com.Vn(Bi vit c tham kho ti liu tOraclev Blog ca chMoon)

1