Professional Documents
Culture Documents
H NI 07/ 2002
MC LC
MC LC ...................................................................................................... 1 CHNG 1. CC IM MI TRONG ORACLE 9I........................................... 9 CHNG 2. CC THNH PHN KIN TRC................................................ 14
2.1. KIN TRC ORACLE SERVER ....................................................................................... 14 2.1.1. Oracle Instance............................................................................................................ 14 2.1.2. Oracle database ........................................................................................................... 19 2.1.3. Qun tr c s d liu Oracle ......................................................................................... 23 2.1.4. Thit lp cc tham s khi to nh hng ti kch c b nh SGA .................................... 23 2.2. KT NI TI ORACLE SERVER .................................................................................... 24 2.2.1. M hnh kt ni ............................................................................................................ 24 2.2.2. Mt s khi nim c bn lin quan n kt ni................................................................ 25 2.2.3. Kt ni ti database...................................................................................................... 25
Trang 1
PH LC................................................................................................... 266
A TI LIU THAM KHO................................................................................................. 266 B DANH MC CC HNH V ........................................................................................... 266
Trang 8
Cho php lu tr trn nhiu ch lu tr S lng ch lu tr ti a m ta c th s dng lu tr cc online redo log c tng ln t 5 ti 10. T ng qun l vng khng gian Oracle9i cho php qun l t ng vic gii phng v s dng cc vng khng gian c trong cc segments c lu tr trong cc locally managed tablespaces thng qua vic s dng mnh SEGMENT SPACE MANAGEMENT c trong cu lnh CREATE TABLESPACE. Qun tr vin c th s dng ch AUTO hoc MANUAL ch r kiu qun l khng gian m Oracle s s dng. Cp nht li cc global indexes mi khi thc hin thao tc bo tr partition Theo mc nh, c th c mt vi phn ca mt bng c phn khu (partitioned tables) trng thi khng s dng (nh du UNUSABLE) s c np vo trong global indexes. V ta cn xy dng li (rebuild) ton b global index. Oracle9i cho php thc hin t ng cng vic rebuild ny thng qua mnh UPDATE GLOBAL INDEX c trong cu lnh ALTER TABLE khi thc hin bo tr. Cho php s dng ng thi nhiu kch c block Oracle cho php s dng ng thi nhiu kch c blocks (multiple block sizes). Kch thc chun (standard block size) c quy nh trong tham s khi to DB_BLOCK_SIZE nhng cng c th m rng thm 4 gi tr kch thc block phi chun na (nonstandard block sizes). Cc kch thc blocks phi chun c ch r mi khi to tablespaces. Kch thc block chun c s dng cho SYSTEM tablespace v hu ht cc tablespaces khc. Vic h tr s dng nhiu kch c block s cho php thc hin trao i cc tablespaces ca cc database m khng c cng mt kch thc block. Qun l ng buffer cache Kch thc ca buffer cache c trong vng nh System Global Area c qun l ng. iu ny c ngha l gi tr ca tham s DB_BLOCK_BUFFERS (trong file tham s khi to) c th c thay th bi gi tr c trong tham s khc, tham s DB_CACHE_SIZE. Trong Oracle 9i, buffer cache li c phn chia thnh nhiu b m con (subcaches) nu c s dng ch multiple block sizes. Bn gi tr kch c block c ch ra trong 4 tham s DB_ nK_CACHE_SIZE tng ng . Qun l ng vng nh SGA Cc tham s khi to c th tc ng ti kch c ca vng nh SGA. V ta c th thay i kch c ca SGA d dng thng qua cu lnh ALTER SYSTEM SET. Qun l vic khi phc (undo) t ng Oracle s dng rollback segments lu tr cc thng tin cho khi phc. Vic phc hi (undo) bao gm roll back, undo, v thay i (changes) i vi database mi khi cn. Oracle 9i cho php ta to ring mt undo tablespace lu tr cc thng tin phc hi ny. Vic s
Trang 10
dng undo tablespace s lm gim bt tnh phc tp ca vic qun tr vng khng gian rollback segment, v cho php phc hi li cc thng tin di m khng s b trng ln nhau. Qun l files trong Oracle Mt im mi trong Oracle 9i l qun l files. Thng qua cc tham s khi to DB_CREATE_FILE_DEST v DB_CREATE_ONLINE_LOG_DEST_ n ta c th ch ra cho h thng cc ng dn c th lu tr cc file thuc tablespace, online redo log file hay control file. Oracle lun m bo qun l file duy nht trong h thng. T ng xo cc datafiles Oracle9i cung cp mt la chn cho php t ng xo b (remove) cc datafiles mi khi tablespace tng ng b hu thng qua cu lnh DROP TABLESPACE. Tu chn tng t trong cu lnh ALTER DATABASE TEMPFILE cng c s dng xo cc temporary file tng ng. Metadata API Mt PL/SQL package mi, DBMS_METADATA.GET_DDL, c a vo Oracle 9i cho php ta ly c cc siu d liu (metadata) Cc thng tin tng hp v cc schema object. Cc bng ngoi - External tables Oracle9i cho php ta truy cp theo kiu ch c cc d liu trong cc bng ngoi (external tables). External tables l cc tables m khng nm trong database, v c th cc khun dng (format) no . Cu lnh CREATE TABLE ... ORGANIZATION EXTERNAL c s dng ch ra metadata m t cho external table tng ng. Oracle cung cp iu khin truy cp ORACLE_LOADER, qua cung cp kh nng nh x d liu tng ng vi c php lnh trong control file. Tng cng cho constraint Ta s dng mnh USING INDEX trong cu lnh CREATE TABLE hay ALTER TABLE cho php ta ch r index mi khi s dng rng buc unique key hay primary key. Thm vo , ta cng c th ngn cn vic hu (dropping). File tham s trn server Oracle lu tr cc tham s khi to cho session trong file tham s di khun dng vn bn v c t ti cc client machine. Cc tham s khi to ca server nm trong file tham s trn server thng khun dng nh phn v c th c lu trong database. Temporary tablespace mc nh C th thm vo mnh mi DEFAULT TEMPORARY TABLESPACE vo cu lnh CREATE DATABASE cho php to temporary tablespace ngay trong thi gian to database. Tablespace ny s c s dng nh temporary tablespace mc nh.
Trang 11
t tn cho transaction Oracle cho php ta gn tn cho mi mt transaction. Tn ca transaction rt c ch cho vic phn bit gim thiu vic nhm ln gia cc transactions. Mt s thay i trong Oracle Database Configuration Assistant Oracle Database Configuration Assistant c mt s thay i trong thit k. Theo , n cung cp cc mu (templates) gip cho vic tit kim, gim bt vic nh ngha cc object trong database. Ngi dng cng c th to ra cc mu ny thng qua vic sa i cc mu c sn. Khi to database bng cng c Database Configuration Assistant ta cng c th thm vo ngay hoc sau cc khun mu gi l cc Oracles new Sample Schemas. Nhng schemas ny l nhng v d ti liu c bn trong Oracle. Qun l vic s dng index Ta thm mnh MONITORING USAGE vo trong cu lnh ALTER INDEX c th xc nh v qun l index khi n c thc hin. Lit k cc phn vng Oracle 9i gii thiu s dng lit k cc phn vng, n cho php ta ch ra mt danh sch cc gi tr ri rc tng ng vi cc partitioning column ca mi phn vng. Phng thc lit k phn vng (list partitioning method) c a ra nhm mc ch m hnh ho d liu phn tn i vi cc gi tr ri rc. Vic ny kh thc hin c bng cc phng php range partitioning (phn khu theo khong gi tr) hay hash partitioning (phn khu theo hm bm). Phn khu theo hm bm cho cc index-organized tables Oracle 9i cho php s dng phng php bm khi phn khu cc index-organized tables. cc phin bn trc, vic phn khu cho index-organized tables vn thc hin c nhng ch bng phng php range method. X l cc job queue process linh hot Cc job queue process c to mt cch linh hot v n ch cn ti s hiu ca processes c to thc hin cc jobs ca process ang sn sng cho vic thc hin. Tin trnh nn (background process) c tn l CJQ s m nhim cng vic ny. im mi trong Database Resource Manager C mt s chc nng mi c thm vo Database Resource Manager: C kh nng to mt active session pool, l ni lu cha c mt s lng ln nht cc user sessions ng thi ang c thc hin. Nu c nhiu hn s lng ln nht cc sessions cng c thc hin th cc sessions mi ny s c a vo hng i ch thc hin sau. Tuy nhin ta cng c th a ra mt khong thi gian tr (timeout) cho php thc hin hay hu vic thc hin cc sessions mi b sung ny. T ng chuyn users t mt nhm ny sang mt nhm khc tu theo s iu chnh ca qun tr vin (administrator). Nu mt session c to bi member thuc mt nhm users no thc hin trong khong thi gian di hn thi gian cho php th
Trang 12
session c th c t ng chuyn sang mt nhm khc vi nhng yu cu ti nguyn khc. C kh nng ngn chn thc hin cc thao tc m c d kin l s phi chy trong mt thi gian di hn l khong thi gian cho php. C kh nng to mt undo pool, l ni cha mt s lng nht nh vng khng gian dnh cho vic khi phc thng tin (undo). C ch xc thc v nh xc thc (Proxy authentication and authorization) Oracle9i cho php mt server nm lp gia (middle-tier) xc nhn h mt client. Ta c th thc hin vic ny bng cch a vo mnh GRANT CONNECT THROUGH trong cu lnh ALTER USER. Ta cng c th ch r vai tr ca lp gia (middle tier) trong vic kt ni ti client. Application roles Oracle cho php gn roles cho cc application users m c kch hot bng cch s dng PL/SQL package. S dng mnh IDENTIFIED USING package trong cu lnh CREATE ROLE thc hin vic ny.
Trang 13
Background process
System Global Area - SGA SGA l vng b nh chia s c s dng lu tr d liu v cc thng tin iu khin ca Oracle server. SGA c cp pht (allocated) trong b nh ca my tnh m Oracle server ang hot ng trn . Cc User kt ni ti Oracle s chia s cc d liu c trong SGA, vic m rng khng gian b nh cho SGA s lm nng cao hiu sut ca h thng, lu tr c nhiu d liu trong h thng hn ng thi gim thiu cc thao tc truy xut a (disk I/O). SGA bao gm mt vi cu trc b nh chnh: Shared pool: L mt phn ca SGA lu cc cu trc b nh chia s. Database buffer cache: Lu tr cc d liu c s dng gn nht. Redo log buffer: c s dng cho vic d tm li cc thay i trong c s d liu v c thc hin bi cc background process. chi tit hn, ta s xem xt c th tng thnh phn.
Share Pool
Shared pool l mt phn trong SGA v c s dng khi thc hin phn tch cu lnh (parse phase). Kch thc ca Shared pool c xc nh bi tham s SHARED_POOL_SIZE c trong parameter file (file tham s). Cc thnh phn ca Shared pool gm c: Library cache v Data dictionary cache.
Trang 14
Library Cache
Library cache lu tr thng tin v cc cu lnh SQL c s dng gn nht bao gm: Ni dung ca cu lnh dng text (vn bn). Parse tree (cy phn tch) c xy dng tu thuc vo cu lnh. Execution plan (s thc hin lnh) gm cc bc thc hin v ti u lnh. Do cc thng tin trn c lu tr trong Library cache nn khi thc hin li mt cu lnh truy vn, trc khi thc hin cu lnh, Server process s ly li cc thng tin c phn tch m khng phi phn tch li cu lnh. Do vy, Library cache c th gip nng cao hiu sut thc hin lnh.
Database buffer cache l vng nh trong SGA s dng lu tr cc block d liu c s dng gn nht. Tng t nh kch thc ca blocks d liu c xc nh bi tham s DB_BLOCK_SIZE, kch thc ca vng m trong buffer cache cng c xc nh bi tham s DB_BLOCK_BUFFERS. Oracle server s dng gii thut least recently used (LRU) algorithm lm ti li vng nh. Theo , khi np mi mt block vo b m, trong trng hp b m y, Oracle server s loi bt block t c s dng nht ra khi b m np block mi vo b m.
C mt s c im cn quan tm 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.
Background process Background process (cc tin trnh nn) 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. Ty theo tng cu hnh m Oracle instance c cc Background process nh: Database Writer (DBW0): Ghi li cc thay i trong data buffer cache ra cc file d liu. Log Writer (LGWR): Ghi li cc thay i c ng k trong redo log buffer vo cc redo log files. System Monitor (SMON): Kim tra s nht qun trong database. Process Monitor (PMON): Dn dp li ti nguyn khi cc tin trnh ca Oracle gp li. Checkpoint Process (CKPT): Cp nht li trng thi ca thng tin trong file iu khin v file d liu mi khi c thay i trong buffer cache.
Trang 16
Database Writer (DBW0) Server process ghi li cc d liu thay i rollback v d liu ca cc block trong buffer cache. Database writer (DBWR) ghi cc thng tin c nh du thay i t database buffer cache ln cc data files nhm m bo lun c khong trng b m cn thit cho vic s dng.
Vi vic s dng ny, hiu sut s dng database s c ci thin do Server processes ch to cc thay i trn buffer cache, DBWR ghi d liu vo cc data file cho ti khi: S lng buffers nh b du t ti gi tr ngng. Tin trnh duyt tt c buffer m vn khng tm thy d liu tng ng. Qu thi gian quy nh. Log Writer Log Writer (LGWR) l mt trong cc background process c trch nhim qun l redo log buffer ghi li cc thng tin trong Redo log buffer vo Redo log file. Redo log buffer l b m d liu c t chc theo kiu ni vng.
Trang 17
LGWR ghi li d liu mt cch tun t vo redo log file theo cc tnh hung sau: Khi redo log buffer y Khi xy ra timeout (thng thng l 3 giy) Trc khi DBWR ghi li cc blocks b thay i trong data buffer cache vo cc data files. Khi commit mt transaction. System Monitor (SMON) Tin trnhsystem monitor (SMON) thc hin phc hi cc s c (crash recovery) ngay ti thi im instance c khi ng (startup), nu cn thit. SMON cng c trch nhim dn dp cc temporary segments khng cn c s dng na trong dictionary-managed tablespaces. SMON khi phc li cc transactions b cht mi khi xy ra s c. SMON u n thc hin kim tra v khc phc cc s c khi cn. Trong mi trng Oracle Parallel Server, SMON process ca mt instance c th thc hin khi phc instance trong trng hp instance hay CPU ca my tnh gp s c. Process Monitor (PMON) Tin trnh process monitor (PMON) thc hin tin trnh phc hi mi khi c mt user process gp li. PMON c trch nhim dn dp database buffer cache v gii phng ti nguyn m user process s dng. V d, n thit lp li (reset) trng thi ca cc bng ang thc hin trong transaction, gii phng cc locks trn bng ny, v hu b process ID ca n ra khi danh sch cc active processes. PMON kim tra trng thi ca ni gi (dispatcher ) v cc server processes, khi ng li (restarts) mi khi xy ra s c. PMON cng cn thc hin vic ng k cc thng tin v instance v dispatcher processes vi network listener. Tng t nh SMON, PMON c gi n mi khi xy ra s c trong h thng.
Trang 18
Checkpoint Process (CKPT) Cp nht li trng thi ca thng tin trong file iu khin v file d liu mi khi c thay i trong buffer cache. Xy ra checkpoints khi: Tt c cc d liu trong database buffers b thay i tnh cho n thi im checkpointed s c background process DBWRn ghi ln data files. Background process CKPT cp nht phn headers ca cc data files v cc control files. Checkpoints c th xy ra i vi tt c cc data files trong database hoc cng c th xy ra vi mt data files c th. Checkpoint xy ra theo cc tnh hung sau: Mi khi c log switch Khi mt shut down mt database vi cc ch tr ch abort Xy ra theo nh thi gian quy nh trong cc tham LOG_CHECKPOINT_INTERVAL v LOG_CHECKPOINT_TIMEOUT Khi c yu cu trc tip ca qun tr vin
khi
to
Thng tin v checkpoint c lu tr trong Alert file trong trng hp cc tham s khi to LOG_CHECKPOINTS_TO_ALERT c t l TRUE. V ngc li vi gi tr FALSE.
Trang 19
Cu trc vt l database Cu trc vt l bao gm tp hp cc control file, online redo log file v cc datafile: 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. 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. 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.
Trang 20
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.
Cu trc logic databse Cu trc logic ca Oracle database bao gm cc i tng tablespaces, schema objects, data blocks, extents, v segments. 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.
C mt s im ta cn quan tm: 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. V d: trong hnh v trn SYSTEM tablespace c kch thc l 2 MB cn USERS tablespace c kch thc l 4 MB. Kch thc ca database cng c th xc nh c bng tng kch thc ca cc tablespaces ca n. V d: trong hnh v trn th kch thc ca database l 6 MB. 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.
Trang 21
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 data blocks. Mt data block tng ng vi mt s lng nht nh cc bytes vt l ca
L mc phn cp logic thp nht, cc d liu ca Oracle database c lu tr trong cc
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 . Segment c th c phn chia theo nhiu loi khc nhau: Mi mt non-clustered table c mt data segment. Cc d liu trong mt table c lu tr trong cc extents thuc data segment . Vi mt partitioned table th mi each partition li tng ng vi mt data segment. Mi Cluster tng ng vi mt data segment. D liu ca tt c cc table trong cluster u c lu tr trong data segment thuc Cluster . Mi mt index u c mt index segment lu tr cc d liu ca n. Trong partitioned index th mi partition cng li tng ng vi mt index segment. Mt hoc nhiu rollback segments ca database c to lp bi ngi qun tr database lu tr cc d liu trung gian phc v cho vic khi phc d liu. Cc thng tin trong Rollback segment c s dng : To s ng nht cc thng tin c c t database S dng trong qu trnh khi phc d liu Phc hi li cc giao dch cha commit i vi mi user Temporary segments c t ng to bi Oracle mi khi mt cu lnh SQL statement cn n mt vng nh trung gian thc hin cc cng vic ca mnh nh sp xp d liu. Khi kt thc cu lnh , cc extent thuc temporary segment s li c hon tr cho h thng.
Data segment
index segment
rollback segment
temporary segment
Oracle thc hin cp pht vng khng gian lu tr mt cch linh hot mi khi cc extents cp pht s dng ht.
Trang 22
Cc cu trc vt l khc Ngoi ra, Oracle Server cn s dng cc file khc lu tr thng tin. Cc file bao gm: Parameter file: Parameter file ch ra cc tham s c s dng trong database. Ngi qun tr database c th sa i mt vi thng tin c trong file ny. Cc tham s trong parameter file c vit dng vn bn. Password file: Xc nh quyn ca tng user trong database. Cho php ngi s dng khi ng v tt mt Oracle instance. Archived redo log files: L bn off line ca cc redo log files cha cc thng tin cn thit phc hi d liu.
DB_4K_CACHE_SIZE DB_8K_CACHE_SIZE DB_16K_CACHE_SIZE DB_32K_CACHE_SIZE. Mi tham s ch ra kch c ca buffer cache tng ng vi kch c ca block. V d:
DB_BLOCK_SIZE=4096 DB_CACHE_SIZE=12M DB_2K_CACHE_SIZE=8M DB_8K_CACHE_SIZE=4M
v d ny, cc tham s ch ra kch thc block chun ca database l 4K. Kch thc cache tng ng vi kch thc block chun l 12M. Cc kch thc m rng ca cache l 2K v 8K s c t li vi gi tr tng ng l 8M v 4M. iu chnh kch c ca Shared Pool Tham s SHARED_POOL_SIZE trong phin bn Oracle 9i l tham s ng, tc l c th thay i c gi tr ca n (iu ny khng th thc hin c trong cc phin bn trc). N cho php ta thay i kch thc ca shared pool l mt trong cc thnh phn ca SGA. Theo mc nh Oracle cng chn mt gi tr mc nh ph hp cho tham s ny. iu chnh kch c ca Large Pool Tng t nh SHARED_POOL_SIZE, tham s LARGE_POOL_SIZE cng l mt tham s ng, n cho php ta iu chnh kch c ca large pool, y cng l mt thnh phn trong SGA. . Gii hn kch c ca SGA Tham s SGA_MAX_SIZE quy nh kch c ln nht ca System Global Area . Ta cng c th thay i kch c ca buffer caches, shared pool v large pool, tuy nhin vic thay i ny nn l m rng gi tr kch thc cho cc thnh phn ca SGA. Gi tr m rng thm ny cng khng nn t ti ngng ca SGA_MAX_SIZE. Trong trng hp ta khng ch r gi tr ca SGA_MAX_SIZE th Oracle s t ng gn gi tr ny bng tng s kch c ca cc thnh phn ca SGA lc ban u.
Trang 24
2.2.3. Kt ni ti database
Cc bc thc hin kt ni kt ni ti database trc tin, cn phi to lin kt ti Oracle Server. Lin kt ti Oracle Server c to theo cc bc sau: User s dng cng c SQL*Plus hay s dng cc cng c khc ca Oracle nh Developer/2000 Forms khi to tin trnh. Trong m hnh Client-Server, cc cng c hay ng dng ny c chy trn my Client. User thc hin log in vo Oracle server vi vic khai bo username, password v tn lin kt ti database. Cc ng dng tools s to mt tin trnh kt ni ti Oracle server qua cc tham s ny. Tin trnh ny c gi l tin trnh phc v. Tin trnh phc v s giao tip vi Oracle server thay cho tin trnh ca user chy trn my Client.
Trang 25
V d thc hin kt ni ti database hiu r hn v cc bc thc hin kt ni, ta hy xem xt mt v d m t vic kt ni ti Oracle database thc hin bi mt user ti mt my tnh khc c kt ni ti my tnh m Oracle server ang chy trn . Vic kt ni c thc hin thng qua ng mng bng cch s dng dch v Oracle Net8. 1. Ti my ch, cn m bo Oracle server ang chy v sn sng n nhn cc tn hiu t pha Client. My ch ny c gi l host hay database server. 2. Ti mt my trm c chy cc ng dng (gi l local machine hay client workstation) s thc hin cc user process kt ni ti database. Client application thc hin thit lp mt kt ni ti server thng qua Net8 driver. 3. My ch server trn c cc Net8 driver. Server s thc hin vic nghe v d tm tt c cc yu cu gi n t pha client v sau s to mt server process tng ng vi user process. 4. Khi user thc hin mt cu lnh SQL hay commit mt transaction. V d nh user d liu trn mt dng trong mt table. 5. Server process s nhn v cu lnh gi ti t Client, kim tra v phn tch cu lnh, vic ny c thc hin trong shared pool. Tip theo , Server process s kim tra quyn truy nhp d liu ca user. 6. Server process tr v cc gi tr d liu yu cu t cc d liu c trong datafile hay trong system global area. 7. Server process thay i cc d liu c trong system global area. DBWn process ghi li cc blocks thay i ra a. LGWR process s ghi li ngay lp tc cc bn ghi thay i vo online redo log file ngay khi transaction c commit. 8. Trong trng hp transaction thc hin thnh cng, server process s gi thng bo hon tt qua ng mng ti Client. Ngc li, s c mt error message gi ti Client.
Trang 26
Server Manager Line Cng c qun tr c s d liu Oracle theo ch dng lnh nh Mode start (khi ng), shutdown (dng) database,... SQL*Plus Line Mode Oracle Manager y l mt tin ch s dng cho vic cng qun tr nh starting up, shutting down, hoc phc hi database.
Enterprise L cng c c giao din ha thc hin vic qun tr, iu khin v thay i mt hoc nhiu database. Tin ch s dng np cc file bn ngoi vo trong cc bng ca Oracle .
SQL*Loader
Cng c Export v Tin ch s dng exporting hoc importing d liu theo khun Import dng ca Oracle. Password File Tin ch s dng to file mt khu trong database.
thun tin, ti liu s trnh by hai cng c thng dng nht qun tr c s d liu l: Server Manager Line Mode Oracle Enterprise Manager
Trang 27
Trang 28
STARTUP/ SHUTDOWN
Trang 29
Trang 30
4. Menu cho php khi to cc ng dng qun tr khc v thc hin nhiu tc v khc nhau. 5. Map hay topographical view cho php cc Oracle services c th c gp li ty theo quan h v khng gian, chc nng, hay c hai. Map view cho php ngi s dng tp trung vo cc i tng cn qun l. 6. Event system iu khin v thng bo cc trng thi ca h thng.
Trang 31
Chng 4. TO DATABASE
4.1.CC BC TO DATABASE
Oracle hin h tr mt cng c cho php to database trn h iu hnh Windows mt cch trc quan. l cng c Oracle Database Assistant. Tuy nhin, trong mt s trng hp cng c ny t ra khng c thun tin lm. Bn cnh vic s dng cng c cung cp sn ca Oracle to database, Oracle cn cho php user c th to database m khng s dng cc cng c ca Oracle. Phng php ny gi l to database bng tay manually. Vic to database c tin hnh theo cc bc: 1. Quyt nh chn la tn instance v tn database duy nht. Chn character set tp k t s dng trong database. 2. Thit lp cc bin h thng. 3. Chun b file tham s, to file mt khu (nn c thao tc ny). 4. Chun b instance phc v qun tr 5. To database. 6. Chy scripts to cc dictionary cho database.
4.2.CHUN B MI TRNG
4.2.1. Chun b h iu hnh
to database, qun tr vin trc tin phi c th truy nhp vo h iu hnh vi y quyn. Trc khi to database, cn tnh ton dung lng b nh cho database cn c vo cu hnh ca Server v m bo c b nh thc hin cc tin trnh ca Oracle mt cch hiu qu. Tnh ton lng a trng cn thit cho vic lu tr cc data files, cc control files, cc redo log file v cc files khc...
Trang 32
Online redo log files Online redo log files thng thng bao gm nhiu nhm cc online redo log files khc nhau. Vi mi nhm cha cc bn sao ca cc redo log file. Tng t nh control file. Cc online redo log file cng nn c t cc ni khc nhau. Cng ging nh Control files, vic t tn cho cc Online redo log files nn c t km vi tn ca database cho d nh, nh sau: LOG<n><database_name>.ORA Vi: n database_name l s th t ca control file tn ca database
Tn ca cc control files c t phn cch nhau bi cc du phy. V d: logfile = C:\ORANT\DATABASE\LOG1KTKB.ORA SIZE 1024K, C:\ORANT\DATABASE\LOG2KTKB.ORA SIZE 1024K
Datafiles Tn ca datafiles nn c t theo nh ni dung ca n. i vi cc data files, ta cn quan tm ti mt s tnh cht sau: Gim thiu vic phn on trong cc data files. Tch ring cc i tng trong database nh tch cc application data, temporary data trn cc tablespaces khc nhau. Cc datafile c phn chia theo cc segment khc nhau. Tn ca chng thng c t vi ui l .DBF cn phn u s c phn theo tng loi segment tng ng. V d: C:\ORANT\DATABASE\KTKB\SYSTEM01.DBF C:\ORANT\DATABASE\KTKB\RBS01.DBF C:\ORANT\DATABASE\KTKB\RBS02.DBF C:\ORANT\DATABASE\KTKB\USERS01.DBF C:\ORANT\DATABASE\KTKB\TEMP01.DBF C:\ORANT\DATABASE\KTKB\TOOLS01.DBF C:\ORANT\DATABASE\KTKB\INDX01.DBF
1. t tn cc thit b n c th cha ng cc d liu Oracle server ging nh mt tp hp. cc file qun tr, file script khi to,... 3. Lu li cc phin bn ca cc sn phm Oracle server 4. To cc th mc lu tr d liu Oracle server.
Trang 34
DB_BLOCK_SIZE
Thng thng, khi chun b parameter file ca mt database sp c to, ta c th sao chp li ni dung ca parameter file mu ri chnh sa li mt vi thng s trong nh db_name, control_files,... Parameter file mu ca oracle thng c t th mc: <%ORACLE_HOME%>\ADMIN\SAMPLES\PFILE V d v ni dung ca file tham s: file InitU16.ora db_name = U16 db_files = 1020 control_files = ("C:\ORANT\database\ctl1U16.ora", "C:\ORANT\database\ctl2U16.ora") db_file_multiblock_read_count = 16 db_block_buffers = 2000 shared_pool_size = 30000000 log_checkpoint_interval = 8000 processes = 100 dml_locks = 200 log_buffer = 65536 sequence_cache_entries = 30 sequence_cache_hash_buckets = 23 #audit_trail = true #timed_statistics = true background_dump_dest = C:\ORANT\rdbms80\trace user_dump_dest = C:\ORANT\rdbms80\trace db_block_size =8192
Trang 35
C th to mi, start, stop, sa i hay Ch c th to mi hay hu b databse. xo b instances. Khng can thip ti Khng th start hay stop database database files C th s dng sa i instance Khng th sa i instance Dng to password file v service lin Dng to password file v service lin quan. Khng to database c quan, instance v c database Lu : cc phin bn trc ca Oracle, cng c ORADIM c tn l ORADIM80
4.4.1. To mt instance
C php: C:\>ORADIM -NEW -SID SID | -SRVC SERVICE_NAME [-INTPWD INTERNAL_PWD] - SHUTTYPE SRVC | INST | SRVC, INST [MAXUSERS NUMBER][-STARTMODE AUTO | MANUAL][-PFILE FILENAME] Vi: To mi instance phc v cho database. Tn ca instance c to (tn ny thng c ly chnh l tn ca database). -SRVC SERVICE_NAME Tn ca service phc v database. -INTPWD INTERNAL_PWD Mt khu ca Internal account s dng qun tr database -MAXUSERS NUMBER S lng user ti a nh ngha trong password file -STARTMODE AUTO, MANUAL t ch khi ng instance phc v (khi ng service trn my ch server) -PFILE FILENAME
Trang 36
Ch r parameter file INIT<Database_name>.ORA -SHUTTYPE SRVC, INST Dng instance phc v (stop service) V d: C:\> ORADIM -NEW -SID PROD -INTPWD MYPASSWORD1 -STARTMODE AUTO -PFILE C:\ORACLE\ADMIN\PROD\PFILE\INIT.ORA
Trang 37
4.4.4. Hu instance
C php: C:\>ORADIM -DELETE -SID sid V d:
C:\> ORADIM -DELETE -SID PUMA
4.5.TO DATABASE
4.5.1. Khi ng Instance
S dng user vi mc quyn DBA. Dng cng c ORADIM to Instance. Khi ng Instance ch NOMOUNT v ch r file tham s s dng trong chng trnh: SVRMGR> STARTUP NOMOUNT \ > PFILE=initU16.ora
CONTROLFILE REUSE Tn file tham s tn ti c ti s dng LOGFILE GROUP Tn ca log file c s dng MAXLOGFILES S lng ti a cc log file group cho CSDL MAXLOGMEMBERS S lng ti a cc log file member i vi mt log file group MAXLOGHISTORY S lng ti a cc redo log trong mt group DATAFILE filespec Tn file d liu c s dng AUTOEXTEND Cho php hoc khng cho php m rng t ng cc file d liu MAXDATAFILES S lng ti a cc datafiles trong database MAXINSTANCES S lng ln nht cc instance c th ng thi mount v open database ARCHIVELOG Xc nh rng redo log cn ch archive trc khi c dng li NOARCHIVELOG Xc nh rng redo log cn c dng li m khng cn t ch archive CHARACTER SET, NATIONAL CHARACTER SET Chun k t m CSDL s dng lu tr cc d liu V d: to database SPOOL creU16.log STARTUP NOMOUNT PFILE=initU16.ora CREATE DATABASE U16 MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXDATAFILES 100 MAXLOGHISTORY 100 LOGFILE GROUP 1 ('/DISK3/log1a.rdo',/DISK4/log1b.rdo) SIZE 1 M, GROUP 2 ('/DISK3/log2a.rdo',/DISK4/log2b.rdo) SIZE 1 M DATAFILE '/DISK1/system01.dbf' size 50M autoextend on CHARACTER SET WE8ISO8859P1;
to database, Oracle h tr cng c rt tin li gip ngi qun tr d dng to database hn thng qua giao din ho, l cng c Oracle Database Assistant.
Vi cng c ny, ngi qun tr ch vic khai bo cc tham s cn thit cho database. Oracle Database Assistant s t ng kt sinh ra cu lnh SQL tng ng vi cc tham s c khai bo. Cc cu lnh SQL c th c chy lun hoc cng c th c lu li thnh cc script files s dng sau ny.
Trang 40
MAXINSTANCES 1 CHARACTER SET WE8ISO8859P1 NATIONAL CHARACTER SET WE8ISO8859P1; spool off File initU16.ora db_name = U16 db_files = 1020 control_files = ("C:\ORANT\database\ctl1U16.ora", "C:\ORANT\database\ctl2U16.ora") db_file_multiblock_read_count = 16 db_block_buffers = 2000 shared_pool_size = 30000000 log_checkpoint_interval = 8000 processes = 100 dml_locks = 200 log_buffer = 65536 sequence_cache_entries = 30 sequence_cache_hash_buckets = 23 #audit_trail = true #timed_statistics = true background_dump_dest = C:\ORANT\rdbms80\trace user_dump_dest = C:\ORANT\rdbms80\trace db_block_size =8192 compatible = 8.0.4.0.0 sort_area_size = 65536 log_checkpoint_timeout = 0 remote_login_passwordfile = shared max_dump_file_size = 10240
Trang 41
Trang 42
Trang 43
Trang 44
Trang 45
Khi kt ni vi database theo mc quyn SYSDBA hay SYSOPER, user s c kt ni ti cc schema mc nh, vi SYSDBA th shema mc nh l SYS, vi SYSOPER th shema mc nh l PUBLIC.
tn instance mt khu internal account tn service s lng ti a file mt khu ch khi ng service l: manual hay automatic cho php s dng file mt khu khng phi l mc nh
thay i mt khu INTERNAL ta thc hin theo cc bc sau: 1. Xo mt khu c C:\> ORADIM -DELETE -SID sid 2. To mt khu mi C:\> ORADIM -NEW -SID sid -INTPWD internal_pwd - MAXUSERS N
File tham s thng thng c tn init<SID>.ora. Theo mc nh, file tham s c t trong th mc %ORACLE_HOME%\DATABASE. File tham s ch c c mt ln khi khi ng instance. Khi thay i ni dung ca file tham s, s dng c cc gi tr mi cn shut down ri sau restart li instance.
Xc nh cc thuc tnh vt l ca database, nh kch thc ca block. Ch ra cc control files, archived log files, Alert file, v trace file locations.
Trang 48
V d mt parametersfile:
Cu lnh: STARTUP MOUNT; Start Instance ch open Sau khi databsae c m, nhng ngi s dng hp l c th kt ni ti database v thc hin cc thao tc truy nhp vo database. Vic m database din ra theo hai bc: M cc online data files M cc online redo log files. Cu lnh: STARTUP OPEN;
Khi phc Instance Trong mt s trng hp Instance c th gp li v khng th lm vic c. V d nh: c li h thng xy ra. Vic khi phc Instance s c thc hin theo cc bc sau: Khi phc li tt c cc d liu c th khi phc c (d liu cha c lu vo data files nhng lu vo trong online redo log files) M database. Khi phc li tt c cc transaction cha c commit. Close database y l bc u tin khi tt hn mt database. Sau khi ng database, tt c cc d liu cn trong b m (redo log buffer cache) s c ghi ra file (online redo log file). Cc control file vn c m. Dismount database Dissmount database s ng nt cc control file thuc database ang m. Shoutdown Instance y l bc cui cng, intance s c tt hn. Cc trace file v Alert file ca instance b ng. Cc background process b dng v vng nh SGA cp cho instance b thu hi.
Trang 50
Trang 51
C php: SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT ] Vi: NORMAL Khng cho to thm cc connection ti database, ch cho connection hin thi kt thc th shutdown database. Khng cho pht sinh thm cc transaction, ch cho transaction hin thi kt thc th shutdown database. Kt thc lun transaction hin thi nhng vn ch h thng commit hay rollback ri mi shutdown database. Shutdown database tc thi khng i hi bt c iu kin g.
TRANSACTION
IMMEDIATE
ABORT
Trang 52
Hnh v trn so snh tiu tn v thi gian khi thc hin mt thao tc chuyn i d liu: 1. Thc hin truy vn ly d liu 2. Thc hin lnh INSERT v DELETE cp nht v chuyn i d liu 3. Pht lnh COMMIT cp nht d liu vo database 4. Hu b lin kt ti database.
Trang 53
DATABASE_STATUS --------ACTIVE
Trang 54
Tt c cc non-DBA active sessions s c tip tc x l cho ti khi chng chuyn sang trng thi inactive. Mt session c xem l active nu lc n ang c cc php thc nh transaction, query, fetch, hay ang x l mt cu lnh PL/SQL; hoc cng c th l session ang nm gi phn ti nguyn chia s (shared resources). Khi tt c cc non-DBA sessions chuyn sang trng thi inactive, cu lnh ALTER SYSTEM QUIESCE RESTRICTED kt thc v database c xem nh l chuyn sang trng thi tnh quiesce state. Trong mi trng Oracle Real Application Clusters, cu lnh ny c nh hng ti tt c cc instances, ch khng ch l i vi instance ni pht ra cu lnh. Lnh ALTER SYSTEM QUIESCE RESTRICTED c th phi ch trong mt thi gian kh di cho active sessions chuyn sang trng thi inactive. Nu ta hu b yu cu, hoc nu session b kt thc mt cch t ngt v nhiu l do khc nhau th Oracle s t ng phc hi li (undo) trng thi trc khi thc hin lnh. Nu mt truy vn c a ra bi cc Oracle Call Interface (OCI), th cu lnh ALTER SYSTEM QUIESCE RESTRICTED s khng ch fetch ht tt c cc d liu m ch ch fetch xong dng d liu hin thi m thi.
Trang 55
Khi trng thi quiesce state, ta khng s dng h iu hnh sao chp cc file trong h thng ging nh khi thc hin backup lnh i vi database, cho d ta c cc checkpoint ti mi mt instance. L do l v khi trng thi quiesce state th cc file headers ca online datafiles vn lun c lin tc truy cp.
Khi ny tt c cc non-DBA activity s c tip tc thc hin. Trong mi trng Oracle Real Application Clusters, ta c th pht lnh ny t bt k mt instance no c kt ni ti server khng nht thit phi l instance pht lnh t trng thi tnh. Trong trng hp session pht lnh ALTER SYSTEM UNQUIESCE gp li, Oracle database server s lun m bo vic thc hin unquiesce s kt thc.
Trang 56
SVRMGR> SHOW PARAMETER control NAME ------------------------------control_file_record_keep_time control_files TYPE ------integer string VALUE -------------------7 /DISK1/control01.con
Kt thc session Ta c th kt thc (Terminate) cc session ca mt Instance trong ch restrict, trc khi thc hin cc thao tc qun tr. C php: ALTER SYSTEM KILL SESSION integer1,integer2 Vi: KILL SESSION integer1 integer2 tn session cn kt thc gi tr ca ct SID trong view v$session gi tr ca ct SERIAL# trong view v$session
Ch : hai gi tr integer1 v integer2 dng xc nh session Vi lnh KILL SESSION background process PMON s thc hin cc cng vic sau: Rollback transaction hin thi ca user Gii phng tt c cc lock trn cc table thc hin bi user Gii phng cc ti nguyn s dng bi user
Trang 59
Base tables Thng tin trong data dictionary c xc nh t cc thng tin c trong cc base tables (bng c s). Ni dung ca cc bng ny do Oracle server cp nht. User thuc database hu nh khng th cp nht cc thng tin ny do chng l cc thng tin c chun ho v c m ho. V d: ta ch c th truy xut ti cc thng tin c trong bng IND$ bit c cc thng tin v cc indexes c nh ngha trong database, hoc ly cc thng tin trong bng OBJ$ bit c cc objects c nh ngha trong database. Ta khng th s dng cc cu lnh thao tc d liu nh INSERT, UPDATE, hay DELETE thay i ni dung thng tin trong cc bng c s mt cch trc tip ngoi tr bng AUD$ (Xem thm phn kim tra - Auditing).
Trang 60
Data Dictionary Views Data dictionary views c to ra bi cc cu lnh c trong file script catalog.sql. Cc views ny gii m v tng hp cc thng tin c trong cc base tables. d dng truy xut cc thng tin ny, cc data dictionary thng c to cc synonyms tng ng. Phn ln cc thng tin h thng c User ly v t cc data dictionary views hn l ly trc tip t cc base tables.
Data dictionary views c phn ra lm ba loi cha cc thng tin tng t nhau nhng cc mc khc nhau. Cc loi data dictionary views ny c phn bit bi cc tip u ng khc nhau. Tip u ng USER Cc views c tip u ng USER cha thng tin v cc objects do User hin thi s hu. V d: USER_TABLES s cha thng tin v cc bng d liu ca User hin thi. Tip u ng ALL Cc views c tip u ng ALL cha thng tin v cc objects c th truy cp bi User hin thi, bao gm c cc i tng do User s hu v c cc i tng khc m User c gn quyn truy nhp. V d: ALL_TABLES s cha thng tin v cc bng d liu m User hin thi c th truy nhp. Tip u ng DBA Cc views c tip u ng DBA cha thng tin v cc objects c trong database. Cc views ny l cn thit cho qun tr vin database. Mt User bt k cng c th xem c thng tin trong cc views DBA nu user c cp quyn SELECT ANY TABLE.
Trang 61
Phn loi mt s loi views Tn View DICTIONARY DICT_COLUMNS DBA_TABLES DBA_OBJECTS DBA_LOBS DBA_TAB_COLUMNS DBA_CONSTRAINTS DBA_USERS DBA_SYS_PRIVS DBA_ROLES Thng tin chung Thng tin lin quan ti cc i tng ca User nh: table, Column, Constraint,... Din gii
Tn View DBA_EXTENTS DBA_FREE_SPACE DBA_SEGMENTS DBA_ROLLBACK_SEGS DBA_DATA_FILES DBA_TABLESPACES DBA_AUDIT_TRAIL DBA_AUDIT_OBJECTS DBA_AUDIT_OBJ_OPTS
Din gii Tnh hnh cp pht khng gian cho cc i tng trong database. Thng tin v cu trc database
V d: ly cc thng tin chung trong t in d liu, ta c th truy vn trong Cc views DICTIONARY hoc DICT_COLUMNS. SVRMGR>SELECT * 2> FROM dictionary 3> WHERE table_name LIKE %TABLE%; TABLE_NAME COMMENTS -------------------- --------------------------------------ALL_ALL_TABLES Description of all object and relational tables accessible to the user ALL_NESTED_TABLES Description of nested tables in tables accessible to the user ALL_OBJECT_TABLES Description of all object tables accessible to the user ALL_PART_TABLES ALL_TABLES Description of relational tables accessible to the user ALL_UPDATABLE_COLUMNS Descriptionofallupdatablecolumns DBA_ALL_TABLES Description of all object and relational tables in the database
Trang 62
Description of nested tables contained in all tables Description of all object tables in the database
Sau khi to database, ta truy cp vo database theo user: SYS v chy cc scripts: catalog.sql v catprog.sql to cc dictionary views. Thng thng, cc scripts ny nm trong th mc: %ORACLE_HOME%\RDBMS80\ADMIN Catalog.sql CATALOG.SQL script dng to cc view da trn cc base tables (bng c s) ca database. Cc view ny s c to synonym (mt tn khc vi tn ca objects c dng truy cp objects) tng ng d dng truy vn cc d liu t hn. Scripts ny cn gi ti cc scripts khc to cc views v cc i tng khc phc v cho cc tin ch Server Manager, cho vic kim tra, cho cc tin ch Export v Import d liu,... Scripts STANDARD.SQL c gi n trong to cc mi trng PL/SQL tun theo chun. V d: Scripts to mu giao tip cho 01 hm built-in c tn BITAND: function BITAND (LEFT binary_integer, RIGHT binary_integer) return binary_integer; Catproc.sql CATPROC.SQL script dng to cc hm PL/SQL, cc packages PL/SQL s dng trong RDBMS. Ngoi ra, CATPROC.SQL script cn to Cc views m rng khc.
Trang 63
Li ch ca Stored procedures Cc Stored procedures c np vo shared pool, do c th gim bt vic truy xut a khi thc hin th tc. m bo an ton cho d liu, ngn khng cho cc users truy cp trc tip vo d liu m phi thng qua cc th tc v hm giao tip c cung cp. Cho php nhiu users c th cng s dng cc bn sao ca Stored procedures thc hin.
Trang 64
prvtutil.sql prvtutil.sql
DBMS_UTILITY: cha cc th tc tin ch, c t trong file dbmsutil.sql v DBMS_SPACE: cung cp cc thng tin v khong trng ca segment. DBMS_ROWID: cung cp cc thng tin v ROWID DBMS_SHARE_POOL: lu tr v hu b cc thng tin c trong share pool. Packages DBMS_SESSION Th tc trong packages SET_ROLE Din gii Kch hot vic thc hin Roles ca user
Trang 65
SET_SQL_TRACE SET_NLS CLOSE_DATABASE_LINK UNIQUE_SESSION_ID IS_ROLE_ENABLED IS_SESSION_ALIVE SET_CLOSE_CACHED_OPEN_CU RSORS FREE_UNUSED_USER_MEMORY DBMS_UTILITY ANALYZE_SCHEMA
Thit lp ch d tm thc hin lnh Chn chun h tr ngn ng ng database link. Tr v m duy nht c cc session hin ang connect ti database. Xc inh xem role c c kch hot trong session khng. Xc nh xem session c cn hay khng. Bt hoc tt close_cached_open_cursors Gii phng vng b nh khng cn s dng Phn tch cc objects trong schema nh: functions, procedures, packages, triggers,.. Bin dch schema cc objects trong
COMPILE_SCHEMA DB_VERSION DBMS_ROWID DBMS_SPACE DBMS_SHARED_P OOL ROWID_INFO UNUSED_SPACE FREE_BLOCKS KEEP UNKEEP SIZES DBMS_SQL OPEN_CURSOR PARSE BIND_VARIABLE BIND_ARRAY EXECUTE Function EXECUTE_AND_FETCH FETCH_ROWS COLUMN_VALUE IS_OPEN
Xc nh phin bn ca database Thng tin v dng d liu Vng khng gian khng s dng Cc blocks ri Lu tr cc object trong shared pool Thi lu gi cc object Kch thc b nh trong shared pool Tr v s hiu cursor (ID number) Phn tch cu lnh Binds mt gi tr bin. Binds mt gi tr bin mng. Executes a given cursor. Thc hin lnh v ly v cc dng d liu. Ly v cc dng d liu ca mt cursor. Ly v d liu ca ct Xc nh Cursor m hay cha.
Trang 66
ng cursor v gii phng b nh. Tr v li thc hin cu lnh SQL Tr v s lng dng d liu ly v Tr v m dng d liu x l ROWID Tr v m hm SQL
Trang 67
SELECT DBMS_METADATA.GET_XML(TABLE, EMP, SCOTT) from dual; <?xml version="1.0"?> <ROWSET> <ROW> <TABLE_T> <VERS_MAJOR>1</VERS_MAJOR> <VERS_MINOR>0</VERS_MINOR> <OBJ_NUM>5543</OBJ_NUM> <SCHEMA_OBJ> <OBJ_NUM>5543</OBJ_NUM> <DATAOBJ_NUM>5543</DATAOBJ_NUM> <OWNER_NUM>25</OWNER_NUM> <OWNER_NAME>SCOTT</OWNER_NAME> <NAME>EMP</NAME> <NAMESPACE>1</NAMESPACE> <MINEXTS>1</MINEXTS> <MAXEXTS>2147483645</MAXEXTS> <EXTSIZE>128</EXTSIZE> <EXTPCT>0</EXTPCT>
Trang 68
tn ca procedure bin dch li. ch nh yu cu bin dch li procedure ch nh chng trnh bin dch m lnh PL/SQl ca procedure s sinh m lnh ph hp chng trnh PL/SQL debugger c th c. User c th s dng chng trnh ny d tm v g li cho procedure. COMPILE;
Tng t nh i vi procedure, c php lnh yu cu bin dch li Stored function c dng: ALTER FUNCTION [schema_name].<function_name> COMPILE [DEBUG]; V d: ALTER FUNCTION merriweather.get_bal COMPILE; i vi package, lnh yu cu bin dch li cng tng t nhng c thm mt b sung l user phi khai bo r tng phn ca package s c bin dch li. C php: ALTER PACKAGE [schema_name].<package_name> COMPILE [DEBUG] <PACKAGE | SPECIFICATION | BODY>; Cc khai bo b sung cho php user yu cu bin dch li phn SPECIFICATION hay phn BODY hoc l bin dch li c hai phn trn. V d: ALTER PACKAGE blair.accounting COMPILE PACKAGE; Hoc: ALTER PACKAGE blair.accounting COMPILE BODY; xc nh c trng thi ca cc Stored procedures, ta c th thc hin truy vn da trn dictionary DBA_OBJECTS. SVRMGR> SELECT object_name, object_type, status 2> FROM dba_objects WHERE object_name like DBMS_% OBJECT_NAME OBJECT_TYPE STATUS -------------------- --------------- -------DBMS_ALERT PACKAGES VALID DBMS_ALERT PACKAGES BODY VALID DBMS_ALERT_INFO TABLE VALID DBMS_APPLICATION_INF PACKAGES VALID DBMS_APPLICATION_INF PACKAGES BODY VALID DBMS_AQ PACKAGES VALID DBMS_AQ PACKAGES BODY VALID ... Hoc ta cng c th s dng lnh DESCRIBE ly thng tin SVRMGR> DESCRIBE dbms_session.set_role procedure SET_ROLE (ROLE_CMD VARCHAR2);
Trang 69
svrmgr> describe dbms_session packages dbms_session is ------------- OVERVIEW -- This packages provides access to SQL "alter session" -- statements, and other session information from, stored -- procedures. ----------------------------- PROCEDURES AND FUNCTIONS procedure set_role(role_cmd varchar2); -- Equivalent to SQL "SET ROLE ...". -- Input arguments: -- role_cmd -- This text is appended to "set role " and then executed as -- SQL. procedure set_sql_trace(sql_trace boolean); -- Equivalent to SQL "ALTER SESSION SET SQL_TRACE ..." -- Input arguments: -- sql_trace -- TRUE or FALSE. Turns tracing on or off. procedure set_nls(param varchar2, value varchar2); Stored procedures hay Packages nhn trng thi INVALID khi cc cu lnh trong Stored procedures hay Packages b li.
Trang 70
Trang 71
thm mi mt control file hoc thay i s lng cng nh ni t cc control file, ta thc hin theo cc bc sau: 1. Shutdown database. 2. S dng lnh ca h iu hnh sao chp thm mt bn sao ca control file v nn lu tr trn mt thit b khc. 3. Sa i hoc thm mi tham s CONTROL_FILES v tn (c ng dn) tng ng vi cc control files. 4. Khi ng li database.
Trang 72
Control file c th c chia lm hai loi chnh: C th ti s dng (reused) Khng th ti s dng (unreused)
Ta mun thay i mt hay nhiu tham s c thit lp i vi database m cc tham s ny c ch ra ngay t cu lnh CREATE DATABASE nh tn database, MAXLOGFILES, MAXLOGMEMBERS, MAXLOGHISTORY, MAXDATAFILES, v MAXINSTANCES. V d, ta mun i tn database khi xy ra xung t vi mt database ang c trong h thng nhng trng tn. Ta c th to mi control file cho mt database thng qua cu lnh SQL. C php: CREATE CONTROLFILE [REUSE] [SET] DATABASE database LOGFILE [GROUP integer] filespec [, [GROUP integer] filespec] ... {RESETLOGS | NORESETLOGS} DATAFILE filespec [, filespec] ... [MAXLOGFILES integer] [MAXLOGMEMBERS integer] [MAXLOGHISTORY integer] [MAXDATAFILES integer] [MAXINSTANCES integer] [ARCHIVELOG | NOARCHIVELOG] Vi: REUSE Cho bit CONTROL_FILES c th c ti s dng, ta khng cn quan tm ti cc tham s thuc loi tu chn. Thay i tn ca database. Lu : <Tn> Tn ca database. danh sch tn ca cc redo log file groups S lng ti a cc redo log file groups S lng ti a cc members trong mt redo S lng ti a cc archived redo log file groups S lng ti a cc datafiles S lng ti a cc instances c th kt ni ti database. Thit lp ch archiving lu tr cc redo log files
SET DATABASE DATABASE LOGFILE MAXLOGFILES MAXLOGMEMBERS MAXLOGHISTORY MAXDATAFILES MAXINSTANCES ARCHIVELOG V d:
CREATE CONTROLFILE SET DATABASE prod LOGFILE GROUP 1 ('logfile1A', 'logfile1B') SIZE 50K, GROUP 2 ('logfile2A', 'logfile2B') SIZE 50K NORESETLOGS DATAFILE 'datafile1' SIZE 3M, 'datafile2' SIZE 5M MAXLOGFILES 50 MAXLOGMEMBERS 3
Trang 74
Ta xt hai trng hp c th xy ra nh sau: S dng tu chn RESETLOGS trong cu lnh CREATE CONTROLFILE s cho php m database m khng cn ti tu chn RESETLOGS. iu ny ch c th xy ra nu tt c cc online redo logs ang trong tnh trng sn sng. S dng tu chn RESETLOGS trong cu lnh CREATE CONTROLFILE bt buc phi m database cng vi tu chn RESETLOGS, datafile tng ng vi MISSINGnnnn ch ch c hay OFFLINE. Khi m database c s dng tu chn RESETLOGS, v MISSINGnnnn tng ng vi datafile khng ch ch c hay offline, ta s khng th truy xut vo datafile . Trong trng hp ny, tablespace cha datafile cn c hu b (DROP).
X l li xy ra i vi lnh CREATE CONTROLFILE Oracle gi tr v m li(cc m li hay xy ra l ORA-01173, ORA-01176, ORA-01177, ORA-01215 hoc ORA-01216) khi ta c gng thc hin mount v open database sau khi to mi mt control file. Tnh hung hay xy ra nht l trong cu lnh CREATE CONTROLFILE m ta qun mt file hoc c a vo tn file nhng n vn cha c trong danh sch. Trong trng hp ny, ta cn phi khi phc (RESTORE) li cc files c backup bc 3 (pha trn) v lp li cc th tc bc 4 (pha trn) lu s dng ng tn cc files.
Trang 76
V d: SVRMGR> SELECT name 2>FROM v$controlfile; NAME ----------------------/DISK1/control01.con /DISK2/control02.con 2 rows selected. SVRMGR> SELECT value 2>FROM v$parameter WHERE name =control_files; VALUE -----------------------/DISK1/control01.con /DISK2/control02.con 2 rows selected. V$CONTROLFILE_RECORD_SECTION cha cc thng tin v cc section. V d: SVRMGR>SELECT type, record_size, records_total, records_used 2> FROM v$controlfile_record_section 3> WHERE type=DATAFILE; TYPE RECORD_SIZ RECORDS_TO RECORDS_US ------------- ------------------- ---------DATAFILE 180 30 4 1 row selected. Ct d liu RECORDS_TO ch ra s lng cc bn ghi c cp pht cho mt section.
Trang 77
Trang 78
trng cho mt s thay i trn mt block d liu thuc database. V d, khi ta thay i gi tr lng trong bng employee, Oracle s to ra mt redo record lu tr li vic thay i d liu ca data segment block, rollback segment block v transaction table tng ng vi thay i d liu ni trn. Cc redo entries lu tr li cc d liu t ta c th ti to li cc thay i d liu trong database, bao gm c rollback segments. Khi thc hin phc hi (recover) database s dng redo data, Oracle s c cc change vectors c trong cc redo records ri p cc thay i ny vo cc blocks tng ng. Cc redo records c lu tr trong b nh m SGA. Mi khi thc hin commit mt transaction, LGWR s ghi li cc redo records ca transaction t cc redo log buffer thuc SGA vo mt online redo log file, v gn mt s hiu system change number (SCN) cho transaction c commit . Chi khi cc redo records thuc transaction c lu tr an ton trn a th user process mi c nhn thng bo: transaction has been committed. Cc redo records c th c ghi vo online redo log file trc khi transaction tng ng c commit. Khi redo log buffer y, hoc khi transaction commit, LGWR s y tt c cc redo log entries trong redo log buffer ra online redo log file, ngay c khi redo records c th cha c commit khi cn, Oracle c th khi phc (roll back) li cc thay i ny.
Trang 79
Log switch l s kin xy ra khi LGWR dng vic ghi trn mt online redo log group v
Trang 80
8.2.3. Checkpoints
Khi c checkpoints th: Tt c cc d liu trong database buffers b thay i, tnh cho n thi im xy ra checkpoint, s c Background process DBWR ghi ln datafiles. Background process CKPT cp nht phn headers ca cc data files v cc control files. Checkpoints c th xy ra i vi tt c cc data files trong database hoc cng c th xy ra vi mt data files c th. Checkpoint xy ra theo cc tnh hung sau: Mi khi c log switch Khi mt shut down mt instance vi cc ch tr ch abort Xy ra theo nh thi gian quy nh trong cc tham LOG_CHECKPOINT_INTERVAL v LOG_CHECKPOINT_TIMEOUT Khi c yu cu trc tip ca qun tr vin
khi
to
Thng tin v checkpoint c lu tr trong Alert file trong trng hp cc tham s khi to LOG_CHECKPOINTS_TO_ALERT c t l TRUE. V ngc li vi gi tr FALSE.
Trang 81
Ch NOARCHIVELOG Vi ch NOARCHIVELOG, cc online redo log files s b ghi mi khi online redo log file ghi y v xy ra log switches. LGWR s khng ghi ln redo log group cho ti khi kt thc checkpoint ca group
Ch ARCHIVELOG Trong trng hp database c thit lp ch ARCHIVELOG, cc groups y, mc d trng thi inactive s vn c lu gi. Do tt c cc thay i trong database u c ghi li trong cc online redo log files, qun tr vin database c th s dng phng php sao chp vt l (physical backup) v c th khi phc li cc d liu commit trong database m khng s b mt d liu.
Trang 82
C hai hnh thc lu tr cc online redo log files: Thc hin lu tr bng tay (manually). Lu tr cc redo log file y theo lnh ca qun tr vin database. Lu tr t ng (automatically). Lu tr cc redo log file y mi khi xy ra log switch. Tham s LOG_ARCHIVE_START trong parameter file xc nh cc ch lu tr ny. LOG_ARCHIVE_START = TRUE, thc hin lu tr ch t ng LOG_ARCHIVE_START = FALSE, thc hin lu tr ch manually
Trang 83
Tham s ARCHIVE_LAG_TARGET cho bit gii hn trn v thi gian (tnh theo n v giy) m current log cn s dng. Do thi gian lu tr khng chnh xc bng khong thi gian log switch. Tham s khi taon ny nn c thit lp vi gi tr khong 30 giy. ARCHIVE_LAG_TARGET = 1800 Gi tr 0 tng ng vi vic khng thc hin chc nng log switching. y l gi tr thit lp mc nh. Ta c th t gi tr cho tham s ARCHIVE_LAG_TARGET ngay c khi database khng trong ch sao lu (standby database). V d, tham s ARCHIVE_LAG_TARGET c th c thit lp bt buc cc logs phi thc hin thao tc switch v lu tr ln a.
ARCHIVE_LAG_TARGET l mt tham s ng v ta c th thay i gi tr ca tham s ny thng qua cu lnh ALTER SYSTEM SET.
8.5.XC NH CH LU TR
bit c cc thng tin v vic lu tr, ta c th s dng mt s cch sau:
Trang 84
xc nh tn ca tt c cc member trong mt group, ta c th tra cu thng tin trong V$LOGFILE: GROUP#, STATUS, MEMBER V d: SVRMGR>SELECT * 2>FROM v$logfile; GROUP# STATUS ---------------1 2
Trang 86
Vi cu lnh trn, ta cn ch ra tn v ng dn ca cc members trong tng group c th. Gi tr ca tham s GROUP c chn tng ng vi mi redo log file group. Trong trng hp b qua tham s ny, Oracle server s t ng sinh ra cc gi tr thch hp. Trong Oracle Enterprise Manager OEM, ta lm theo cc bc sau: 1. S dng Backup Manager 2. Chn Subsystem 3. Chn Logfile --> Add Logfile Group
Trang 87
Tng t nh cc group, ta cng c th thm mi cc member cho tng group bng cu lnh SQL ALTER DATABASE [database] ADD LOGFILE MEMBER [ 'filename' [REUSE] [,'filename' [REUSE]]... TO {GROUP integer |('filename'[, 'filename']...) } ]... Lu : tn file c ch ra cn km theo ng dn y . Trong trng hp khng c ng dn, file s c xem nh c t trong th mc mc nh. Nu file thm mi tn ti, ta cn thm vo tu chn REUSE. Trong Oracle Enterprise Manager OEM, ta lm theo cc bc sau: 1. S dng Backup Manager 2. Chn Subsystem 3. Chn Logfile --> Add Logfile Member
Trang 88
Cu lnh i tn file: ALTER DATABASE [database] RENAME FILE 'filename'[, 'filename']... TO 'filename'[, 'filename']...
Trong Oracle Enterprise Manager OEM, ta lm theo cc bc sau: 1. 2. 3. 4. 5. S dng Backup Manager Chuyn ti nt Logfile Group Chn log file group tng ng Chn Logfile --> Drop Logfile Group Bm nt OK.
Trang 89
Mt s im cn lu khi xo log groups Mt instance cn t nht hai nhm (group) cc online redo log files. Khng th hu (drop) group ang trng thi active. Khi hu mt online redo log group, thc cht ta ch hu v mt logic m thi. Oracle s khng tip tc qun l n na. Tuy nhin, cc file s vn cn v khng b xo bi h iu hnh.
Trong Oracle Enterprise Manager OEM, ta lm theo cc bc sau: 1. 2. 3. 4. 5. S dng Backup Manager Chuyn ti nt Logfile Group Chn log file group tng ng Chn Logfile --> Drop Logfile Member Bm nt OK.
Mt s im cn lu khi xo log members Khng th ngng s dng member ca group m c trng thi l VALID. Nu group ang trong trng thi active, ta cn phi thc hin log switch chuyn s dng sang mt log group khc trc khi ngng s dng cc member ca group hin thi. Khi hu mt online redo log member, thc cht ta ch hu v mt logic cc file vn khng b xo bi h iu hnh.
Trang 90
Trang 91
Trang 92
Data files Mi mt tablespace c th bao gm mt hay nhiu data files, l cc file thuc h iu hnh dng lu tr d liu trong tablespace. Cc data files c mt s tnh cht chnh sau: Mt data file ch thuc v mt tablespace. Qun tr vin database c th thay i kch thc ca data file ngay c khi n c to lp, lm tng tnh nng ng cho cc i tng c trong tablespace.
Data Blocks y l n v lu tr (lu khng phi l n v qun l) d liu nh nht trong database Oracle. Mt block d liu s tng ng vi mt hay nhiu blocks ca h iu hnh. (V d: h iu hnh Windows 32, 1 block h iu hnh = 32 kbytes = 32*1024 bytes). Kch thc ca block d liu c xc nh bi tham s khi to DB_BLOCK_SIZE ngay khi database c to. Block trong database cng l n v vo ra nh nht.
Non-SYSTEM Tablespace Cha Cha Cha Cha cc cc cc cc rollback segments temporary segments data segments index segments
Trang 94
Trang 95
Sort segments c th cng c chia s s dng khi nhiu thao tc sp xp cng c thc hin. Mt sort segment c s dng cho tt c cc instance c thc hin thao tc sp xp trn mt tablespace. Vic s dng cc temporary tablespaces cho php nng cao hiu sut thc hin mi khi c nhiu thao tc sp xp c thc hin trn mt vng nh ln v khng ph hp vi kch thc ca b nh trong ca my tnh. Sort segment thuc temporary tablespace c to ra vo ngay thi im u ca thao tc sp xp. Sort segment s c cp thm vng nh v m rng dn cho ti khi kch thc ca segment ngang bng hoc ln hn tng s kch thc lu tr cn thit cho vic thc hin tt c cc thao tc sp xp ca instance. Cc tablespaces khng phi l temporary tablespaces c gi l cc permanent tablespaces. Cc permanent tablespace c s dng lu tr d liu trong database.
Trang 96
Qun l cc b cc extents mt cch t ng cc vng khng gian gii phng lin k vi nhau. iu ny l cn thit khi thc hin cng vic hp nht cc extents ri. Kch thc ca cc extents c qun l cc b c th c xc nh t ng bi h thng. Mt khc, tt c cc extents c th c cng mt kch c nh nhau trong phng php locally-managed tablespace. Mnh LOCAL trong phn EXTENT MANAGEMENT ca cu lnh CREATE TABLESPACE s ch r phng thc qun l khng gian: Vi cc permanent tablespaces v temporary tablespaces, ta c th s dng mnh EXTENT MANAGEMENT LOCAL. Trong phin bn 8i, phng php qun l ny vn cha c p dng cho tablespace SYSTEM. Nu p dng, h thng s pht sinh li 809225.
Trang 97
Vic dch chuy d liu t h thng x l trc tuyn (OLTP online transaction processing systems) sang thnh d liu ca h thng kho d liu (data warehouse staging systems). Cp nht kho d liu (data warehouses) v cc d liu thuc h thng. Np cc d liu t cc kho c s d liu trung tm (central data warehouses). Lu tr cc d liu ca h thng OLTP and data warehouse systems efficiently. Cung cp d liu cho cc khch hng hoc ngi s dng ni b. Dch chuyn d liu thng qua vic trao i cc tablespaces cho php di chuyn d liu nhanh chng v hiu qu hn cc cch dch chuyn d liu khc nh export/import hay unload/load i vi cng mt d liu, Do vic trao i cc tablespace ch i hi phi sao chp cc datafiles ri tch hp thng tin v cu trc ca tablespace vo database mi. C th s dng phng php trao i cc tablespaces dch chuyn cc index data, do , trnh vic ti to li (rebuilds) cc index, ta c th thc hin cng vic ny np d liu trong cc bng.
4. a tablespace vo s dng (plug-in). Thc hin cng vic Import a cc tablespaces vo database ch. Minh ho vic trao i tablespace 1. bit tablespace SALES_1 v SALES_2 c cha cc tham chiu trong n khng, ta thc hin cu lnh: EXECUTE dbms_tts.transport_set_check('sales_1,sales_2', TRUE); Cu lnh ny sinh ra kt qu v lu trong view c tn l: TRANSPORT_SET_VIOLATIONS. S dng cu lnh truy vn xem kt qu: SELECT * FROM transport_set_violations; Lnh truy vn kt xut kt qu rng cho bit tablespace khng cha cc tham chiu ti tablespace bn ngoi. 2. To transportable tablespace set Pht lnh thay i trng thi ca tablespace v trng thi read-only khng cho php cp nht d liu vo tablespace ny, chun b cho vic trao i tablespace. ALTER TABLESPACE sales_1 READ ONLY; S dng cng c tin ch Export ca Oracle kt xut cc tablespace ny: EXP TRANSPORT_TABLESPACE=y TABLESPACES=(sales_1,sales_2) TRIGGERS=y/n CONSTRAINTS=y/n GRANTS=y/n FILE=expdat.dmp TRIGGERS=Y cho php kt xut; N khng cho php kt xut. GRANTS=Y kt xut c cc quyn trn mi bng thuc tablespace ; N khng kt xut. CONSTRANTS=Y cc rng buc tham chiu s c kt xut; N khng kt xut cc rng buc tham chiu. 3. Thc hin sao chp cc datafile ca tablespace va c kt xut ra mt v tr khc. 4. t li trng thi bnh thng cho tablespace va c xem xt. ALTER TABLESPACE sales_1 READ WRITE; 5. a bn sao ca cc datafile va c sao chp vo v tr tng ng vi database ch. 6. Connect vo database mi vi mc quyn SYSDBA. 7. a cc tablespaces c kt xut vo database mi
IMP TRANSPORT_TABLESPACE=y DATAFILES=('c:\db\sales_jan','c:\db\sales_feb',...) TABLESPACES=(sales_1,sales_2) TTS_OWNERS=(dcranney,jfee) FROMUSER=(dcranney,jfee) TOUSER=(smith,williams) FILE=expdat.dmp
9.6.TO TABLESPACE
9.6.1. Lnh to tablespace
Ta c th s dng cu lnh SQL to mt tablespace. C php: CREATE TABLESPACE tablespace
Trang 99
DATAFILE filespec [autoextend_clause] [, filespec [autoextend_clause]]... [MINIMUM EXTENT integer[K|M]] [DEFAULT storage_clause] [PERMANENT|TEMPORARY] [ONLINE|OFFLINE] storage_clause:= = STORAGE ( [INITIAL integer[K|M]] [NEXT integer[K|M]] [MINEXTENTS integer] [MAXEXTENTS {integer|UNLIMITED}] [PCTINCREASE integer] ) Vi: tablespace DATAFILE DEFAULT STORAGE tham s lu tr mc nh cho tt c cc i tng c to lp trong tablespace MINIMUM EXTENT kch thc ti thiu ca extent value ONLINE OFFLINE PERMANENT TEMPORARY t ch s dng ngay t khi to lp (Online) cho tablespace cho c s dng tn ca tablespace c to tn data files ca tablespace c to
(Offline)
tablespace c th s dng lu tr cc i tng thng tr tablespace ch s dng lu tr cc i tng trung gian (temporary objects). V d: s dng lu tr d liu khi sp xp theo cu lnh ORDER BY
V d: CREATE TABLESPACE app_data DATAFILE /DISK4/app01.dbf SIZE 100M, /DISK5/app02.dbf SIZE 100M MINIMUM EXTENT 500K DEFAULT STORAGE (INITIAL 500K NEXT 500K MAXEXTENTS 500 PCTINCREASE 0); Cng tng t, ta c th thc hin trong Oracle Enterprise Manager OEM: 1. 2. 3. 4. 5. Chy Oracle Storage Manager. Chn Tablespace>Create. Trong General page ca bng thuc tnh, nhp vo tn tablespace ri chn ADD. Trong bng thuc tnh Create Datafile, ch ra cc data file. Trong phn Extents page, nhp vo cc thng tin lu gi
Trang 100
Hn ch S lng ti a cc tablespaces trn mi database l 64. S lng ti a cc data files trong mi tablespace l 1023.
9.6.4. Cc tham s lu tr
Lng khng gian dng cho mt tablespace c xc nh trong mnh lu tr (storage clause). Cc tham s ny c xc nh ngay ti thi im to tablespace. Trong trng hp khng ch r cc tham s ny trong lnh to lp (CREATE), cc tham s s c s dng cc gi tr theo mc nh. C mt s tham s lu tr cn quan tm sau:
Trang 101
INITIAL quy nh kch thc ca extent u tin. Kch thc nh nht ca extent u tin l 02 block = (2*DB_BLOCK_SIZE). Mc nh, kch thc ny l 5 blocks = (5* DB_BLOCK_SIZE). NEXT ng vi kch thc ca extent th hai. Kch thc ti thiu l 01 block. Mc nh, kch thc ny l 5 blocks = (5* DB_BLOCK_SIZE). MINEXTENTS s lng extent c to lp mi khi segment c to lp. Mc nh gi tr ny l 1. PCTINCREASE phn trm tng kch thc extent. Kch thc ca mt extent c xc nh theo kch thc:
Vi:
Sizen
V d: NEXT = 200K, PCTINCREASE = 50. Ta tnh c extent th hai = 200K, extent th ba = 300K, extent th t = 450K MAXEXTENTS xc nh s lng ti a cc extents c trong mt segment. Gi tr nh nht l 1. Gi tr ln nht theo mc nh ph thuc vo kch thc ca block d liu. Gi tr ny cng c th c xc nh thng qua gi tr UNLIMITED, tng ng vi gi tr l 2147483645.
Trang 102
Thit lp ch AUTOEXTENT khi data file tn ti C php: ALTER DATABASE [database] DATAFILE 'filename'[, 'filename']... autoextend_clause Trong OEM ta thc hin cc bc sau: 1. 2. 3. 4. 5. Chy Oracle Storage Manager. Chuyn ti nt Tablespace node. Chn data file. Trong phn Autoextend page, bm vo nt Enable Auto Extend. Bm nt Apply.
DATAFILE 'filename'[, 'filename']... RESIZE integer[K|M] Vi: integer Kch thc tuyt i ca file data file
S dng cu lnh SQL sau thay i ni lu tr mc nh: ALTER TABLESPACE tablespace {MINIMUM EXTENT integer[K|M] |DEFAULT storage_clause } V d: ALTER TABLESPACE app_data MINIMUM EXTENT 2M; ALTER TABLESPACE app_data DEFAULT STORAGE (INITIAL 2M NEXT 2M MAXEXTENTS 999);
Trang 105
Trong OEM ta lm nh sau 1. Chy Oracle Storage Manager. 2. Chuyn ti nt Tablespace ri chn data file tng ng. 3. Trong phn General page, thay i li cc thng tin thch hp. 4. Bm nt Apply.
9.7.7. Tablespace ch c
S dng lnh SQL thit lp cc ch ny. C php: ALTER TABLESPACE tablespace READ{ONLY|WRITE} V d: ALTER TABLESPACE app_data READ ONLY; Trong OEM ta thc hin theo cc bc sau: 1. 2. 3. 4. Chy Oracle Storage Manager. Chuyn ti nt Tablespace. Chn tablespace. Chn Tablespace>Make Read Only. 5. Bm nt OK.
Thit lp ch ch c cho tablespace Ta c th thit lp ch ch c cho tablespace khi n m bo mt s iu kin sau: Tablespace phi ang online Khng c transaction no xy ra i vi tablespace Tablespace khng cha cc rollback segments Hin thi khng c online backup trn tablespace
9.7.8. Hu tablespace
Trong mt vi trng hp ta c th hu tablespace khi database. Vic ny c th thc hin bi cu lnh SQL sau: DROP TABLESPACE tablespace [INCLUDING CONTENTS [CASCADE CONSTRAINTS]] Vi tablespace tn ca tablespace c hu hu lun cc segment c trong tablespace CASCADE CONSTRAINTS Hu lun c cc rng buc lin quan ti cc bng bn ngoi c tham chiu duy nht ti cc bng thuc tablespace b hu V d:
Trang 106
INCLUDING CONTENTS
DROP TABLESPACE app_data INCLUDING CONTENTS; Trong OEM ta thc hin theo cc bc sau 1. Chy Oracle Storage Manager. 2. Chuyn ti nt Tablespace chn tablespace tng ng. 3. Chn Tablespace>Remove. 4. Bm nt OK.
DBA_TABLESPACES, USER Din gii ca cc tablespaces. TABLESPACES DBA_SEGMENTS, USER_SEGMENTS DBA_EXTENTS, USER_EXTENTS DBA_FREE_SPACE, USER_FREE_SPACE V$DATAFILE V$TEMPFILE DBA_DATA_FILES DBA_TEMP_FILES V$TEMP_EXTENT_MAP V$TEMP_EXTENT_POOL Thng tin v segment c trong cc tablespaces. Thng tin v data extents c trong cc tablespaces. Thng tin v free extents c trong cc tablespaces. Thng tin v tt c cc datafiles, bao gm c s hiu tablespace v user s hu tablespace. Thng tin v cc tempfiles, bao gm c s hiu tablespace v user s hu tablespace. Hin th cc datafiles thuc cc tablespaces. Hin th cc tempfiles thuc cc temporary tablespaces. Thng tin ca cc extents trong cc locally managed temporary tablespaces. Thng tin ca cc locally managed temporary tablespaces bao gm: trng thi ca temporary space cached (vng khng gian m trung gian) c s dng bi mi instance. Hin th vng khng gian used/free ca mi tempfile. Cc tablespaces mc nh v temporary tablespaces ca cc users. Hn mc s dng tablespace ca cc users. Thng tin v sort segment i vi mi instance. Vng khng gian sp xp trung gian c s dng bi user v temporary/permanent tablespace.
Trang 107
SVRMGR> SELECT tablespace_name, contents,status 2> FROM dba_tablespaces; TABLESPACE_NAME --------------SYSTEM RBS TEMP DATA01 4 rows selected. CONTENTS --------PERMANENT PERMANENT TEMPORARY PERMANENT STATUS -----ONLINE ONLINE ONLINE ONLINE
Trang 108
Dung lng tnh theo bytes ca tablespace hin thi Ch t ng m rng dung lng ca datafile Dung lng ti a
Ch s tng t ng trong h thng
V d: SVRMGR> SELECT file_name, tablespace_name, bytes, 2> autoextensible, maxbytes, increment_by 3> FROM dba_data_files; FILE_NAME --------/DISK1/system01.dbf /DISK2/rbs01.dbf /DISK3/temp01.dbf /DISK4/data01.dbf /DISK5/data02.dbf 5 rows selected. TABLESPACE_NAME --------------SYSTEM RBS TEMP DATA01 DATA01 BYTES -------31457280 5242880 5242880 5242880 512000 AUT ---NO NO NO NO YES MAXBYTES -------0 0 0 0 15728640 INCREMENT_BY ---------0 0 0 0 512
Trang 109
10.1.1. Table
Table (bng), l ni lu gi d liu trong database. D liu trong mt table c lu gi khng theo mt th t bt buc. Cc d liu trong mt table thuc loi nonpartitioned (khng phn khu) s phi lu gi trong cng mt tablespace.
10.1.3. Cluster
Cc dng d liu trong mt cluster c lu tr theo cc gi tr ca trng kho (key column). Mt cluster c th cha mt hay nhiu tables v n c xem l mt kiu on d liu (type of data segment). Cc tables trong mt cluster thuc v cng mt on v c chung cc tnh cht lu tr.
10.1.4. Index
Tt c cc u mc (entries) ng vi mt index c th c lu tr trong mt index segment. Mt table c ti bao nhiu indexes, th s c by nhiu index segments c s dng. Mc ch ca segment ny l tm kim v nh v cc dng d liu trong mt table da trn mt kho c ch ra.
Trang 110
Trang 111
10.2.QUN L EXTENTS
10.2.1. Cp pht v thu hi cc extents
Vic cp pht cc extent xy ra mi khi segment c to mi, c m rng hay b thay i (altered). V n s b thu hi khi segment b hu, b thay i, b ct bt (truncated). Ring i vi cc rollback segments, cc extent c th b t ng thu hi.
Trang 112
Mi khi segments c to lp, n s c cp pht mt vng khng thch hp t nhng extents cn trng trong tablespace. Segment s c gng s dng nhiu nht cc vng khng gian lin tip nhau. Sau khi cp pht, extent s c xem l used extent (extent c s dng). Khi cc segments gii phng vng khng gian, cc extents tng ng vi n s c gii phng v a vo vng free extents (extents ri) ca tablespace. Vi vic cp pht v gii phng cc extents c th gy nn hin tng phn on vng d liu trong cc data files ca tablespace.
Trang 113
Lu Tin trnh SMON s ch kt hp cc extent trong cng tablespaces khi m PCTINCREASE ln hn 0. Trong storage clause mc nh ca tablespaces, t PCTINCREASE=1 khi cc user objects c th c t ng kt hp cc vng trng mi khi n c gii phng. Yu cu kt hp vng trng View DBA_FREE_SPACE_COALESCED c dng xem tablespace no c cc extents rng c th kt hp c vi nhau. S dng cu lnh truy vn sau y ly cc thng tin: SVRMGR> SELECT tablespace_name, total_extents, 2> percent_extents_coalesced 3> FROM dba_free_space_coalesced 4> WHERE percent_extents_coalesced <> 100; TABLESPACE_NAME TOTAL_EXTE PERCENT_EX --------------- ---------- ---------RBS 3 33 DATA01 9 22 2 rows selected. Thc hin kt hp cc vng khng gian trng trong tablespace bng lnh di y: ALTER TABLESPACE tablespace COALESCE; Trong OEM, ta thc hin theo cc bc sau 1. S dng cng c Oracle Tablespace Manager. 2. Chuyn ti nt Expand Tablespaces. 3. Chn tablespace tng ng. 4. Chn mc Tools>Coalesce Free Extents.
Trang 114
10.3.BLOCK D LIU
10.3.1. Cu trc ca block d liu
Cc Blocks d liu ca Oracle c cu thnh t cc phn sau: Block header (vng u): Header cha a ch ca block d liu, thng tin v table directory, row directory, v cc transaction slots. Thng tin trong Block headers s tng dn theo hng t trn xung di. Data space (vng d liu): Cc dng d liu c np vo block theo hng t di ln. Free space (vng trng): Vng trng trong block l vng nm gia vng header v vng khng gian lu tr dng d liu. Ban u, vng khng gian trng l lin tip vi nhau.Tuy nhin sau mt thi gian s dng, vng khng gian trng trong mt block c th b phn on do vic xo v cp nht, thay i cc dng d liu. gii quyt vn ny, Oracle server cho php thc hin kt hp cc phn on d liu.
Trang 115
Cc tham s INITRANS v MAXTRANS ch ra s lng khi to, s lng ln nht cc transaction slots, c to trong mi index block hay data block. Cc transaction slots c s dng lu gi cc thng tin v cc transactions lm thay i cc block ti cng mt thi im. Mi transaction ch s dng mt transaction slot. INITRANS c gn gi tr mc nh bng 1 cho data segment, v 2 cho index segment. MAXTRANS c gn gi tr mc nh l 255, dng to ngng i vi cc transactions ng thi c lm thay i cc block d liu hay index block. Khi thit lp gi tr ny, vng khng gian cho cc transaction slots s c m bo c th thc hin cc transaction mt cch hiu qu. Tham s iu khin vng lu tr d liu PCTFREE trong mt data segment ch lng phn trm vng trng trong mi data block dnh cho vic tng ln ca d liu do vic cp nht cc dng d liu trong block. Theo mc inh, PCTFREE l 10 phn trm. PCTUSED trong mt data segment ch lng phn trm ti thiu ca vng khng gian s dng, theo Oracle Server lu gi cc block d liu ca table. Mt block s c np li vo free list (danh sch trng) mi khi PCTUSED gim xung. Free list ca mt segment l danh sch cc blocks sn dng cho vic cp pht mi khi c dng d liu c insert. Theo mc nh mi free list s c to tng ng vi mi segment. Tham s FREELISTS xc nh s lng free list. Mc nh, PCTUSED bng 40 phn trm. PCTFREE v PCTUSED c tnh ton theo phn trm vng khng gian ca d liu, tc l vng khng gian ca Block cn li tr i vng khng gian header.
Trang 116
Phase 2: 20% khng gian cn li s dng cho vic tng kch thc ca cc dng d liu do vic cp nht li cc dng d liu ny. Phase 3: Khi xo dng d liu trong block, vng khng gian trng trong block s tng ln. Tuy nhin, lc ny ta vn cha th insert d liu vo block c. Phase 4: Khi vng trng trong block t ti mc PCTUSED, ta li c th insert d liu vo Block. Ta li bt u t bc 01.
Hin tng phn on d liu xy ra vi mc khc nhau i vi cc loi segments khc nhau. Oracle khuyn co nn lu tr d liu trn nhiu tablespaces khc nhau gim thiu vic s dng lng ph cc vng khng gian.
Trang 117
Phn loi cc Objects v phn on Cc loi objects khc nhau c lit k di y theo mc tng dn v phn on: Cc data dictionary objects, ngoi tr cc audit table (bng kim tra), u khng bao gi b dropped hay truncated. V th chng khng b phn on trong tablespace. Vng khng gian s dng cho vic lu tr cc ng dng lun c cp pht v thu hi trong qu trnh ti cu trc li b nh. V th, cc tables lu tr ny c mc phn on l thp. Data segment v index segements c s dng cho vic lu tr d liu ngi dng thuc cc ng dng. Cc i tng ny thng c mc phn on cao. Do cc rollback segments c phn b li extents mt cch t ng, chng d gy ra hin tng phn on d liu trong h thng. Temporary segments trong cc permanent tablespaces thng xuyn c b xy ra hin tng phn on.
Trang 118
Ta c th ly thng tin v cc segments theo cc loi sau: Thng tin tng hp: User s hu, tn segment, loi segment, tn tablespace. Thng tin v kch c: extents, blocks. Thng tin lu tr: INITIAL_EXTENT, NEXT_EXTENT, MIN_EXTENT, MAX_EXTENT, PCT_INCREASE V d: Xem s lng cc extents v blocks c cp pht cho tng segment do user SCOTT s hu. SVRMGR> SELECT segment_name,tablespace_name,extents,blocks 2> FROM dba_segments 3> WHERE owner='SCOTT'; SEGMENT_NAME -----------EMP DEPT BONUS SALGRADE DUMMY 5 rows selected. TABLESPACE_NAME --------------DATA01 DATA01 DATA01 DATA01 DATA01 EXTENTS --------5 1 1 1 1 BLOCKS -------55 5 5 5 5
Trang 119
Ta c th ly thng tin v cc extents theo cc loi sau: Thng tin nhn dng: User s hu, tn segment, m hiu extent Thng tin v kch c v ni t: TABLESPACE_NAME, RELATIVE_FNO, FILE_ID, BLOCK_ID, BLOCKS V d: Xem thng tin chi tit v cc extents c trong mt segment cho trc SVRMGR> SELECT extent_id,file_id,block_id,blocks 2> FROM dba_extents 3> WHERE owner='SCOTT' 4> AND segment_name='EMP'; EXTENT_ID FILE_ID --------------0 4 1 4 2 4 3 4 4 4 5 rows selected. BLOCK_ID -------2 27 32 42 57 BLOCKS -----5 5 10 15 20
Trang 120
View ny cha cc thng tin v V d: SVRMGR> SELECT tablespace_name, count(*), 2> max(blocks), sum(blocks) 3> FROM dba_free_space 4> GROUP BY tablespace_name; TABLESPACE_NAME COUNT(*) MAX(BLOCKS SUM(BLOCKS --------------- -------- ---------- ---------DATA01 2 1284 1533 RBS 3 2329 2419 SORT 1 1023 1023 SYSTEM 1 5626 5626 TEMP 1 2431 2431 5 rows selected.
Trang 121
Phn u (header) ca mt rollback segment cha mt transaction table l ni lu gi thng tin v cc giao dch hin thi c s dng ti rollback segment ang xem xt. Mi transaction ch c th s dng duy nht mt rollback segment lu gi cc d liu dng khi phc. Nhiu transactions c th ng thi ghi d liu ln rollback segment.
Trang 122
Phc hi cc Transaction Trong trng hp mt instance gp li khi cc transactions ang thc hin, Oracle server cn phi khi phc li cc d liu cha commit. Rollback trong trng hp ny c gi l phc hi d liu. Vic ny ch thc hin c khi cc thay i i vi cc rollback segments c kt hp bo v bi cc redo log files. Nht qun trong vic c d liu Khi mt thc hin cc transactions, cc users trong database s khng th thy c cc d liu b thay i m cha c commit bi transactions. Cc d liu c lu trong rollback segments s vn c s dng cung cp cho cc users khc nhm m bo nht qun d liu cho cc user .
Trang 123
Sau khi transaction c commit, rollback segment ny li c Oracle a v trng thi sn sng s dng. Oracle s t ng gn transaction tip theo cho mt rollback segment bt k no ang cn ri (available) tr phi transaction ny li c tip tc gn cho rollback segment bng tay bi user. S dng cc extents Cc transactions s dng extents trong rollback segment theo mt trnh t xoay vng. Theo , transaction s ghi d liu thay i vo extent hin thi, ri tip tc chuyn ti cc extent k tip. Khi extent cui cng c s dng y, n li quay tr v extent 1. r hn, ta xem xt mt v d sau: C hai transaction cng s dng mt rollback segments c 04 extents.
1. Ti thi im bt u, giao dch bt u ghi d liu vo Extent 3 2. Trong khi thc hin, cc transaction s ghi d liu vo Extent 3 cho ti khi y ri tip tc chuyn sang ghi d liu ln Extent 4. 3. Khi Extent 4 cng y, n tip tc li quay tr li ghi d liu vo extent 1 nu extent ny trng thi ri hoc inactive. Mt extent l ri hoc inactive nu hin thi n khng b s dng bi bt k mt transaction no.
Sau khi rollback segments c to lp, qun tr vin database vn c th thay i tham s lu tr ca rollback segments. thay i, qun tr vin ch cn iu chnh cc tham s OPTIMAL hay MAXEXTENTS cho ph hp. V d: Cu lnh sau thay i s lng ti a cc extents cp pht cho rollback segments RBS_01.
ALTER ROLLBACK SEGMENT rbs_01 STORAGE (MAXEXTENTS 120);
Vi cu lnh thay i ny, ta cng c th iu chnh vi rollback segment SYSTEM , bao gm c tham s OPTIMAL.
Trang 125
Oracle server s thu hi li cc extent cp pht khi: Kch thc ca rollback segment hin ti c iu chnh ti gi tr ca tham s OPTIMAL. Khi c nhiu hn 02 extent ri lin tip cnh nhau. Mt iu lu l khi thu hi li cc extent, Oracle server s thu hi extent cha d liu lu nht trc . Ta c th thc hin gim bt kch thc ca rollback segments thng qua vic s dng cu lnh ALTER ROLLBACK SEGMENT. Lu , khi ny rollback segment c thu nh nht thit phi ang trng thi online. V d: Thu nh kch thc rollback segment RBS1 bng 100K:
ALTER ROLLBACK SEGMENT rbs1 SHRINK TO 100K;
Cu lnh pha trn thc hin rt bt kch thc ca rollback segment ti kch thc nh c ch ra. Tuy nhin, vic rt gn s dng li khi c mt extent khng th b thu hi do bt k nguyn nhn no.
Trang 126
Thng thng, vic thm mi bn ghi vo bng cn t khng gian lu gi thng tin phc hi hn l vic xo d liu khi bng. Vi thao tc thm mi, ch cn lu gi ROWID vo rollback, trong khi thao tc delete li cn phi lu gi ton b dng d liu. nh gi kch thc ca rollback segment cn c theo transaction di nht c s dng rollback segment. S lng cc Extents Vi cc rollback segment c qu nhiu cc extents s gy ra lng ph khng gian lu tr d liu, gim bt lng ph, ta c th iu chnh tham s MINEXTENTS cho ph hp. Oracle khuyn ngh, thng thng, MINEXTENTS nn t gi tr l 20.
Trang 127
Trong Oracle Enterprise ta thc hin theo cc bc sau: 1. Chy Oracle Storage Manager. 2. Chn Rollback>Create. 3. Trong phn General page, nhp vo tn, tablespace, v kiu tng ng. Chn mc Online trong radio button. 4. Trong phn Extents, nhp vo cc thng tin v rollback segments. 5. Bm nt Create.
2. 3. 4. 5.
Chuyn ti nt Rollback Segments. Chn rollback segment tng ng. Chn Rollback>Place Online/ Take Offline. Trong hp thoi xc nhn, bm nt Yes.
Vi: N T TRP S lng rollback segment cn thit Gi tr tham s TRANSACTIONS Gi tr tham s TRANSACTIONS_PER_ROLLBACK_SEGMENT
3. Trong trng hp N nh hn hay bng s lng non-SYSTEM rollback segments c c, instance cng s khng cn ti nhiu rollback segments hn. 4. Khi gi tr ca N ln hn hay bng s cc non-SYSTEM rollback segments dnh cho instance, khi i hi phi s dng thm c cc public rollback segments.
Trang 129
Trong trng hp tham s OPTIMAL c ch r, Oracle server s c gng thc hin cp pht v gii phng vng khng gian da theo gi tr ca tham s OPTIMAL. Ngc li, ta c th thc hin cp pht khng gian thng qua lnh trc tip: ALTER ROLLBACK SEGMENT rollback_segment SHRINK [ TO integer [ K|M ]]; Trong trng hp tham s integer khng c ch r, Oracle s gim lng khng gian rollback segment v ti gi tr OPTIMAL Trong OEM ta c th thc hin theo cc bc sau: Chy Oracle Storage Manager. Chuyn ti nt Rollback Segments. Chn rollback segment tng ng. Chn Rollback>Shrink. Trong hp thoi Shrink Rollback Segment, chn Optimal Size rt gn kch thc rollback segment theo kch thc c ti u. Hoc chn Size ri nhp vo gi tr kch thc cho vng khng gian tng ng. 6. Bm nt OK. 1. 2. 3. 4. 5.
Mt s tham s khi to chnh: UNDO_MANAGEMENT (MANUAL / AUTO): Cho bit database c s dng c ch AUM hay khng. Default = MANUAL UNDO_TABLESPACE (valid tablespace): Ch r tn undo tablespace s dng. UNDO_RETENTION (in seconds default=30): Cho bit thi gian tr thc hin committed undo. UNDO_SUPPRESS_ERRORS (TRUE / FALSE): Cho bit h thng c tr v exception hay khng khi SET TRANSACTION USE ROLLBACK SEGMENT pht li. Default = TRUE
Cc thng tin bao gm: SEGMENT_ID: M hiu ca segment SEGMENT_NAME: Tn segment TABLESPACE_NAME: Tn tablespace cha segment OWNER (PUBLIC/SYS): Tn user s hu segment STATUS (ONLINE/OFFLINE): Trng thi ca segment V d: Xem thng tin chung v segment SVRMGR> SELECT segment_name, tablespace_name, owner, status 2> FROM dba_rollback_segs; SEGMENT_NAME TABLESPACE_NAME OWNER STATUS
Trang 131
--------------------SYSTEM SYSTEM RBS1 RBS RBS2 RBS RBS3 RBS 4 rows selected. D liu trong ct OWNER nhn cc gi tr:
--------
SYS: Rollback thuc loi private PUBLIC: Rollback thuc loi public
V d: Xem cc thng tin thng k v segments SVRMGR> SELECT n.name, s.extents, s.rssize, s.optsize, 2> s.hwmsize, s.xacts, s.status 3> FROM v$rollname n, v$rollstat s 4> WHERE n.usn = s.usn; NAME ----SYSTEM RBS1 RBS2 EXTENTS ------43 20 4 RSSIZE OPTSIZE -------- -------2199552 202752 204800 38912 HWMSIZE -------2199552 417792 38912 XACTS STATUS ------ --------0 ONLINE 0 ONLINE 0 PENDING OFFLINE
3 rows selected.
Trang 132
Din gii mt s ct d liu trong view V$ROLLSTAT Tn ct USN EXTENTS RSSIZE XACTS OTPSIZE HWMSIZE AVEACTIVE STATUS Din gii L s hiu ca rollback segment (Rollback segment number) S lng cc extents c trong rollback segment Kch thc ca segment hin thi tnh theo n v bytes S lng cc transaction s dng rollback segment Gi tr OPTIMAL ca rollback segment Hight warter mark; kch thc ti a tnh theo bytes, khi rollback segment tng Kch thc ca extent hin thi, Trng thi ca rollback segment
V d: SVRMGR> SELECT s.username, t.xidusn, t.ubafil, 2> t.ubablk, t.used_ublk 3> FROM v$session s, v$transaction t 4> WHERE s.saddr = t.ses_addr; USERNAME ----------SYSTEM SCOTT XIDUSN ---------2 1 UBAFIL --------2 2 UBABLK ---------7 163 USED_UBLK ---------1 1
Trang 133
2 rows selected. Din gii mt s ct d liu Tn ct SES_ADDR XIDUSN UBAFIL, UBABLK, UBASQN,UBAREC USED_UBLK START_UEXT, START_UBAFIL, START_UBABLK Din gii a ch ca session, ly c t V$SESION.SADDR S hiu ca Rollback segment c s dng bi transaction V tr hin thi ca rollback segment m transaction s ghi vo
S hiu block undo c to ra bi transaction S hiu ca extent (file, block) thuc rollback segment m transaction bt u ghi d liu
Trang 134
Gi tr ban u (before-image) trong rollback segment c ghi ln bi mt transaction khc Gii php Tng ch s MINEXTENTS M rng kch thc extent Tng gi tr OPTIMAL
Vn Khi mt extent trong rollback segment c ghi y, Oracle server s tip tc s dng extent k tip theo c ch xoay vng. Trong trng hp extent k tip vn ang trong tnh trng active, transaction s khng s dng c n. Mt khc, n cng khng th b qua extent k tip chuyn ti extent sau na nu n ri. Khi , rollback segment s c b sung thm cc extent. Vic lm ny lm cho rollback segment ngy mt m rng v qun tr vin cn phi can thip hn ch vic m rng ny. Gii php Qun tr vin database cn thc hin kim tra thng tin ca cc transaction ang c thc hin thng qua vic ly thng tin t cc view V$ROLLSTAT, V$TRANSACTION, V$SESSION pht hin cc transaction ang b cn tr, t thc hin vic iu chnh cho ph hp. Cng vic kim tra v gim st ny c thc hin bng tay bi ngi qun tr database. V d: Xem thng tin v cc transactions ang c thc hin SVRMGR> SELECT s.sid, s.serial#, t.start_time, t.xidusn, s.username 2> FROM v$session s, v$transaction t, v$rollstat r 3> WHERE s.saddr = t.ses_addr 4> AND t.xidusn = r.usn
Trang 135
5> AND ((r.curext = t.start_uext-1) OR 6> ((r.curext = r.extents-1) AND t.start_uext=0)); SID SERIAL# START_TIME --- ------- ------------9 27 10/30/97 21:10:41 1 row selected. XIDUSN USERNAME ------ -------2 SYSTEM
Trang 136
Trang 137
Temporary Tablespace Mt temporary tablespace c s cho cc temporary segments tng ng v khng cha bt k segment no c kiu khc. Ta c th to cc temporary tablespace theo cu lnh SQL sau: CREATE TABLESPACE tablespace_name TEMPORARY DATAFILE filespec [autoextend_clause] [ , filespec [autoextend_clause]] ... Mt permanent tablespace c th chuyn i thnh dng temporary tablespace bng cch s dng cu lnh: ALTER TABLESPACE tablespace_name TEMPORARY Lu : vi cu lnh trn, tablespace khng c php cha bt k mt i tng thng tr no (nh: table, store procedure, ...). Mt temporary tablespace c th chuyn i li thnh permanent tablespace thng qua cu lnh SQL di y: ALTER TABLESPACE tablespace_name PERMANENT Oracle server c th to mt temporary segment trong mt permanent tablespace vi s iu kin sau: User thc hin cu lnh sp xp cn n vng khng gian trn a. User chy cu lnh m n c gn cho mt permanent tablespace thc hin sp xp. Khi mt permanent tablespace c s dng cho vic sp xp, mt instance c th c mt hoc nhiu temporary segment trong tablespace. Mt temporary segment s c hy bi tin trnh nn SMON khi kt thc cu lnh sp xp v vng khng gian cp pht s c gii phng cho cc i tng khc ca database
Trang 138
s dng. Permanent tablespaces c s dng cho vic sp xp, c ba vng khng gian trong tablespace c th c phn vng khc nhau. Thng thng, mi tablespace nn c s dng cho tng tin trnh sp xp khc nhau. Khi mt temporary tablespaces c s dng cho cc temporary segments, Instance ch to mt segment dng sp xp cho tablespace. Mt vi transactions cn n sp xp trn a c th s dng cng segment. Tuy nhin, mt extent th khng th cng chia s ng thi cho nhiu transactions khc nhau.
Trang 139
Ta c th ly c cc thng tin v temporary segment trong mt s bng t in d liu: DBA_SEGMENTS: cha thng tin v tt c cc loi segments trong database. V$SORT_SEGMENT: cho bit trng thi ca cc sort extent pool (vng khng gian sp xp). Vi t in d liu ny, ta c th bit c nhng thng tin sau: Tn ct TABLESPACE_NAME EXTENT_SIZE TOTAL_EXTENTS TOTAL_BLOCKS USED_EXTENTS USED_BLOCKS FREE_EXTENTS FREE_BLOCKS MAX_SORT_SIZE MAX_SORT_BLOCKS V d: SVRMGR> SELECT tablespace_name, extent_size, 2> total_extents, max_sort_blocks 3> FROM v$sort_segment; TABLESPACE_NAME EXTENT_SIZ --------------- ---------TEMP 128 1 row selected. TOTAL_EXTE ---------1 MAX_SORT_B ---------128 Tn temporary tablespace Kch thc ca extent Tng s cc extents Tng s cc blocks S lng extents s dng S lng blocks s dng S lng extents cn trng S lng blocks cn trng Kch thc ti a ca vng d liu sp xp S lng blocks ti a dng sp xp d liu Din gii
Trang 140
MAX_SORT_SIZE v MAX_SORT_BLOCKS l s lng cc extents v cc blocks s dng bi php sp xp ln nht. Thng tin ny l hu ch trong vic iu chnh kch thc ca temporary tablespace V$SORT_USAGE: cho bit thng tin v cc sp xp hin c ca instance, ta kt hp vi V$SESSION bit thm cc thng tin: V d: SVRMGR> 2> 3> 4> SELECT s.username, u."USER", u.tablespace, u.contents, u.extents, u.blocks FROM v$session s,v$sort_usage u WHERE s.saddr=u.session_addr; CONTENTS --------TEMPORARY EXTENTS ------1 BLOCKS -----128
Trang 141
Cluster h tr mt vi qu trnh iu khin cc hng c lu tr. Khi mt cluster c s dng, Oracle server s lu tt c cc hng m c cng gi tr kho trong cng mt Block nu c th. Khi bng Index-Organized c s dng, ngi s dng c th iu khin trt t ca cc hng. D liu trong bng index-organized s trong trt t ca kho ch nh.
Trang 142
13.1.1. Cluster
Mt cluster dng cha tp cc hng c quan h trong mt Oracle block.
S khc nhau gia bng c cluster v bng khng cluster Nu hng d liu uc lu trong cc bng thng thng th cc bng khc nhau s s dng tp cc block khc nhau ca ring bng . Mt block m s dng lu cc hng t bng ORDER s khng cha d liu trong bng ITEM v ngc li. Nu hai bng ORDER v bng ITEM c lu trong mt cluster chng s chia s cng mt phn on cluster. Mt block trong phn on ny c th lu cc hng ca c hai bng. Nu mt bng c lu trong mt cluster, cluster s tr thnh n v vt l lu tr v bng s l thc th logic. Cc c tnh ca cluster Cc cluster c c tnh sau: Mi cluster bao gi cng c cluster key (kho ca cluster) dng xc nh cc hng cn phi nhm li vi nhau. Cluster key c th da trn mt ct hay nhiu ct. Cc bng trong mt cluster phi c cc ct tng ng vi cluster key. Cluster l c ch trong sut i vi ng dng s dng cc bng. D liu trong cc bng c cluster c th c thao tc ging nh trn cc bng thng thng. Cp nht mt ct trong kho ca cluster c th dn n vic thit lp li v tr ca hng . Cluster key c lp vi primary key (kho chnh) ca bng. Cc bng trong cluster c th c primary key. Primary key ny c th tham gia vo cluster key. Cluster hay c dng h tr hiu nng. Truy xut ngu nhin d liu trong cluster c th nhanh hn, nhng khi s dng truy vn trn ton bng th cc bng c cluster s chm hn.
Trang 143
Trang 144
Index cluster Mt index cluster s dng mt index bo tr d liu trong mt cluster, cc index ny c gi l cluster index: Cluster index phi c sn cho vic lu tr, truy xut v bo tr d liu trong mt index cluster. Index cluster c s dng tr n mt block m cha cc hng vi mt gi tr kho. Cu trc ca cluster index tng t nh mt normal index, mc du normal index khng cha gi tr kho NULL, nhng cluster index c th cha gi tr kho NULL. Ch c mt im vo (entry) cho mi kho trong cluster index, v vy chng c th nh hn so vi index thng thng trong cng mt tp gi tr kho. lu tr v truy xut cc hng t cluster, oracle server s dng cluster index xc nh hng u tin tng ng vi gi tr kho sau truy xut cc hng cho gi tr kho. Nu mt vi hng trong index cluster c cng gi tr kho, kho cluster khng lp li cho mi hng. Trong mt bng vi s ln cc hng cng gi tr kho, s dng index cluster c th lm gim s lng khng gian a cn lu tr. Hash Cluster Hash cluster s dng mt chc nng tnh ton v tr ca cc hng. Hm bm (hash) s dng kho cluster v c th c ngi s dng nh ngha hay h thng sinh ra. Khi mt hng c chn vo trong bng trong mt hash cluster: Ct kho hash c s dng tnh gi tr bm (hash). Hng c lu da vo gi tr bm. Hm bm s dng xc nh cc hng trong khi trong khi truy xut d liu t cc bng c bm, Hash cluster cho mt hiu nng ln hn so vi index cluster.
kho ca index cluster, kho ca mt hash cluster cng c th bao gm mt hoc nhiu ct d liu. xc nh c mt dng d liu trong indexed table th t nht cn phi thc hin 02 thao tc vo ra vi: Cn ti t nht l mt thao tc vo ra xc nh c key value trong index V cn mt thao tc vo ra na c hoc ghi dng d liu trong table hay cluster
Trang 145
Tri li, vi vic s dng hash function xc nh cc row trong mt hash cluster s khng cn phi s dng bt c mt thao tc vo ra no c. Nh vy l dng cch ny c th gim bt c cc thao tc vo ra c hay ghi dng d liu trong mt hash cluster.
So snh u nhc im ca phng php Hashing v Indexing C hai phng php indexing v hashing u c nhng u v nhc im ring. Do , ta cn cn c vo nhng trng hp c th ring chn la phng php s dng cho hp l. u v nhc im ca cc phng php hashing v indexing: Cc cu lnh truy vn s dng mnh so snh bng i vi cluster key: SELECT ... WHERE cluster_key = ...; Trong nhng trng hp ny cluster key trong cc iu kin so snh bng s c p dng hm bm, gi tr bm - hash key tng ng s dng xc nh dng d liu trong table. Trong khi , vi indexed table gi tr key value s c tm trong index trc, v sau mi c dng d liu thc s trong table. Cc tables trong hash cluster thng c kch thc t thay i cho nn ta c th xc nh s lng cc rows v mc khng gian s dng ca cc tables trong cluster. Khi cc tables trong mt hash cluster yu cu vng khng gian nhiu hn l vng khng gian cp pht cho cluster th hiu sut thc hin ca h thng s b gim i ng k do yu cu qu nhiu. i vi cc truy vn trn cc tables tr v nhiu dng d liu khng bng vi key values (iu kin truy vn thuc loi so snh khng bng). V d, duyt trn ton b table ly ra cc dng d liu da vo so snh like (so snh like p dng trn cc chui). Khi ny, hash function khng th s dng a ra cc hash keys ging nh trong trng hp so snh bng c: SELECT ... WHERE cluster_key<...; Vi index cluster, cc key values c sp xp trong index, cho nn d dng c th a ra cc cluster key values tho mn mnh so snh WHERE khng tng ng, lm gim bt cc thao tc truy xut vo ra. Khi table c kch thc thng xuyn c tng trng m khng b gii hn trn th vng khng gian dnh cho n s khng cn thit phi xc nh ngay t u. Vi phng php hashing s gy ra kh khn v kch thc ca cc cluster bao gi cng c xc nh t u. Trong khi s dng indexing, ta c th iu chnh tng lng khng gian dnh cho table khi cn thit. Khi cc ng dng thng xuyn thc hin cc thao tc duyt ton b table, nu s dng phng php bm s gy ra tn km hn v phi lin tc p dng hm ny.
13.2.QUN L CLUSTER
13.2.1. To cluster
C php: To Cluster CREATE CLUSTER [ schema. ] cluster (column dattype [, column datatype ] ... ) [ PCTFREE integer ] [ PCTUSED integer ] [ INITRANS integer ] [ MAXTRANS integer ]
Trang 146
SIZE integer [ K | M ] ] storage-clause ] TABLESPACE tablespace ] INDEX ] l owner ca bng tn ca ct lm kho cho cluster tn ca cluster kiu d liu v kch thc ca ct lm kho ch nh khng gian yu cu bi ton b cc hng tng ng vi gi tr kho, n v tnh byte, kilobyte hay megabyte. Ch nh cluster to ra l mt index cluster.
INDEX Lu :
Nu kch thc (SIZE) khng c nh ngha th gi tr mc nh s c s dng: 1 block. Oracle server s dng gi tr ny nh gi s lng ln nht gi tr kho c th chn vo trong mt block ca cluster. V d nu SIZE c khi to gi tr 200, trong khi kch thc ca mt block l 2048 bytes, sau khi insert phn header cn li khong 1900 bytes ca block cho php chn d liu.V vy mt block c th cha c 9 gi tr kho. To Index Cluster CREATE INDEX [ schema. ] index ON CLUSTER [ schema. ] cluster [ PCTFREE integer ] [ INITRANS integer ] [ MAXTRANS integer ] [ TABLESPACE tablespace ] [ storage-clause ] Ct kho khng cn thit phi ch nh cho cluster index v chng c nh ngha khi to cluster. t index cluster trong cc tablespace khc nhau m c s dng to cluster. To table trong Cluster to mt bng trong mt index cluster thc hin cc bc sau: 1. To cluster 2. To index cho cluster (cluster index) 3. To bng trn cluster C th to bng trn cluster trc khi to index. Ba bc trn cn thc hin trc khi chn d liu vo trong bng. CREATE TABLE [schema.]table ( column_definition [, column_definition ]... [, [CONSTRAINT constraint] out_of_line_constraint ]... ) CLUSTER [schema.]cluster (column [, column ]... ) Mnh CLUSTER ch nh rng bng phi c t trong mt cluster.
Trang 147
Mt bng m c t trong mt cluster khng th c cc thuc tnh vt l ca ring n bi v segment khng phi ca ring n m l mt phn ca cluster. Lu : phi c cluster index th mi thao tc c d liu trong tables nm trong cluster V d: To Cluster CREATE CLUSTER scott.ord_clu (ord_no NUMBER(3)) SIZE 200 TABLESPACE DATA01 STORAGE(INITIAL 5M NEXT 5M PCTINCREASE 0); To Index cho Cluster CREATE INDEX scott.ord_clu_idx ON CLUSTER scott.ord_clu TABLESPACE INDX01 STORAGE(INITIAL 1M NEXT 1M PCTINCREASE 0); To table trong Cluster CREATE TABLE scott.ord (ord_no NUMBER(3) CONSTRAINT ord_pk PRIMARY KEY, ord_dt DATE, cust_cd VARCHAR2(3)) CLUSTER scott.ord_clu(ord_no); CREATE TABLE scott.item (ord_no NUMBER(3) CONSTRAINT item_ord_fk REFERENCES scott.ord, prod VARCHAR2(5), qty NUMBER(3), CONSTRAINT item_pk PRIMARY KEY(ord_no,prod)) CLUSTER scott.ord_clu(ord_no);
(country VARCHAR2(2),postcode VARCHAR2(8)) SIZE 500 HASHKEYS 1000 TABLESPACE DATA01 STORAGE(INITIAL 5M NEXT 5M PCTINCREASE 0); To cc tables trong cluster CREATE TABLE scott.office( office_cd NUMBER(3), cost_ctr NUMBER(3), country VARCHAR2(2), postcode VARCHAR2(8)) CLUSTER scott.off_clu(country,postcode); Mnh HASHKEYS ch nh rng cluster c to l mt hash cluster. Mnh HASH IS c th c s dng nh ngha mt hm bm (hash function) do ngi s dngnh ngha.
Khi quyt nh kch thc ca SIZE cho Hash Cluster th nn chn gi tr ln hn gi tr tnh mt it trnh vic khng khng gian lu tr.
Vi:
Trang 149
Cc extent c thit lp khi nh ngha trong mnh STORAGE s tip tc n khi tng kch thc ca cc extent c thit lp bng hay ln hn gi tr tnh ton. HASH IS Hm bm c th c nh ngha bi user, hm c chn cn xem xt tnh phn tn ca gi tr kho : C kh nng phn tn ln nht cc hng trong trong s cc gi tr kho. C gng gim thiu s ng (collision). ng s xy ra khi mt vi gi tr kho bm ra cng mt kt qu. Khi tnh trng ng xy ra s gy ra khng khng gian cha tt c cc hng , mt con tr s c t vo trong block, mt bn ghi mi c t qua block mi. nh gi tr n mt gi tr nguyn dng. Mt hm bm c th cha bt k cu lnh SQL hp l no, cc hm do user nh ngha khng th tham gia vo hm bm.
13.2.5. Sa i cc Cluster
Cc sa i i vi Cluster bao gm Thay i tham s lu tr v cc tham s lin quan n s dng block. Thay i gi tr ca tham s SIZE cho index cluster. Cp pht v ly li khng gian lu tr. Cc gi tr HASH IS v HASHKEYS khng th thay i c bng cu lnh ALTER cho hash cluster. V d: ALTER CLUSTER scott.ord_clu SIZE 300 STORAGE (NEXT 2M); Bng quy nh cc thao tc c th thc hin cho index v hash cluster Lnh ALTER CLUSTER Thao tc Thay i cc tham s s dng khi Index Cluster C Hash Cluster C C C C Khng Khng Khng Khng
Trang 150
Thay i cc thuc tnh lu tr (tr C INITIAL) Cp pht vng trng Thu hi vng khng gian khng s dng Thay i SIZE Thay i HASHKEYS v HASH IS Gii phng khng gian Ti s dng khng gian C C C C C
TRUNCATE CLUSTER
Cc cu lnh ALTER CLUSTER, TRUNCATE CLUSTER v ANALYZE CLUSTER c cng mt c php tng ng vi cu lnh cho bng.
13.2.6. Xo Cluster
Mt cluster ch c th xo nu nh tt c cc bng trn cluster c xo i, iu ny c th thc hin bng cch s dng mnh tu chn INCLUDING TABLES trong cu lnh xo CLUSTER hay bng cch xo bng trc khi xo CLUSTER. C php: DROP CLUSTER [ schema. ] cluster [ INCLUDING TABLES [ CASCADE CONSTRAINTS ]] Mnh CASCADE CONSTRAINTS phi c s dng nu bt c bng no trong cluster b tham chiu n bi mt ngoai kho (Foreign Key) ca bng m khng thuc vo cluster. V d: S dng mnh INCLUDE TABLES xo cc bng trong Cluster DROP CLUSTER scott.ord_clu INCLUDING TABLES; Xo cc bng trc khi xo Cluster DROP TABLE scott.ord; DROP TABLE scott.item; DROP CLUSTER scott.ord_clu; Cc tnh hung s dng cluster Index cluster hay Hash cluster c s dng trong cc trng hp khc nhau bng di y lit k ni s s dng index v hash cluster: Chun Phn tn kho ng nht (Uniform key distribution) M rng s ng u cc gi tr kho (Evenly spread key
values)
Index X X X X X X X X
Hash
Cc kho t c cp nht (Rarely updated key) Cc bng kt ni Master-Detail Xc nhn s lng cc gi tr kho Cc truy vn s dng cc kho tng ng
Tnh cht ca d liu Hai on sau y m t lin quan gia tnh cht ca d liu trong cluster. S phn tn ca gi tr kho: Cc cluster th kh thch hp trong tnh hung tnh tun t ca gi tr kho l nh nhau. Xem trt t x l ca v d sau: nu cc n t hng cha hu ht s mt hng nh nhau khi cluster c th c ch. Nu cc n t hng c ch mt hay hai mt hng trong khi cc n t hng khc c hng trm mt hng trong trng hp ny s dng cluster l khng thch hp. Vng gi tr kho: Gi tr kho phn tn trong vng gi tr l khng thch hp cho kho bm, bi v nh vy s lng ph rt nhiu khng gian trong mt cluster. Mc d
Trang 151
thut ton bm c thit k cn thn c th gii quyt vn ny, rt kh khi thit k mt hm bm thch hp pht trin. Cc hot ng trn d liu trong cc bng Phng thc d liu c lu tr cn c xem xt trong khi thit lp cluster. Tnh tun t ca vic cp nht cc ct kho: Khi cc gi tr kho trong cluster c cp nht, hng c th b dch chuyn vt l t block ny sang block khc, iu ny c th lm gim hiu nng. V vy cc ct cn c cp nht thng xuyn khng thch hp tham gia vo kho ca cluster. Tnh tun t ca join (kt ni): Cc bng m thng xuyn tham gia vo kt ni trong cu lnh query s dng quan h ngoi kho l thch cho vic thit lp cluster. Bi v cc hng dng lm gi tr kho c lu tr cng nhau, s dng cluster c th lm gim s block cn c tho mn mt yu cu no . Trong mt s trng hp vic t bng chi tit (detail) trong cluster l rt c li, hy xem xt trng hp thng tin v cc nhn vin lun c truy xut bi cc phng ban v vic qut ton b bng phng ban l thng xuyn xy ra. Trong trng hp ny ch nn dng bng nhn vin trong cluster. nh gi s gi tr kho: trong hash cluster, cc hm bm da trn tham s ch nh bi ngi dng vo thi im to chng. Vic nh gi gi tr kho hay kch thc chnh xc l phc tp bi v cc bng ny thay i. Mt la chn sai cho HASHKEYS v SIZE c th dn n mt hm bm khng hiu qu v c th dn n lng ph khng gian lu tr, v vy hash cluster ch nn s dng khi m gi tr ca SIZE v HASHKEYS l c th nh gi c trc. iu kin query: Hm bm c th c s dng truy xut d liu ch khi gi tr kho l c bit. V l do ny m tm kim trong mt khong khng th s dng hm bm. Nu cu lnh truy vn s dng da vo tnh ngang bng trong kho ca cluster chng c th h tr cho qu trnh bm. Tuy nhin c th to ra mt index trn kho ca hash cluster, nu nhiu truy vn s dng tm kim khong trong ct kho ca hash cluster.
Trang 152
Trang 153
Trang 154
13.4.INDEX-ORGANIZED TABLE
13.4.1. Tnh cht chung
Cu trc lu tr Mt index-organized table lu ton b d liu cho bng trong mt cu trc B-TREE, B-TREE index da trn kho chnh ca bng v n c t chc ging nh mt index. Cc block phn l trong cu trc ny cha cc ct khng phi l kho thay v cc ROWID. V vy vic s dng index-organized table cn 2 segments khc nhau mt cho table v mt cho index. Truy xut mt index-organized table Truy xut index i vi cc bng thng thng yu cu mt hay nhiu khi block index c c truy xut ROWID v vic vo ra trn bng da vo gi tr ca ROWID. Ngc li c cc bng index-organized yu cu ch cc khi index cn c c bi v ton b hng c sn trong phn l ca node. Mt index-organized table c th truy xut s dng kho chnh hay nhiu ct kt hp tham gia vo kho chnh. Vic thay i d liu bng nh : thm , xo hay cp nht cc hng dn n kt qu cp nht cc index. So snh gia index-organized table v cc table Index-Organized Table Kho xc nh duy nht l ROWID Table Xc nh duy nht bi kho chnh
ROWID c ngm nh s dng cho cc Khng c ROWID index Khng c cc index ph FTS tr v cc dng d liu khng theo Duyt tt c ch s v tr v cc dng d liu
Trang 155
H tr vic phn vng, phn tn v lan Khng h tr vic phn vng, phn tn v lan truyn (replication) d liu truyn (replication) d liu
Mt index-organized table khc vi table nh sau: ROWID c th l xc nh duy nht cho mt hng trong bng thng thng, trong khi hng trong index-organized table th c xc nh bi kho chnh ca bng. Mt bng thng thng c th c nhiu index. Cc index lu gi tr ROWID tng ng cho gi tr kho ca index, trong khi i vi index-organnized table khng dng ROWID nn index th cp s khng th to ra trn kiu bng ny. Bt c mt cu lnh SQL truy xut gi tr ROWID ca bng index-organized table s nhn c mt li. Khi thc hin vic qut trn ton bng trn bng thng thng trt t cc hng tr v l khng th bit trc c. Ngc li qu trnh truy vn trn ton b bng indexorganized table cc hng tr v theo th t ca kho chnh trong bng. Mt index-organized table h tr tt c cc loi constraint ngoi tr unique constraint. Mt index-organized table khng tham gia trong cc distributed transactions (giao dch phn tn), n khng th phn khu (partition) hay nhn bn (replicate).
ng dng thu hi thng tin ng dng khng gian ng dng x l phn tch trc tuyn (OLAP) bng thng xuyn truy xut s dng kho chnh ca bng.
ORGANIZATION INDEX
PCTTHRESHOLD
ch nh khng gian dnh ring trong index block cho cc hng ca index-organized table ( nu cc hng vt qu gi tr c s c tnh ton , ton b cc hng trong ct c t tn trong mnh INCLUDING c chuyn vo phn on overflow, nu phn on overflow khng c ch nh cc hng vt qu gi tr PCTTHRESHOLD s b t chi, gi tr mc nh ca n l 50 v gi tr ca n phi nm trong khong t 0-50. column ch nh ct ti chia mt hng ca bng index-organized table thnh hai phn index v overflow, tt c cc ct tip theo gi tr column c lu trong phn phn on overflow. ch nh rng cc hng d liu trong indexorganized table vt qu gi tr ch nh ca PCTTHRESHOLD th s c t trong phn on nh ngha bi segment_attributes_clause, mnh ny s nh ngha tablespace, vng lu tr v cc tham s v s dng block.
INCLUDING
OVERFLOW
V d: CREATE TABLE scott.sales ( office_cd NUMBER(3), qtr_end DATE, revenue NUMBER(10,2), review VARCHAR2(1000), CONSTRAINT sales_pk PRIMARY KEY(office_code, qtr_end)) ORGANIZATION INDEX TABLESPACE data01 PCTTHRESHOLD 20 OVERFLOW TABLESPACE data02; Mt s gii hn Kho chnh phi ch nh cho index-organized table, nu to index-organized table trn bng m khng c kho chnh s sinh ra li. Nu tham s PCTTHRESHOLD c nh ngha v phn on overflow khng c ch nh cc hng vt qu gi tr PCTTRESHOLD s b t chi v s sinh ra mt li.
Trang 157
Mt hng ln trong mt index-organzed table c th ph hu mt vng lu tr ca cc hng trong index. Vn ny c th gii quyt bng cch s dng vng d liu overflow. To phn on (segment) cho mt index-organized table Khi mt index-organized table c to bng cch ch nh mnh OVERFLOW cc vng sau y c to: Mt bng logical vi tn nh ngha trong mnh CREATE TABLE c to ra. V ton b cc hng c lu trong index, khng c phn on m tng ng vi bng . Mt index cng tn vi kho chnh ca bng nm trong tablespace nh ngha bi cu lnh CREATE TABLE , s dng cc tham s lu tr cho khi ch nh c to ra. Mt bng tip nhn cc hng b overflow c to ra, tn ca bng ny l SYS_IOT_OVER_n, trong n l gi tr tun t ca object OBJECT_ID ca indexorgannized table. Cc hot ng c th trn index-organized table Mt index-organized table c th s dng ging nh cc bng thng thng, tt c cc cu lnh ging nh ALTER TABLE, ANALYZE TABLE, TRUNCATE TABLE v DROP TABLE v tt c cc cu lnh DML u c th thc hin trn index-organized table.
Trang 158
S dng cu lnh truy vn sau y lit k thng tin v cc index-organized table v cu trc ca chng : SVRMGR> SELECT t.table_name AS "IOT", o.table_name AS "Overflow", 2> i.index_name AS "Index", 3> o.tablespace_name AS "Overflow TS", 4> i.tablespace_name AS "Index TS", i.pct_threshold 5> FROM dba_tables t, dba_tables o, dba_indexes i 6> WHERE t.owner=o.owner 7> AND t.table_name = o.iot_name 8> AND t.owner = i.owner 9> AND t.table_name = i.table_name 10> AND t.owner= 'SCOTT'; IOT ----SALES Overflow Index Overflow TS Index TS PCT_THRESHOLD ----------------- -------- ----------- -------- ------------SYS_IOT_OVER_2049 SALES_PK DATA02 DATA01 20
Trang 159
Row data (ni dung ca dng d liu lu tr): i vi mi trng d liu, oracle lu di ca trng d liu v gi tr ca trng d liu (c mt byte dnh ring dng lu di ca trng d liu nu di ca ca n khng vt qu 250 bytes). Gi tr ca ct s lu ngay tip theo thng tin v di ca ct.
Cc rows c lu tr lin k nhau v khng cn bt c khong cch no gia chng. Mi row trong block u c cc thng tin (slot) trong danh mc cc rows. Danh mc cc thng tin ny tr n phn u ca mi row. Oracle 8i cung cp mt vi kiu d liu xy dng sn dng lu tr cc d liu c kiu v hng, kiu tp hp v kiu quan h.
Trang 161
liu, nu ni dung ca d liu lu tr t hn kch thc khai bo th h thng s ch cp va b nh lu tr xu k t m thi. V d minh ho vic lu tr d liu xu ch gia cc kiu d liu khc nhau D liu Test Test Test Test Bng m 8 bits 16 bits 8 bits 16 bits Kiu d liu CHAR(10) NCHAR(5) VARCHAR(10) NVARCHAR(5)
10 bytes 10 bytes 4 bytes 8 bytes T T T T e s e
Lu tr d liu
e s e t s t t s t
VARCHAR v NVARCHAR l hai kiu d liu chun c Oracle h tr t cc phin bn u. Vi cc phin bn sau ca Oracle, c h tr thm kiu d liu VARCHAR2 v NVARCHAR2. Hai kiu d liu ny cng tng t nh VARRCHAR v NVARCHAR, tuy nhin hai kiu d liu ny c h tr x l tt hn v cn c tip tc h tr trong cc phin bn tip theo ca Oracle. Oracle khuyn co ngi s dng nn dng kiu d liu VARCHAR2 v NVARCHAR2 thay cho kiu cc d liu c l VARCHAR v NVARCHAR. Kiu d liu k t c di thay i s ch s dng mt s bytes cn thit lu tr gi tr thc s ca ct v c th thay i kch thc cho mi hng. VARCHAR2 v NVARCHAR2 l v d ca kiu d liu k t c di thay i.
D liu kiu s (numeric) D liu kiu s trong Oracle Database lun c lu tr vi kiu d liu c di thay i. Chng c th lu tr c nhng con s ln ti 38 ch s. D liu kiu s c: Mt byte lu phn m Mt byte lu hai con s phn nh tr. Mt byte lu s m.
Trang 162
Kiu d liu ngy thng (date) Oracle server lu d liu kiu date trong mt trng c di khng thay i l 7 bytes. D liu kiu date ca Oracle bao gi cng bao gm thi gian y : th k, nm, thng, ngy, gi, pht, giy v phn trm ca giy. Kiu d liu th (raw) Kiu d liu ny cho php lu tr cc d liu nh phn nh. Oracle server khng thc hin chuyn i tp k t mi khi d liu kiu raw c chuyn qua li gia cc my trong mng (khi d liu kiu raw c dch chuyn t database ny sang database khc s dng cng c ca Oracle). Kiu d liu lu tr i tng ln (LOB) LONG, LONG RAW Mt ct cho mt bng Kch thc c th ti 2GB SELECT tr v d liu C th ln ti 4GB SELECT tr v locator LOB Nhiu ct cho mt bng
D liu in-line (c th lu tr trong mt D liu c th l in-line hay out-of-line (d dng ca table) liu khng lu tr c trong bng m phi lu ring trong mt tablespace, c s dng LOB locator xc nh d liu LOB) Khng h tr Object type Truy nhp tun t cc b (chunk) H tr kiu object Truy xut chunk khng tun t
Ngoi ra, Oracle cung cp 6 kiu d liu cho vic lu tr cc i tng ln: CLOB v LONG d liu k t c rng khng i. NCLOB lu d liu k t NLS c rng khng i. BLOB v LONG RAW cho cc d liu phi cu trc . BFILE lu tr cc d liu phi cu trc trong h iu hnh. LONG v LONG RAW, trc y, thng c s dng lu tr d liu phi cu trc nh image, document hay cc thng tin vt l. cc phin bn gn y, Oracle 8i, kiu d liu ny c thay th bng kiu d liu LOB. Kiu d liu LOB khc vi d liu LONG v LONG RAW cho nn chng khng th dng ln vi nhau. LOB khng h tr cho cc chng trnh vit vi LONG v ngc li. Kiu d liu RowID RowID l ton t gi c th c s dng trong cu lnh truy vn cng vi cc ct d liu c trong bng. RowID c mt s c tnh sau: RowID l nh danh duy nht cho mt row trong database. RowID khng lu tr r rng nh cc ct gi tr. Mc d RowID khng phi l a ch vt l ca mt row nhng n vn c th s dng xc nh v tr ca mt row. S dng RowID cho php truy xut nhanh chng cc rows ca mt table. RowID cn c lu tr trong Index ch nh r tng rows tng ng vi tng gi tr kho (key values).
Trang 163
nh dng ca RowID Cn 10 bytes lu tr mt gi tr RowID trn a v hin th n bi 18 k t. nh dng ca mt RowID bao gm cc thnh phn: Data object number: c gn cho mi data object, v d nh: table hay index. Khi cc Objects ny c to lp, gi tr data object number tng ng s c khi to v c quy nh duy nht trong database. Relative file number: l s hiu duy nht ng vi mi file trong mt tablespace. Block number: dng xc nh v tr ca Block cha dng d liu trong file. Row number: xc nh v tr ca tng row trong danh mc cc rows thuc block header.
Trong , data object number cn 32 bits, relative file number cn 10 bits, block number cn 22 bits v row number cn 16 bits tng s bits dng lu thng tin v RowID l 80 bits hay 10 bytes. Khi hin th mt RowID theo b m 64, ta cn ti 6 v tr cho data object number, 3 v tr cho relative file number, 6 v tr tip theo cho block number v 3 v tr cui cng cho row number. B m 64 s dng cc k t A-Z, a-z,0-9,+ / tng cng l 64 k t. V d: SVRMGR> SELECT deptno, ROWID 2> FROM scott.dept; DEPTNO ROWID ------------------------10 AAAArsAADAAAAUaAAA 20 AAAArsAADAAAAUaAAB 30 AAAArsAADAAAAUaAAC 40 AAAArsAADAAAAUaAAD 4 rows selected. Trong : AAAArs l gi tr ca Data object number AAD l gi tr ca Relative file number AAAAUa l gi tr ca Block number AAA l gi tr ca Row number Xc nh v tr ca row nh gi tr ca RowID V mt segment ch c th nm trong mt tablespace nn ta c th s dng Data Object Number xc nh tablespace cha row. Gi tr Relative File Number trong tablespace dng xc nh file. Gi tr Block Number dng xc nh Block cha row v gi tr Row Number xc nh chnh xc row trong danh mc cc rows.
Trang 164
Phin bn trc y ca Oracle c s dng nh dng Restricted RowID. Mt Restricted RowID s dng 6 bytes v khng cha gi tr Data Object Number. nh dng ny s dng trong Oracle 7 v cc phin bn trc . Do File Number l duy nht trong database nn ti cc phin bn trc ca Oracle khng cho php c nhiu hn 1024 data file. Mc d Oracle 8 khc phc gii hn trn bng cch s dng Tablespace_Relative nhng File Number trong mi Restricted RowID vn c s dng trong mt Objects (V d nh nonpartitioned indexes). Khi ny, cc Index tham chiu n cc rows cng nm trn cng mt segment cha cc rows.
14.2.2. Tp hp (collection)
C hai kiu d liu tp hp s dng lu tr cc d liu c tnh lp li trong cc rows ca mt table. Vic chn la kiu d liu tp hp thch hp l mt vic lm cn thit. Mng bin (varying arrays) Varying arrays dng lu cc thng tin danh sch cha mt s lng nh cc yu t, v d nh s in thoi ca cc khch hng. Varying arrays c cc c tnh sau: L mt mng c th t cc yu t. Tt c cc thnh phn trong mng c cng kiu d liu. Mi thnh phn c mt ch s (index), l con s tng ng vi v tr ca thnh phn trong mng, chng c nh s t 0 n n-1. S ln nht ca cc thnh phn trong mng chnh l kch thc ca mng. Oracle cho php mng c th c kch thc thay i. V vy, ngi ta gi chng l cc VARRAYs. Kch thc cc i ca VARRAYS cn c ch nh khi m t Cc phn t trong mng c nh ch s mt cch lin tc. Cc bng lng nhau (nested table) Cc nested table cung cp mt phng thc nh ngha mt bng nh l mt ct d liu trong mt bng khc. C th s dng phng php ny lu tr mt lng ln cc bn ghi (v d nh cc items (mc) trong mt n hng). Nested table c cc c tnh sau: Mt nested table l mt tp khng sp xp cc bn ghi hay rows. Cc rows trong nested table c cng mt cu trc. Cc rows trong nested table c lu tr tch ri vi vi bng cha v c mt con tr tr ti vi row tng ng trn bng cha. Cc tham s lu tr cho nested table c th c ch nh bi ngi qun tr database. Khng c gii hn vic lng cc bng.
Trang 165
table column datatype TABLESPACE PCTFREE PCTUSED INITRANS MAXTRANS STORAGE LOGGING NOLOGGING CACHE NOCACHE
tn ca bng to tn ca ct trong bng cn to kiu d liu cho ct tng ng tn tablespace cha bng khng gian dnh ring trong mi block (tnh bng n v %). S dng cha khi cc hng ln ln do update. xc nh gii hn di ca khng gian s dng trong block xc nh s giao dch c thit lp cho mi block xc nh s giao dch ln nht c th thit lp cho block mc nh l 255. quy nh kch thc ca khng gian lu tr, xc nh xem c bao nhiu extents s c thit lp cho bng. ch nh vic to bng s c ghi vo trong redo log file. ch nh vic to bng v np d liu vo bng s khng c ghi vo redo log file. ch nh vic truy xut cc blocks ca bng c thit lp trong vng m khi c thc hin full scan trn table. ch nh cc blocks c truy xut trn bng ny khng c t vo trong danh sch LRU trong vng m khi c thc hin full scan trn table.
V d: CREATE TABLE employees( empno NUMBER(4), last_name VARCHAR2(30) deptno NUMBER(2)) PCTFREE 20 PCTUSED 50 STORAGE(INITIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50) TABLESPACE data01; Lu : Mi table nn c mt Primary Key. Nu gi tr MINIMUM EXTENT c ch ra cho tablespace th khi m rng kch thc bng, gi tr kch thc s c lm trn ln mt bi s ln gi tr ca MINIMUM EXTENT. Nu b qua mnh [NO]LOGGING th thuc tnh logging ca bng s c t mc nh theo thuc tnh logging ca tablespace cha bng . Nu gi tr MINEXTENT c ch nh bi mt gi tr ln hn 1 v tablespace cha nhiu data file, qu trnh m rng s thc hin trn nhiu data files khc nhau tng ng vi tablespace. Nn t cc bng trn cc tablespace ring, khng t cc bng trn Rollback Tablespace, Temporary Tablespace hay Index Tablespace. S dng chun v kch thc m rng (extent size) l mt bi s ca 5*DB_BLOCK_SIZE gim thiu s phn mnh trong database. nng cao hiu sut thc hin truy vn trn ton b bng, cn thit lp thng s extent size vi gi tr bng gi tr DB_FILE_MULTIBLOCK_READ_COUNT. y l tham
Trang 167
s quy nh s lng cc blocks c c mi khi server proccess thc hin vic c d liu qua php truy xut file d liu ca h iu hnh. Mnh CACHE ch dng cho cc bng c kch thc nh v thng xuyn c truy vn. Trong OEM, ta thc hin theo cc bc sau 1. 2. 3. 4. 5. 6. 7. Chy Oracle Schema Manager. Chn Object>Create. Chn Table t danh sch ri bm nt OK. Chn Create Table Manually trong phn New Table. Bm nt OK. Nhp vo cc thng tin trong phn General, Storage, v Options. Bm nt Create.
Trang 168
Ch : Gi tr kch thc trung bnh (average row size) c th nh gi t vic s dng cu lnh ANALYZE TABLE.
Trang 169
V d: CREATE TABLE new_emp STORAGE(INITTIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50) NOLOGGING TABLESPACE data01 AS SELECT * FROM scott.emp; Lu : Cc mnh TABLESPACE, STORAGE hay thng tin s dng cc blocks c th c ch ra khi to bng. S dng mnh NOLOGGING nu mun b qua vic sinh ra cc thng tin log trong redo log file v tng tc to bng. Khi thc hin sao chp cc table, cc contraints (rng buc), triggers (mt th tc c t ng kch hot khi c thao tc trn d liu) v privileges (quyn) trn table gc s khng c sao chp sang table mi. c c nhng th ny, ta phi to bng tay. Nu mt column c quy nh l NOT NULL trong table gc, cc ct tng ng trong bng mi cng s c quy nh l NOT NULL.
Thm mi columns C php: ALTER TABLE table ADD (column_name datatype [DEFAULT expr],
Trang 170
[column_name V d: SQL>ALTER TABLE Dept 2 >ADD (job Table altered. Thay i cu trc mt column C php: ALTER TABLE table MODIFY (column_name [column_name V d: SQL>ALTER TABLE Dept 2 >MODIFY (ename Table altered. Xo bt column
datatype],...);
varchar2(30));
expr],
varchar2(50));
Bt u t phin bn 8.1.0.0.0 tr i, Oracle cho php ta c th xo bt cc ct d liu khng cn cn s dng n trong mt table, bao gm c index-organized table. Vic ny s lm gii phng mt phn vng khng gian trong database. c th thc hin c vic ny User cn phi c cp quyn ALTER ANY TABLE trn table c ct cn xo. Tuy vy, ta khng th xo tt c cc ct trong mt table hay xo cc ct d liu trong cc table do user SYS s hu. xo columns ta thc hin cu lnh ALTER TABLE...DROP COLUMN. V d: Xo ct SAL trong bng emp: ALTER TABLE emp DROP COLUMN sal; Xo ct SAL v COMM trong bng emp:
ALTER TABLE emp DROP (sal, comm);
nh du khng s dng Unused Ging nh vic xo columns, thao tc ny cng ch thc hin c bt u t phin bn Oracle 8.1.0.0.0. thc hin vic ny ta s dng cu lnh ALTER TABLE...SET UNUSED. Khi mt ct c nh du l Unused, tn ca n s khng cn trong data dictionary views v ta c th s dng li tn ny t cho mt ct d liu mi b sung, mt khc, tt c cc constraints, indexes, trn ct c nh du Unused s b xo b. V d: nh du Unused cho ct SAL v COMM. ALTER TABLE emp SET UNUSED (sal, comm); xem thng tin v tnh hnh s dng cc ct d liu ang trong trng thi unused, ta cn truy vn d liu trong cc views: USER_UNUSED_COL_TABS, ALL_UNUSED_COL_TABS v DBA_UNUSED_COL_TABS. Ct COUNT cho bit s lng cc unused columns trong table. SELECT * FROM dba_unused_col_tabs;
Trang 171
OWNER TABLE_NAME COUNT ------------------- -------------------- ---------SCOTT EMP 1 1 row selected. Xo cc ct d liu c nh du Unused xo hn c d liu nh du Unused ta c th s dng cu lnh ALTER TABLE...DROP UNUSED COLUMNS. V d: ALTER TABLE emp DROP UNUSED COLUMNS;
ALTER ANY TABLE DROP ANY TABLE LOCK ANY TABLE SELECT ANY TABLE Cc bc thc hin vic nh ngha li cc table: 1. Kim tra table c th online redefine (nh ngha li khi ang thc hin) bng cch gi th tc DBMS_REDEFINITION.CAN_REDEF_TABLE(). Trong trng hp table khng th thc hin online redefine th tc s tr v mt li cho bit l do khng th thc hin online redefine. 2. To mt table tm thi (interim table). Table ny bt buc phi thuc cng schema vi table ang c online redefin vi tt c cc thuc tnh tng ng. 3. Bt u tin trnh redefine bng vic gi th tc: DBMS_REDEFINITION.START_REDEF_TABLE(). 4. To cc triggers, indexes, v to cc contraints tng ng trn interim table. Cc constraints c lin quan trn interim table cn c to lp v t trng thi disabled. Cho ti khi tin trnh redefine kt thc (complete hoc aborte). Sau khi qu trnh redefine kt thc, cc triggers, constraints, indexes v cc quyn gn vi interim table s c tip tc redefine. Qu trnh redefine cc constraints lin quan ti interim table c thc hin sau cng v chuyn trng thi ca table ny thnh enable. Qu trnh redefine kt thc. 5. Thc hin th tc DBMS_REDEFINITION.FINISH_REDEF_TABLE() kt thc vic redefine table. Trong qu trnh thc hin th tc ny, table ban u s b locke ch exclusive. 6. Vic i tn cc indexes c to trong interim table bc 4 s c thc hin i vi table c redefine.
V d: V d sau minh ho cng vic online redefine ca mt table c tn l emp. y l table thuc loi nonpartitioned, v c cc ct d liu c tn: empno, name, salary, phone. Table s c redefine theo cc bc sau: Ct salary is multiplied by a factor of 1.10 v c i tn thnh sal. Ct phone b xo b. Mt ct d liu mi, ct deptno c thm vo vi gi tr mc nh l 10. Thc hin redefine li table c phn khu theo khong gi tr ca ct empno. Gi s chy xong th tc DBMS_REDEFINITION.CAN_REDEF_TABLE() v table emp sn sng cho vic redefine. Cc bc thc hin redefine: To mt interim table vi tn l int_emp. CREATE TABLE int_emp (empno NUMBER PRIMARY KEY,
Trang 173
name VARCHAR2(100), sal NUMBER, deptno NUMBER DEFAULT 10) PARTITION BY RANGE(empno) (PARTITION emp1000 VALUES LESS THAN (1000) TABLESPACE tbs_1,PARTITION emp2000 VALUES LESS THAN (2000) TABLESPACE tbs_2); Khi ng tin trnh redefine. DBMS_REDEFINITION.START_REDEF_TABLE('u1', 'emp', 'int_emp', 'empno empno, name name, salary*1.10 sal'); To cc triggers, indexes v constraints trn bng int_emp. Tt c cc rng buc tham chiu ti int_emp u c t l disable. Tip theo, ta quy nh cc quyn cp pht trn int_emp ging nh l cc quyn trong emp. Thc hin ng b hai table: int_emp v emp. DBMS_REDEFINITION.SYNC_INTERIM_TABLE('u1', 'emp', 'int_emp'); Kt thc vic redefine. DBMS_REDEFINITION.FINISH_REDEF_TABLE('u1', 'emp', 'int_emp'); Table emp b kho ch exclusive. Sau khi table emp is c redefine vi cc thuc tnh mi. Xo table trung gian.
Khi table metadata c to lp, table ny c th c s dng truy vn d liu ging ht nh cc table khc. Ta vn c th s dng cc hm hay cc cu lnh join trn table ny, Ta cng c th tham kho cc thng tin v external tables trong cc view sau: DBA_EXTERNAL_TABLES cho bit cc thuc tnh ca external table trong database. DBA_EXTERNAL_LOCATIONS cho bit ng dn ti cc files v th mc tng ng lu gi chng.
Cc constraints c th c to lp trong qu trnh to table hoc sau khi table c to. Thng tin v cc constraints c cp nht v lu tr trong data dictionary.
CREATE TABLE DEPT ( DEPTNO NUMBER(2) NOT NULL, DNAME CHAR(14), LOC CHAR(13), CONSTRAINT DEPT_PRIMARY_KEY PRIMARY KEY (DEPTNO));
14.4.3. Unique
Ch ra rng buc duy nht, cc gi tr ca column ch trong mnh UNIQUE trong cc row ca table phi c gi tr khc bit. Gi tr NULL l cho php nu UNIQUE da trn mt ct. V d: CREATE TABLE DEPT ( DEPTNO NUMBER(2), DNAME CHAR(14), LOC CHAR(13), CONSTRAINT UNQ_DEPT_LOC UNIQUE(DNAME, LOC));
Trang 176
14.4.6. Check
Rng buc kim tra gi tr. V d: CREATE TABLE EMP (EMPNO NUMBER NOT NULL CONSTRAINT PK_EMP PRIMARY KEY, ENAME VARCHAR2(10) CONSTRAINT NN_ENAME NOT NULL CONSTRAINT UPPER_ENAME CHECK (ENAME = UPPER(ENAME)), JOB VARCHAR2(9), MGR NUMBER CONSTRAINT FK_MGR REFERENCES SCOTT.EMP(EMPNO), HIREDATE DATE DEFAULT SYSDATE, SAL NUMBER(10,2) CONSTRAINT CK_SAL CHECK(SAL>500), COMM NUMBER(9,0) DEFAULT NULL, DEPTNO NUMBER(2) CONSTRAINT NN_DEPTNO NOT NULL CONSTRAINT FK_DEPTNO REFERENCES SCOTT.DEPT(DEPTNO);
nh hng ca vic thay i cc tham s lu tr: Cc tham s c th thay i v nh hng ca vic thay i nh sau: NEXT: khi Oracle server thit lp cc extents cho bng th gi tr mi s c p dng, kch thc m rng tun t s c tng ln bi PCTINCREASE.
Trang 177
PCTINCREASE: khi thay i bi tham s ny, thng tin thay i s c ghi nhn trong data dictionary. Gi tr mi s c s dng tnh li gi tr ca tham s NEXT khi thit lp cc extents mi. Xt v d: table c 2 extents vi NEXT=10K v PCTINCREASE=0. Khi tng gi tr ca PCTINCREASE ln thnh 100, extent th 3 s c thit lp 10K, v extent th 4 s l 20K v c tip tc nh vy khi thm cc extents na. MINEXTENTS: gi tr ca MINEXTENTS c th thay i ti gi tr bt k no nh hn hay bng gi tr cu s extent hin thi ca bng. Gi tr ny s khng nh hng ngay khi thay i m s nh hng khi bng b truncate. MAXEXTENTS: c th nhn bt k gi tr no ln hn hay bng s extents hin thi ang c trong table. Gii hn: Khng th thay i tham s INITIAL thng qua lnh ALTER TABLE Gi tr NEXT ch nh s c lm trn ln n mt gi tr l bi s nguyn ln kch thc ca mt Block. Cc tham s s dng block: Thay i cc tham s s dng block nhm: Tit kim khng gian s dng. Gim thiu qu trnh migration v chaining ca block. nh hng ca vic thay i cc tham s : PCTFREE: thay i tham s ny s lm nh hng n qu trnh insert d liu trong tng lai. Cc blocks m khng c s dng cho vic insert do chng c in y (100-PCTFREE) s khng b nh hng n khi chng c a vo danh sch cc block trng ( free list). PCTUSED: bt c mt thay i no ca tham s ny u nh hng n tt c cc blocks trong table. Khi cp nht hay xo mt row, block cha row s c nh du. Vic s dng hay ti s dng cc blocks c th thc hin c i vi thao tc insert d liu nu nh mc s dng cc blocks gim xung di gi tr PCTUSED. INITRANS: vic thay i gi tr INITRANS ch nh hng n cc block mi. MAXTRANS: thay i gi tr ny s nh hng n tt c cc blocks trong table.
Nu b qua tham s SIZE, Oracle server s s dng gi tr NEXT_EXTENT c trong DBA_TABLES thit lp gi tr cho cc extents mi. File c ch nh trong mnh DATAFILE phi thuc v tablespace m cha table ang xem xt, nu khng cu lnh s sinh ra li. Nu mnh DATAFILE khng c s dng th Oracle server s thit lp extent mi trong mt datafile thuc tablespace cha table ang xem xt. Lu : Gi tr NEXT_EXTENT trong DBA_TABLES khng lm nh hng n qu trnh thit lp extent bng tay. Oracle server khng tnh li gi tr ca extent tip theo khi thc hin cu lnh.
V d: on m lnh PL/SQL sau y c th dng tm ra v hin th s block s dng trong table v s block khng c s dng. SVRMGR> DECLARE 2> v_owner VARCHAR2(30) := 'SCOTT' ; 3> v_segment_name VARCHAR2(30) := 'EMPLOYEES'; 4> v_segment_type VARCHAR2(30) := 'TABLE'; 5> v_total_blocks NUMBER; 6> v_total_bytes NUMBER; 7> v_unused_blocks NUMBER; 8> v_unused_bytes NUMBER; 9> v_last_used_extent_file_id NUMBER; 10> v_last_used_extent_block_id NUMBER;
Trang 179
11> v_last_used_block NUMBER; 12> 13> BEGIN 14> dbms_space.unused_space(v_owner, 15> v_segment_name, 16> v_segment_type, 17> v_total_blocks, 18> v_total_bytes, 19> v_unused_blocks, 20> v_unused_bytes, 21> v_last_used_extent_file_id, 22> v_last_used_extent_block_id, 23> v_last_used_block 24> ); 25> dbms_output.put_line(INITCAP(v_segment_type)||' : '||v_owner||'.'||v_segment_name); 26> dbms_output.put_line('Total Blocks : '||TO_CHAR(v_total_blocks)); 27> dbms_output.put_line('Blocks above HWM : '||TO_CHAR(v_unused_blocks)); 28> END; 29> / Statement processed. Table : SCOTT.EMPLOYEES Total Blocks : 25 Blocks above HWM : 23 Ch : th tc c gi ti package dbms_space. Package ny c to lp khi chy script dbmsutil.sql v th tc prvtutil.plb.
Trang 180
C php: ALTER TABLE [schema.]table DEALLOCATE UNUSED [ KEEP integer [K|M]] Gi tr KEEP ch s bytes trn mc High Water Mark cn li. Nu High Water Mark nm ti mt extent nh hn gi tr ca MINEXTENTS, th Oracle server s gii phng cc extents nm pha trn gi tr MINEXTENTS. V d: khi MINEXTENTS<=4, Oracle server s ly li tt c cc blocks khng c s dng trn mc High Water Mark. Ch rng extent th 5 (vi ID=4) by gi s cha 5 blocks. Nu gi tr MINEXTENTS l 5 i vi table th Oracle server s khng thu hi khng gian t extent th 5. Lu : Do vic thu hi khng gian bi cu lnh trn s gii phng khng gian khng s dng nn vic s dng tun t cu lnh ny c th dn n phn mnh khng gian trong data file. trnh hin tng cn khi to gi tr MINIMUM EXTENT cho tablespace. gii phng vng khng gian bn di High Water Mark, thm ch khi High Water Mark l di gi tr MINEXTENTS cn s dng mnh KEEP 0.
14.5.6. Xo table
Mt table c th b xo khi khng cn thit s dng hay khi mun t chc li n. C php: DROP TABLE [schema.]table [CASCADE CONSTRAINTS]
Trang 181
Khi mt table b xo i, cc extents s dng bi table ny s c gii phng. Nu cc extents l lin tc th chng c th c nhp li t ng hoc bng tay. Ch : Mnh CASCADE CONSTRAINTS l cn thit nu table l bng cha trong quan h ngoi kho.
Trang 182
Tu chn COMPUTE STATISTICS s sinh ra thng tin thng k da vo thng tin ca ton b table, cn tu chn ESTIMATE STATISTICS s sinh ra thng tin thng k da vo mt s hng lm mu. Khi thng tin v thng k kt sinh th n s c cp nht vo bng DBA_TABLES, trng CHAIN_CNT s c cp nht vi thng tin v s rows b chaining v migration trong bng. Nu c mt s lng ln cc rows trong table b chaining hay migration th table cn c t chc v nh gi li thng qua cu lnh ANALYZE nh trn. V d: ANALYZE TABLE VOUCHER ESTIMATE STATISTICS; Tng ng vi lnh: ANALYZE TABLE VOUCHER ESTIMATE STATISTICS; SAMPLE 1024 ROWS Khi s dng mnh ESTIMATE STATISTICS, theo mc nh, n s dng 1024 rows
8> AND t.owner='SCOTT'; TABLE_NAME DATA_OBJEC HEADER_FIL ----------- ---------- ---------BONUS 1812 4 DEPARTMENTS 1811 4 DUMMY 1814 4 EMPLOYEES 1810 4 SALGRADE 1813 4 5 rows selected.
HEADER_BLO ---------12 7 22 2 17
Trang 184
Trang 185
Cu trc ca B_TREE nh ca index hay cn gi l gc (root). Gc cha cc im vo (entry) tr n mc tip theo ca index. mc tip theo l cc block nhnh (branch). Block nhnh ny li tr n cc block tip theo ca index. mc thp nht l l (leaf). L s cha thng tin im vo tr n cc rows trong table.
Cc khi l l kt ni kp thun tin cho vic truy xut index trong trt t gim hay tng ca gi tr kho. nh dng ca l index Mt im vo ca index s c to thnh bi cc thnh phn sau y: Entry header: thng tin lu tr s column v thng tin kho ca cc hng trong bng. Key column length_value pair: cha thng tin v kch thc column tham gia vo kho v tip theo l kch thc ca . ROWID: l gi tr ca ROWID cha gi tr kho ca index. c tnh ca index leaf entry Mt B-TREE index trong mt non-partitioned table: Gi tr kho b lp li nu nh c nhiu hng c cng gi tr kho. Khng c index entry tng ng vi cc rows m gi tr ca tt c cc ct kho u bng NULL. ROWID c gii hn s dng tr n cc rows ca table, bi v tt c cc rows u thuc v cng mt segment. nh hng ca vic thc thi cu lnh DML i vi Index. Oracle server xem xt index ca table mi khi c mt cu lnh DML thc thi trn table . Di y l mt s nh hng ca cu lnh DML i vi index:
Trang 186
Kt qu ca cu lnh insert (thm mi) dng d liu s chn thm mt index entry vo index tng ng. Vic delete (xo) cc rows trong table s dn ti vic xo cc index entries tng ng trong block. Khng gian s dng bi cc rows b xo s khng dng c cho cc entries (im vo mi) cho ti khi ton b cc entries (im vo) ca block bi xo. Vic cp nht cc ct kho l kt qu ca qu trnh delete hay insert. Gi tr PCTFREE khng nh hng n index ngoi tr vo thi im to index. Mt im vo mi c th c thm vo block ca index ngay c khi khng khng gian ch nh bi PCTFREE.
Khi chn mt bn ghi trong trt t tng dn ca kho, v d nh vic h thng sinh ra s empno cho bng EMP, th c th xy ra hin tng tht c chai trn cc index v tt c cc index c cp nht xy ra cng mt v tr trong cy index, phng php dng kho ngc s tri v phn tn cc index cp nht qua nhiu cy index. V d: khi insert m nhn vin 7698 vo trong bng, mt kho 8967 (kho ngc vi 7698) s c lu trong index, v nhn vin tip theo 7782 c nhp v th mt kho 2877 (kho ngc vi 7782) s c lu vo ca index. V vy cc mc (entries) ca index c lu trn trn nhiu bock khc nhau ca index. Nh vy vic sp xp c ngha c bit trong vic trnh gim hiu nng trong index mi trng Oracle Paralell. Index dng kho ngc hay c s dng cho cc query m c cc gi tr ging nhau, bi v cc kho v mt t vng cnh nhau s khng c lu tr gn nhau khi s dng kho ngc.
Trang 187
Bitmap Index (Index theo kiu nh x bits) l mt kiu index hay c s dng trong mt s trng hp sau: Khi table c nhiu rows v cc ct kho c gi tr khc nhau rt t. iu c ngha l c rt t s khc nhau trong gi tr ca cc ct. V d Bitmap Index thch hp hn i vi cc ct gii tnh (Nam hay N). Khi truy vn c kt hp s dng nhiu mnh trong phn iu kin WHERE. Mnh truy vn s dng cc php ton logic OR. Khi cc ct kho l read-only (ch c) hay c rt t hot ng cp nht cc ct kho. Cu trc ca Bitmap Index Mt Bitmap index cng c t chc nh l B-TREE index, nhng phn l ca mi node lu mt dy cc bit cho mi kho thay v danh sch cc ROWID. Mi bit trong danh sch Bitmap tng ng vi mt ROWID, v nu gi tr bit c khi to, iu c ngha l hng c ROWID tng ng s cha gi tr kho. S dng Bitmap index Bitmap-TREE index s dng thit lp phn l ca cc node, phn ny s cha on bitmap c s dng xc nh hng cha gi tr kho. Khi c thay i trn cc ct kho trong table, cc chui bitmap cn c thay i theo. Kt qu l s sinh ra cc kho trn cc bitmap segment lin quan do qu trnh phn on cc kho ny i hi thc hin trn ton b bitmap segment. Mt row qun l bi bitmap s khng th cp nht bi cc transaction khc n khi transaction u kt thc.
Trang 188
Thch hp vi cc ct d liu trn tp gi Thch hp vi cc ct d liu trn tp gi tr ln tr nh Vic cp nht da trn kho quan h nn Cp nht da vo trng kho nn kh t khng t Khng hiu qu cho cc truy vn c s Hiu qu cho cc truy vn c s dng dng mnh OR mnh OR Hu ch i vi OLTP (Online transsaction Hu ch i vi DSS (Decision support processing - dch v x l trc tuyn) system - h thng h tr quyt nh)
Bng trn y so snh gia B-TREE v Bitmap Index, Bitmap index c s dng nhiu hn trong trng hp cc ct c gi tr khc nhau rt t. Vic cp nht cc ct lm kho trong Bitmap index th s chm hn bi v Bitmap index s dng phng php kho on bitmap (bitmap segment level locking), trong khi trong mt B-TREE index kho thc hin trn cc im vo tng ng vi tng row ring l trn table. Bitmap index c th thc hin cc hot ng vi cc ton hng logic OR. Khi Oracle Server s dng hai phn on bitmap thc hin vic so snh tng bit trong ton hng OR v tr v kt qu l mt chui Bitmap. Tnh cht ny cho php s dng hiu qu chui Bitmap trong cu lnh truy vn c s dng ton hng logic OR. Ni chung B-TREE index thch hp hn trong mi trng OLTP cho vic truy vn cc bng ng. Trong khi , Bitmap index thch hp hn trong mi trng DSS c s dng nhiu cu lnh truy vn phc tp trn cc table ln (large) v tnh (static).
15.3.QUN L INDEX
15.3.1. To cc index
Mt index c th to hoc trn acount ca user l owner ca bng hay to trn mt acount khc. C php: CREATE [ UNIQUE ]INDEX [schema.] index ON [schema.] table (column [ ASC | DESC ] [ , column [ASC | DESC ] ] ...) [ TABLESPACE tablespace ] [ PCTFREE integer ] [ INITRANS integer ] [ MAXTRANS integer ] [ storage-clause ] [ LOGGING| NOLOGGING ] [ NOSORT ] Vi: UNIQUE schema c s dng ch nh mt unique index (nonunique index l mc nh). l owner ca bng cha index.
Trang 189
index table column ASC/DESC TABLESPACE PCTFREE INITRANS MAXTRANS STORAGE LOGGING NOLOGGING NOSORT
l tn ca index. l tn ca bng cha index l tn ct dng lm index c cung cp tng thch v c php cho database khc. tn tablespace m index s c to trn khng gian dnh ring trong mi block, c s dng khi mt c im vo mi ca index (new entries) c to ra. ch nh s giao dch thit lp ban u cho mi block gii hn s giao dch c th thit lp cho mi block (gi tr mc nh l 255). tham s lu tr, quy nh c bao nhiu extents s cp pht cho index. ch nh vic to cc index v cc hot ng tun t trn trn index s c ghi vo trong cc redo log file ch nh vic to v cc hot ng tun t trn index khng c ghi vo cc log file. ch nh cc row c lu trong database theo trt t tng dn v v th oracle server khng cn sp xp cc hng trong khi to index.
V d: CREATE INDEX scott.emp_lname_idx ON scott.employees(last_name) PCTFREE 30 STORAGE(INITIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50) TABLESPACE indx01; Ch : Nu gi tr ca MINIMUM EXTENT c nh ngha cho tablespace, kch thc ca extent dng cho index s c lm trn ln thnh mt bi s ln gi tr ca MINIMUM EXTENT. Nu mnh [NO]LOGGING b b qua, thuc tnh log ca index mc nh s ph thuc vo thuc tnh log ca tablespace m index c to trn . PCTUSED khng c ch nh cho index, v cc im vo index phi c lu tr theo mt trt t nht nh, ngi dng khng c php iu khin khi mt index block c s dng cho vic insert. Nu t kho NOSORT c s dng khi d liu khng c sp xp trong trng kho th cu lnh s kt thc vi mt li, li ny ging nh vic thc hin nhiu cu lnh DML trn bng. Oracle server s s dng index ang tn ti to bng nu c th. Vic ny xy ra khi kho cho mt index mi tng ng vi phn u ca kho ca mt index tn ti. Cc hng dn khi to index: Hy xem xt cc hng dn khi to index: Index lm tng tc ca cc cu lnh truy vn nhng lm chm tc ca cc cu lnh DML. V th, cn gim ti thiu index trn cc bng hay xy ra thay i. t index trong cc tablespace ring bit, khng t index trong tablespace cha rollback segment, temporary segment v table.
Trang 190
lm gim s phn mnh trong cc tablespace dng cha index s dng chun kch thc extent l bi s ca 5*DB_BLOCK_SIZE. Hiu nng c th tng ln nu khng s dng mnh LOGGING. V vy, cn xem xt khi s dng mnh LOGGING khi to cc index ln. V cc im vo cho index l nh hn i vi cc rows c index nn index block s c nhiu im vo cho mt block. V vy, gi tr ca INITRANS i vi index ni chung nn t ln hn l gi tr ca tham s ny trn table s dng index. pht huy hiu qu ca vic s dng index, ta to index cho tng ct hoc nhm ct tham gia trong mnh WHERE ca cu lnh truy vn. V d: 1. To index tng tc truy vn tn nhn vin: SELECT * FROM emp WHERE UPPER(emp_name) LIKE 'JOH%'; Lnh to index CREATE INDEX idx ON emp (UPPER(emp_name)); 2. Vi cu lnh truy vn trn biu thc: SELECT a FROM t WHERE a + b * (c - 1) < 100; Lnh to index CREATE INDEX idx ON t (a + b * (c - 1), a, b); 3. To index h tr sp xp chui k t da trn ngn ng ca tng quc gia: SELECT * FROM t_table ORDER BY name; Lnh to index CREATE INDEX nls_index ON t_table NLSSORT(name, 'NLS_SORT = German')); 4. S dng index trn nhiu ct khc nhau: SELECT * FROM emp WHERE UPPER(emp_name) LIKE 'JOH%' ORDER BY name; Lnh to index CREATE INDEX empi ON emp UPPER ((ename), NLSSORT(ename)); Index v gi tr PCTFREE Tham s PCTFREE cho index lm vic khc vi cho table. Tham s ny c s dng ch trong qu trnh to cc index. Tham s ny dnh ring khng gian cho cc im vo ca idex. Cc im vo ca index s khng c cp nht. Khi ct kho c cp nht, cc im vo c s c xo v chn vo mt im vo mi. S dng gi tr ca tham s PCTFREE thp cho index trn cc ct m gi tr ca n tng u n. V d nh h thng sinh s ho n. Khi ny, im vo ca index mi s lun lun da vo im vo tn ti trc v v vy khng cn chn thm vo cc im vo mi gia hai im vo tn ti. y gi tr cho mt ct c index ca hng c chn vo bng c th nhn bt c gi tr no. V vy gi tr mi c th khng nm trong dy gi tr c. Cho nn cn phi ch nh mt gi tr PTCFREE cao. V d to index trn trng m khch hng trn bng ho n. Trong trng hp ny cn s dng cng thc tnh sau xc nh gi tr ca PCTFREE:
Trang 191
Trang 192
[ [ [ [ V d :
CREATE BITMAP INDEX scott.ord_region_id_idx ON scott.ord(region_id) PCTFREE 30 STORAGE(INITIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50) TABLESPACE indx01; Ch : Bitmap index khng th l Unique. Tham s khi to CREATE_BITMAP_AREA_SIZE quyt nh khng gian s c s dng cho vic lu tr cc bitmap segment trong b nh, gi tr mc nh ca n l 8MB, mt gi tr ln hn c th lm cho vic to index nhanh hn.
[ DATAFILE filename ]) | DEALLOCATE UNUSED [KEEP integer [ K|M ] ] } V d: ALTER INDEX scott.ord_region_id_idx ALLOCATE EXTENT (SIZE 200K DATAFILE /DISK6/indx01.dbf); ALTER INDEX scott.ord_ord_no_idx DEALLOCATE UNUSED; Ch : Khng gian index c thu hi khi bng trn index c xy dng b truncate(xo). Khi thc hin vic xo bng bng lnh Truncate th cc index trn bng cng b xo theo.
Trang 195
Cu lnh phn tch index thc hin cc cng vic sau: Kim tra tt c index blocks v tm xem c block hng khng. Cu lnh ny khng kim tra xem index c tng ng vi d liu trong bng hay khng. Thit lp view INDEX_STATS vi thng tin v index
phin bn Oracle 9i, ta c th thc hin lnh ANALYZE VALIDATE STRUCTURE ti u ngay c khi ang c lnh DML thc hin trn table.
C php : ANALYZE INDEX [schema.]index VALIDATE STRUCTURE Sau khi thc hin cu lnh ANALYZE INDEX truy vn view INDEX_STATS ly thng tin v index nh trong v d di y: SVRMGR> SELECT blocks, pct_used, 2> lf_rows, del_lf_rows 3> FROM index_stats; BLOCKS PCT_USED LF_ROWS -------------- -------25 11 14 1 row selected. distinct_keys DEL_LF_ROWS -----------0
Trang 196
15.3.9. Xo cc index
Mt index cn c xo i trong nhng trng hp sau y: Mt index khng cn thit cho ng dng na. Mt index c th c xo i khi thc hin load nhiu d liu, v to li sau khi load xong d liu. Mt index c th c nh du khng hp l (INVALID) khi c mt instance hng trong qu trnh no v d nh load d liu. Trong trng hp index cn c xo i v to li. Index b hng. C php: DROP INDEX [schema.]index;
S dng cu lnh sau y kim tra tn kiu v trng thi ca index ca user SCOTT: SVRMGR> SELECT index_name, tablespace_name, index_type, 2> uniqueness, status 3> FROM dba_indexes 4> WHERE owner='SCOTT'; INDEX_NAME -----------EMP_LNAME_IDX ORD_ORD_NO_IDX ORD_REGION_ID_IDX 3 rows selected. TABLESPACE_NAME --------------INDX01 INDX01 INDX02 INDEX_TYPE ---------NORMAL NORMAL BITMAP UNIQUENES --------NONUNIQUE UNIQUE NONUNIQUE STATUS -----VALID VALID VALID
Trang 197
Ct INDEX_TYPE ch nh index l Bitmap hay Normal, s dng cu lnh sau lit k tn ca tt c cc index kho ngc: SVRMGR> SELECT o.object_name 2> FROM dba_objects o 3> WHERE owner='SCOTT' 4> AND o.object_id IN (SELECT i.obj# 5> FROM ind$ i 6> WHERE BITAND(i.property,4) = 4); OBJECT_NAME ----------------ORD_ORD_NO_IDX 1 row selected.
Trang 198
C mt s phng php khc nhau c th load (np) d liu vo trong tables ca oracle database, cc phng php c cp trong chng ny bao gm. Cng c direct load insert: np d liu trc tip. SQL*loader: np d liu t file text, khun dng t do Cng c Import v Export: np d liu t file lu tr vi khun dng do Oracle quy nh. Direct load insert Direct load insert c th c s dng sao chp (copy) d liu t mt bng sang mt bng khc trong cng mt database. S dng phng php ny c th tng tc ca qu trnh insert d liu do c th b qua vng m d liu, d liu c ghi trc tip vo trong database. SQL loader SQl * loader l cng c c s dng load d liu vo trong oracle database s dng cc file d liu bn ngoi, cng c ny thng dng chuyn d liu t h thng khc (nh FoxPro, Access,...) vo trong Oracle. Eport v Import Cng c Export cho php cc users tch thng tin trong dictionary views v d liu trong Oracle Database v chuyn chng vo trong mt file ca h iu hnh theo nh dng file nh phn ca Oracle.
Trang 199
File sinh ra bi cng c Export c th c bi cng c Import a d liu c c vo trong cng mt database hoc vo mt database khc.
Direct insert load ch c dng khi cu lnh INSERT INTO SELECT c s dng. Tu chn ny khng c khi cu lnh INSERT INTO VALUES c s dng. Direct load insert c dng cho c nonpartitioned table v partitioned table. Cng c ny cho php kim tra cc index v cc constraint ca bng. Ch logging Khi insert s dng tu chn LOGGING (l gi tr mc nh) cu lnh ny sinh ra cc im vo cho redo log, thc hin vic recovery d liu y nu trong qu trnh load c li. Nu NOLOGGING c s dng, tt c cc thay i trong d liu s khng c lu trong vng m redo log, mt s thng tin nh v logging c a vo redo log cho cc cu lnh m rng vng lu tr Ch NOLOGGING s dng nu nh cc thuc tnh c khi to cho bng. Nu mt s thao tc update online i vi d liu trn bng xy ra thng xuyn nn khi to thuc tnh NOLOGGING khi load v khi to li LOGGING khi load d liu hon thnh. Direct load insert cho php cc giao dch khc ng thi to thay i trn bng Ton b d liu a vo bng theo phng php ny s c load vo vng ch nh bi High Water Mark. Nu bng cha nhiu block ni cc hng b xo, khng gian c th s khng c s dng, vic truy vn trn ton b bng c th s chm i.
16.2.NP D LIU
16.2.1. Np d liu bng SQL* Loader
Sql* Loader np d liu t mt file bn ngoi database vo trong Oracle database. Cc c tnh ca SQL loader: C th s dng mt hay nhiu file u vo Mt vi bn ghi u vo c th c kt hp vo trong mt bn ghi logic trong qu trnh np. Cc trng u vo c th c di thay i hoc nh nhau. D liu u vo c th c cc nh dng khc nhau k t, nh phn, date. D liu c th c load t cc phng tin lu tr khc nhau nh a, bng t. D liu c th c load vo mt hoc nhiu bng trong mt ln chy.
Trang 200
C tu chn cho php thay th hay ni tip d liu vo trong cc bng. Cc hm SQL c th c s dng ngay trn d liu u vo trc khi d liu c lu trong database. Gi tr cc ct c th t ng c sinh ra da trn mt nguyn tc no , v d: gi tr kho tun t c th c sinh ra v lu trong cc ct ca bng. D liu c th c load trc tip vo trong bng m khng cn phi s dng n vng m.
SQL*Loader s dng cc file sau y Control file (file iu khin): dng nh dng cho d liu u vo, bng u ra v cc iu kin tu chn c th c s dng load mt phn cc bn ghi tm thy trong file d liu u vo. Data file (file d liu): cha d liu u vo theo nh dng c nh ngha bi control file. Parameter file (file tham s) l file tu chn c th s dng cha cc tham s dng lnh cho qu trnh load. Bad File: c s dng bi cng c load dng ghi cc bn ghi b loi b trong qu trnh load (hin tng ny c th xy ra khi cc bn ghi c load vo trong bng v b loi ra sau khi kim tra tnh hp l i vi cc trng) Log File: c to bi SQL*loader cha mt bn ghi cc thng tin trong qu trnh load d liu. Discard File: l mt file c th c to khi cn thit, file ny cha tt c cc bn ghi khng tho mn iu kin la chn.
Trang 201
SQL* Loader s dng hai phng php load d liu: Conventional load - np d liu thng qua mng Direct load - np d liu trc tip Conventional load Phng php conventional load xy dng mt mng cc hng c insert v s dng cu lnh INSERT load d liu. Trong qu trnh load d liu theo phng php conventional load cc bn ghi a vo s c phn tch da vo cc trng c ch nh. Mt mng ca cc bn ghi c to lp v chn vo trong bng theo ch nh ca file iu khin. Cc bn ghi khng tho mn iu kn ca cc trng c ch nh th s b loi b v cc bn ghi khng tho mn iu kin la chn t ra s b t chi. C th s dng phng php conventional load load d liu vo trong c cc bng cluster hay cc bng khng c cluster. Thng tin redo log c sinh ra v iu khin bi thuc tnh LOG cho cc bng c load. Direct load Theo phng php direct load, oracle server xy dng cc block d liu trn b nh v ct cc block ny trc tip vo trong cc vng extent c cp pht cho bng c dng trong qu trnh load . Redo log khng c sinh ra tr khi database ang ch ARCHIVE LOG, Direct load s dng cc trng ch nh xy dng ton b cc blocks ca d liu v trc tip ghi ton b cc block vo trong cc datafile. Qu trnh load d liu ny c th b qua vng m d liu trn b nh, vic truy xut vng nh SGA ch qun l vic m rng cc extents v hiu chnh gi tr High Water Mark. Phng php direct load cho php np d liu nhanh hn so vi phng php conventional load. Nhng phng php ny khng s dng c trong mt s tnh hung nht nh. Phn tip theo s trnh by so snh gia hai phng php load d liu.
Trang 202
S dng ln COMMIT ghi nhn S dng cc lnh lu tr d liu thay i d liu thng tr Lun c cc redo log tng ng Tho mn tt c cc rng buc Ch to redo log trong mt s trng hp c bit Ch cn tho mn kho chnh, kho duy nht v iu kin NOT NULL
Thc hin cc trigger INSERT km Khng thc hin cc trigger INSERT km theo theo (nu c) C th np d liu vo clustered Khng cho php np d liu vo clustered tables tables User khc vn c th thay i d liu Trong khi np, cc user khc khng c php trn table, trong khi np. sa i d liu ca bng
Phng php lu tr d liu Phng php conventional load s dng cu lnh SQL v COMMIT cho vic ct d liu, qu trnh chn mt mng d liu v tip theo l cu lnh COMMIT. Mi d liu load c th lin quan n mt vi giao dch. Phng php direct load s dng phng php ghi cc block d liu vo trong oracle data file, cc c tnh khc nhau sau y gia hai qu trnh ct d liu trn hai phng php: Trong qu trnh d liu c ct, ton b cc block c ct vo trong oracle database. Cc block ny c ghi vo trong sau gi tr High Water Mark ca bng. Mt qu trnh ct d liu s khng kt thc giao dch. Cc index khng c cp nht trong mi ln ct d liu. Lu li cc thay i Conventional load sinh ra im vo redo log ging nh cc cu lnh DML, khi s dng direct load, cc im vo khng c sinh ra nu nh database trong ch : Database trong ch NOARCHIVELOG Database trong ch ARCHIVELOG nhng tham s LOGGING=DISABLE (ch logging b disable khi khi to thuc tnh NOLOG cho bng hay s dng mnh UNRECOVERABLE trong file iu khin. Thit lp cc rng buc Trong qu trnh s dng conventional load tt c cc constraint c enable s c thit lp, cc constraint ny c s dng trong qu trnh thc hin cc cu lnh DML. Khi thc hin Direct load cc constraints c s dng nh sau: Cc NOT NULL constraint c kim tra khi cc mng c xy dng.
Trang 203
Ngoi kho( Foreign Key) v cc CHECK constraint b DISABLE v c ENANBLE thc hin xong qu trnh load d liu bng cch s dng cu lnh tng ng trong tp iu khin. Ngoi kho bi disable b v chng tham chiu n cc hng khc hay cc bng khc. Cc CHECK constraint b DISABLE bi v chng c th s dng cc hm SQL, nu mt s lng nh cc hng c chn vo trong mt bng ln nn s dng phng thc load conventional load. Kho chnh v kho duy nht (unique) c kim tra trong qu trnh load v khi kt thc qu trnh load chng c th b disable nu chng khng hp l. Thc hin cc Trigger Insert Trong khi cc trigger insert c thc hin trong qu trnh conventional load th chng li b DISABLE trc khi thc hin vic load bng phng thc direct. Chng c th vn trong trng thi DISABLE nu nh i tng c tham chiu ti khng th truy xut khi kt thc qu trnh chy. Cn xem xt vic s dng phng thc conventional load khi load d liu vo trong bng vi trigger insert. Load d liu vo trong clustered table Phng thc direct load khng th s dng cho cc clustered table, ch c th s dng phng thc conventional load cho cc bng clustered table. Qu trnh kho (Locking) Trong khi thc hin direct load, cc transactions (giao dch) khc khng th ghi li bt k thay i no trn bng ang c load, ngoi tr vic s dng phng thc parallel direct load.
Tnh tun t ca cc cu lnh S dng cc file d liu vo khc nhau cho mi session trong khi s dng parallel direct load, khi cc sesion trong parallel direct load c khi to, qu trnh load thc hin cc bc sau y: 1. Mi session s dng mt temporary segment load d liu t tp d liu u vo. Nhng temporary segment ny c to trong tablespace m bng nm trn . Nu tablespace cha mt vi datafile th mt user c th ch cho mi session file ni temporary segment c to. Tham s lu tr cho cc segment ny c th c ch nh bi user. Theo mc nh, cc segment ny s dng cc tham s lu tr ging vi bng ang c load. 2. Extent cui cng trong mi temporary segment s c ct i thu hi khng gian khng c s dng khi session kt thc. 3. Ton b cc temporary segment c kt hp li hnh thnh nn mt segment vo cui ca qu trnh load d liu. 4. Segment c thm vo segment ca bng. Cc hn ch Vic s dng parallel direct load c cc hn ch sau y: Cc indexes khng c xem xt trong qu trnh load, xo cc indexes trc khi load s dng paralell v to li chng sau khi load xong. Tnh ton vn ca tham chiu, CHECK constraint v cc trigger phi c DISABLE v c ENABLE li bng tay sau . Cc hng ch c th ni tip vo vi d liu tn ti trong bng do cc qu trnh load ring l khng th kt hp c vi nhau. Nu d liu trong bng cn thay th th phi s dng cu lnh TRUNCATE bng trc khi s dng parallel load.
Trang 205
S dng cu lnh sau y thc hin load d liu: C php: C:\> sqlldr[keyword=]value[[[,]keyword=]value]... Vi: keyword value V d: $sqlldr scott/tiger \ > control=ulcase6.ctl \ > log=ulcase6.log direct=true Ch : Nu t kho khng c ch nh th gi tr cn c ch ng nh trt t trong cu lnh. l t kho l gi tr c gn cho t kho
T kho USERID CONTROL LOG BAD DATA DISCARD DISCARDMAX SKIP LOAD ERRORS ROWS BINDSIZE
Din gii Username v mt khu tng ng Tn ca control file Tn ca log file File lu tr cc bn ghi np hng (tn mc nh l controlfile.bad) Tn file d liu u vo B qua file cha cc bn ghi c lu tr nhng khng c chn S lng ti a cc discards c php S lng bn ghi c b qua, s dng n trong trng hp tip tc np d liu khi gp li S lng cc bn ghi tip tc c np sau khi SKIP S lng ti a cc bn ghi li S dng d liu trong mng c to trc khi np d liu (i vi phng php np thng thng) Dung lng ti a (tnh theo n v bytes) dng to mng cc dng d liu np vo database, i vi trng hp np thng thng SQL*Loader s dng phng php np trc tip nu tham s ny c t l TRUE. Tn ca cc file cha cc tham s np d liu Tham s ch dng khi np d liu trc tip. Ch s lng lung np trc tip c th thc hin ng thi. File cha temporary segment s dng n khi np trc tip
errors=9999 log=example.log
Lu :
Trong v d trn, example.ctl l tn ca control file - s c nhc ti trong phn sau. Cc t kho s dng trong file tham s chnh l cc t kho dng np d liu nh ni trn.
Trang 208
BEGINDATA READBUFFERS BADFILE DISCARDFILE CHARACTERSET INSERT APPEND TRAILING NULLCOLS POSITION CONSTANT RECNUM SYSDATE TERMINATED ENCLOSED
T kho xc nh im bt u cha d liu, sau t kho ny l d liu cn np vo database. Yu cu s dng b nh m np d liu vo database, s dng trong phng php direct load. Tn ca cc file lu cc d liu khng th np c vo database do pht sinh li trong qu trnh np d liu. Tn ca file lu cc bn ghi b b qua khng np vo database do khng ng vi tiu chun np d liu Tn tp k t s dng trong datafile Thm mi 1 dng d liu trong database Chn thm mt dng d liu vo cui cng ca bng in gi tr null vo ct. TRAILING NULLCOLS c s dng cng vi WHITESPACE T kho dng xc nh v tr ca d liu cn np t gi tr hng s cho ct d liu m s lng dng d liu c np Tr v gi tr ngy gi hin thi T kho xc nh phn cch kt thc T kho dng xc nh ng bao d liu
V d: Ni dung ca mt control file 1. D liu c np trc tip LOAD DATA INFILE * INTO TABLE dept FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' (deptno, dname, loc) BEGINDATA 12,RESEARCH,"SARATOGA" 10,"ACCOUNTING",CLEVELAND 11,"ART",SALEM 13,FINANCE,"BOSTON" 21,"SALES",PHILA. 22,"SALES",ROCHESTER 42,"INT'L","SAN FRAN" V d trn, s dng du phy (,) ngn cch gia cc trng d liu np vo database. 2. D liu cn np t trong file ulcase2.dat LOAD DATA INFILE 'ulcase2.dat' INTO TABLE emp (empno POSITION(01:04) INTEGER EXTERNAL, ename POSITION(06:15) CHAR, job POSITION(17:25) CHAR, mgr POSITION(27:30) INTEGER EXTERNAL, sal POSITION(32:39) DECIMAL EXTERNAL, comm POSITION(41:48) DECIMAL EXTERNAL,
Trang 209
deptno
POSITION(50:51)
INTEGER
EXTERNAL) 10 10 10 20 30 30
D liu trong file ulcase2.dat l: 7782 CLARK MANAGER 7839 2572.50 7839 KING PRESIDENT 5500.00 7934 MILLER CLERK 7782 920.00 7566 JONES MANAGER 7839 3123.75 7499 ALLEN SALESMAN 7698 1600.00 7654 MARTIN SALESMAN 7698 1312.50
300.00 1400.00
v d ny, vic xc nh cc trng d liu np vo database da vo v tr ca ct d liu trn mi dng. Ton t POSITION (V tr u: V tr cui) s thc hin cng vic ny.
Trang 210
Trang 211
Cng c Export Cng c Export c th c s dng to ra cc bn copy logic ca cc i tng c nh ngha v d liu thnh cc tp nh phn. Export c th ghi d liu ra tp trn a hay trn bng t. Cng c Import Cng c Import c th c cc tp c to bng cng c Export, copy cc i tng c nh ngha v d liu vo trong Oracle database. Cng c import khng th c cc text file hay cc file c to trong bt k inh dng no khc. S dng cng c Export v Import Cng c Export v Import c th c s dng trong nhng trng hp sau: T chc li cc bng: d liu ca cc bng cn c chuyn t tablespace ny sang tablespace khc. Cc bng cha nhiu hng b migration, mt bng c nhiu blocks c rt t cc hng c chn vo. Chuyn d liu t user ny sang user khc: iu ny cn thit khi mt user cn c thay i. Mt d liu c export bi mt user c th import vo mt user khc. Chuyn d liu gia cc database: Cc i tng xc nh c th c chuyn t qu trnh pht trin sang sn phm khi s dng export ly phn thng tin cu trc v loi b phn d liu. Export v Import cn c dng ly d liu t mt ng dng OLTP vo trong Oracle data Warehouse. Chuyn d liu gia cc Platform hay cc phin bn khc nhau ca Oracle database. Thc thi qu trnh Logical backup: ton b hay mt vi i tng trong database c th c export, cc export file c th c s dng nh l mt Logical backup.
Trang 212
16.4.2. Cc ch Export
Cng c export cung cp 3 kiu export: User Table Database
Ch Table Tt c cc user c th s dng ch bng export cc bng thuc v user , cc user c cp quyn c th export bt c bng thuc v bt c mt user no trong database, s dng ch bng export: Cu trc cc bng D liu trong bng Tt c cc index ca bng( ch thc hin c khi dng user c phn quyn). Tt c cc trigger trong bng ( ch thc hin c khi dng user c phn quyn). Cc constraint trn bng Tt c cc quyn trn bng Ch export theo user Ch export theo user s dng export d liu thuc v user: User c th export cc i tng do user s hu. Khi ny cc objects thuc v user u c export ngoi tr cc indexes v triggers do user s hu nhng li c p dng cho table ca mt user khc. Hoc cc indexes v triggers trn table do user ny s hu nhng cc triggers v indexes ny li do user khc s hu. Cc trigger v Index c to bi cc user khc nhng trn bng thuc v user c export. Cc user khng c cp quyn ch c th export c cc i tng thuc v user .
Trang 213
Ch Full Khi s dng ch full th ton b cc i tng thuc v database ngoi tr cc cc i tng thuc SYS s c export. Ch ny i hi quyn c bit v khng th thc hin vi mi user. Ch rng trong ba ch export quyn ca user c s dng l role: EXP_FULL_DATABASE.
Cch thng thng (Conventional load) Conventional load l phng php mc nh c s dng bi Oracle Loader nh dng d liu v ghi d liu vo trong database. Conventional load s dng cu lnh SQL ly d liu trong table. D liu c c t a vo trong vng m. Sau , cc hng c chuyn vo vng m kim tra gi tr. D liu sau khi kim tra gi tr s c chuyn vo cc tp export. Cch trc tip (Direct path) Direct path load ly d liu nhanh hn so vi phng php conventional path export. Vi phng php direct path load d liu c c t a vo trong vng m sau cc hng c chuyn trc tip vo trong cc export process. Vng kim tra nh gi b b qua do d liu trong cc block khng c ghi nhn mang cc hng cng vi n . D liu lun sn sng trong nh dng ca cc tp export yu cu, n trnh c qu trnh chuyn i nh dng d liu. D liu c chuyn vo cc export process v cc process ny ghi d liu vo trong cc export file. Cng c Import c th s dng cc export file c to bi bt k mt trong hai phng php trn. Phng php export khng nh hng n thi gian ca qu trnh import.
Trang 214
16.5.CNG C EXPORT
16.5.1. S dng cng c Export
Cng c export c th gi theo ch : Dng lnh Ch tng tc Ch graphic Ch dng lnh (command line) C php: $exp [keyword=]{value|(value, value ...)} [ [ [,] keyword=]{value|(value, value ...)} ] ... Vi: keyword value l t kho c s dng trong cu lnh export. l gi tr c gn cho t kho.
Cc tham s dng lnh s dng khi Import d liu T kho ANALYZE BUFFER Mc nh Y Din gii Cho php thc hin lnh ANALYZE i vi database trc khi import d liu
Kch thc ca b m s dng khi export. Kch Tu theo h thc buffer c xc nh theo cng thc: iu hnh buffer_size = rows_in_array * maximum_row_size Y Gi tr l Y, khi import d liu, kch thc ca extent khi to c t bng vi kch thc ca segment hin thi. Gi tr l Y, tt c cc thao tc export ch c thc hin trong mt read-only transaction. Gi tr l Y, cc rng buc cng c exported cng vi d liu trong bng. Gi tr l Y, export trc tip Hin th mc export, s dng d liu c export, ti mi ln. V d: FEEDBACK=10, Cng c export s hin th tin trnh cho bit mi ln thc hin s export c 10 dng d liu Tn file d liu ra. Tp d liu c phn m rng l .dmp Gi tr l Y, export ton b database. thc hin c vic ny, user cn c cp quyn EXP_FULL_DATABASE Gi tr l Y, export cc i tng trong database cng vi c cc quyn ang c p dng trn i tng
Trang 215
COMPRESS
N Y N
expdat.dm p
Gi tr l Y, hin th danh sch tham s v ngha tng ng ca chng Cc ch incremental export (Cc ch ny s c ni c th phn sau)
a ra danh sch cc users s hu cc i tng c export Tn file cha cc tham s export Export d liu tho mn mt iu kin no .
V d: exp scott/tiger tables=emp query = \"where job=\'SALESMAN\' and sal\<1600\"
Ghi li ch d liu l incremental hay cumulative vo trong cc bng h thng: SYS.INCEXP, SYS.INCFIL v SYS.INCVID
Tu theo h Kch thc tnh theo bytes ca bn ghi c export iu hnh Y ESTIMATE Cho bit c export tng dng d liu trong bng hay khng. Phn tch v thng k s lng cc d liu export. C mt s ch : ESTIMATE, COMPUTE, v NONE Lit k danh sch cc bng export. V d:
TABLES=(EMP#, DEPT, MYDATA)
C export cc transportable tablespace hay khng Khi tham s TRANSPORT_TABLESPACE = Y, TABLESPACES s dng lit k danh sch tn cc tablespace export
TRIGGERS USERID
C export c cc trigger hay khng? Username v mt khu ca user thc hin export. Chng c th hin theo khun dng: username/password AS SYSDBA hay username/password@instance AS SYSDBA
V d: 1. Export trc tip bng d liu $exp scott/tiger tables=(dept,emp) \ > file=emp.dmp log=exp.log compress=n \ > direct=y recordlength=32768 2. Export d liu s dng file tham s > exp system/manager parfile=params.dat Ni dung ca params.dat FILE=dba.dmp GRANTS=y
Trang 216
FULL=y ROWS=y
Trong ln th ba, c thay i trong table 3 v table 4. Khi ny Ch Incremental Export s tip tc export d liu nh sau:
Trang 217
Cumulative Exports (Ch tch lu) Ch cumulative export s thc hin backup i vi cc bng c s thay i k t ln thc hin backup trc ch cumulative hay complete Export. Ch cumulative export s thc hin nn tt c cc ln thc hin backup ch incremental exports vo nhng file n ring l. Ta khng cn phi lu tr cc file backup ch incremental export v khi thc hin backup theo ch cumulative export cc file backup trn s b ghi ln bng mt file mi tng ng. V d: Trong ch cumulative Export ln th t, khi c s thay i ti table 1 v table 6 th tt c cc bng c thay i t ln export ton b gn nht s c export.
Ta quan st thy d liu trong table 4 tuy c c thc hin backup ln th 2 nhng vn tip tc c Backup. Complete Exports (Ch ton b) Ch complete Export s thit lp vic backup ton b d liu c trong database. V d: Trong ln 5, thc hin backup d liu ch ton b.
Trang 218
Ta thy ngay trong ch ny, table 4 tuy khng c thay i g nhng cng vn b export. V d: thc hin Export d liu ch Incremental > exp system/manager full=y inctype=incremental
Connected to: Oracle8i Enterprise Edition Release 8.1.6.0.0 Production With the Partitioning and Java options PL/SQL Release 8.1.6.0.0 - Production
Trang 219
Export done in WE8DEC character set and WE8DEC NCHAR character set About to export specified tables via Conventional Path ... EXP-00011: SCOTT.XXX does not exist . . exporting table EMP 14 rows exported Export terminated successfully with warnings. Fatal Error Messages (thng bo li nghim trng) Khi c cc li nghim trng (fatal errors) xy ra trong qu trnh Export, cng c s ngng session ngay lp tc. Thng thng, cc li ny xy ra do cc li h thng (internal problem) do thiu ti nguyn, thiu b nh... V d, khi chy CATEXP.SQL, file script khng chy, cng c Export s pht sinh thng bo li h thng (fatal error): EXP-00024: Export views not installed, please notify your DBA Completion Messages (Thng bo hon tt) Khi Export hon tt v khng c li xy ra, Export s hin th thng bo Export terminated successfully without warnings". Nu c bt k li khng nghim trng no xy ra trong qu trnh thc hin, Export s kt thc vi thng bo "Export terminated successfully with warnings". Khi c li nghim trng khin h thng phi dng, khi ny h thng s tr v thng bo "Export terminated unsuccessfully" .
16.6.CNG C IMPORT
16.6.1. S dng cng c Import
Cng c import dng a d liu t cc export file vo database
Trang 220
Khi thc hin Import d liu, Users cn c c gn role IMP_FULL_DATABASE. Cng c import c th c thc hin cc ch sau: T kho TABLES FROMUSER FULL Din gii Ch ny cho php thc hin import cc tables v partitions vo database. Vi ch ny, user c th import tt c cc objects do user s hu nh tables, grants, indexes, v procedures. Ch c cc users c gn IMP_FULL_DATABASE role mi c th thc hin import ch ny. Khi ny, user c th import ton b database Cho php user c quyn tng ng c th di chuyn v import tp hp cc tablespace t database ny sang database khc
TRANSPORT_TABL ESPACES
Ch dng lnh C php: $imp [keyword=]{value|(value, value ...)} [ [ [,] keyword=]{value|(value, value ...)} ] ... Vi: keyword value Cc tham s dng lnh T kho ANALYZE BUFFER Mc nh Y Din gii Cho php thc hin lnh ANALYZE i vi database trc khi import d liu l t kho s dng l gi tr c gn cho t kho
Kch thc ca b m s dng khi import. Kch Tu theo h thc buffer c xc nh theo cng thc: iu hnh buffer_size = rows_in_array * maximum_row_size N Pht ln commit sau mi ln a d liu vo database trong qu trnh import. Vi cch ny, d liu s c m bo a vo database, i li, thi gian import s b ko di hn. Cho bit c import c cc rng buc vo database hay khng Lit k danh sch cc datafile s c a vo database. 0 Hin th mc import, s dng d liu c import, ti mi ln. V d: FEEDBACK=10, Cng c import s hin th tin trnh cho bit mi ln thc hin s a c 10 dng d liu vo database Tn file d liu vo. Tp d liu c phn m rng
Trang 221
COMMIT
FILE
expdat.dmp
l .dmp FROMUSER FULL N GRANTS Y HELP IGNORE INCTYPE INDEXES LOG PARFILE RECORDLENGTH ROWS SKIP_UNUSABLE_ INDEXES TABLES Y N N Import cc FROMUSER objects vocc schemas thuc
Gi tr l Y, import ton b database. thc hin c vic ny, user cn c cp quyn IMP_FULL_DATABASE Gi tr l Y, import cc i tng trong database cng vi c cc quyn ang c p dng trn i tng Gi tr l Y, hin th danh sch tham s v ngha tng ng ca chng C b qua cc li xy ra trong qu trnh import tip tc import d liu mi hay khng. Cc ch incremental Import Gi tr l Y, import c cc index. Tn file lu tr cc thng bo khi import. Tn file cha cc tham s export
Tu theo h Kch thc tnh theo bytes ca 01 bn ghi c iu hnh import Y N Cho bit c import tng dng d liu trong bng hay khng. Cho bit c b qua vic to cc index v t n v trng thi Unusable trong qu trnh Import hay khng. Lit k danh sch cc bng import. V d:
imp system/manager TABLES=(jones.accts, scott.emp,scott.dept)
C import cc transportable tablespace hay khng Khi tham s TRANSPORT_TABLESPACE = Y, TABLESPACES s dng lit k danh sch tn cc tablespace import Hin th danh sch cc user s hu cc objects s c import. Username v mt khu ca user thc hin export. Chng c th hin theo khun dng: username/password AS SYSDBA hay username/password@instance AS SYSDBA
TOUSER USERID
Ch : Ch c mt tham s FULL=Y hay OWNER=user hay TABLES=schema.table c ch nh. V d: > imp system/manager parfile=params.dat Ni dung ca file params.dat: FILE=blake.dmp SHOW=n
Trang 222
IGNORE=n GRANTS=y ROWS=y FROMUSER=blake TOUSER=scott TABLES=(unit,manager) Th t ca qu trnh import Khi thc hin import, cc objects (i tng) s ln lt c a vo database theo th t sau:
Tnh tun t ny ngn d liu b t chi v trt t trn bng c import. Trt t ny cn ngn cc trigger thc hin hai ln trn cng mt d liu. Tuy nhin mt s i tng nh th tc c th c kim tra khi import bi v chng c import trc khi cc i tng c tham chiu. Kim tra cc i tng vi STATUS=INVALID v compile li chng. Import vo mt bng tn ti Khi import d liu vo mt bng tn ti, trt t ca import c th cn to ra li tham chiu. Tnh hung tng t cng xy ra khi c constraints trn mt bng m c tham chiu ti chnh n. V l do nh ni trn y, cch tt nht l disable cc tham chiu bi constraint khi import d liu vo trong mt bng tn ti. Cc constraint c th c enable li sau khi import thnh cng. Ta cng c th phn chia qu trnh Import ra lm nhiu ln thay v 1 ln trnh vic check constraints mt nhiu thi gian. Tablespace c s dng cho mt i tng Nu mt user c quota cn thit cc bng s c import vo trong cng mt tablespace m chng c export. Tuy nhin nu tablespace khng tn ti hay user khng quota trn tablespace, import s to bng trn tablespace mc nh ca user. Nu user khng truy xut c tablespace mc nh, cc bng s khng c import. Mt phn on LOB ch c th c import vo cng mt tablespace t chng c export. Mt bng ang cha LOB s khng c to nu nh owner ca cc bng khng th to cc i tng trn tablespace cc phn on LOB c export. Ch Mt bng khng cha LOB c th c chuyn t mt tablespace sang mt tablespace khc bng cch s dng phng thc import. Cc hng dn trong s dng export v import S dng cc tp tham s lu cc tham s chung trong danh sch tham s.
Trang 223
Nu c nhiu hot ng update trn cc bng ang c export nn s dng tham s CONSISTENT=Y, ni chung nn chy cc qu trnh export d liu ln khi c t cc hot ng trong bng c export, nn to cc rollback segment ln cho qu trnh import. Tu chn COMPRESS=Y s sinh ra on m to initial extent , initial extent ny bng tng kch thc ca tt c cc extent hin ang c cp pht cho mt i tng. Nu i tng c nhiu hng c xo hay extent cui cng c nhiu block khng c s dng , th khng cn thit phi cp pht nhiu khng gian cho i tng . Cp pht vng m ln nu h iu hnh v ngun ca h thng cho php.
Trang 224
Authentication Mechanism (C ch xc nhn) Mi user truy cp vo database u tri qua bc xc nhn quyn truy nhp. Vic ny c th c thc hin bi: Database H iu hnh Xc nhn quyn thng qua ng mng Tuy nhin, trong ti liu ny ta ch quan tm ti vic xc nhn bi database. Tablespace Quotas (hn mc tablespace) Tablespace quotas iu khin s lng table space ng vi kh nng lu tr vt l c php i vi mi user trong database. Default Tablespace (tablespace mc nh) L tablespace mc nh cha cc segments do tin trnh ca user s dng lu tr d liu trong trng hp User khng ch r tn tablespace ngay khi to segment.
Trang 225
Temporary Tablespace (tablespace trung gian) Temporary tablespace l ni Oracle server cp pht cc extents phc v cho cng vic sp xp (sort) mi khi thc hin lnh sp xp ca User . Account Locking (kho account) Cc Accounts c th b kho (locked) ngn cn vic user thm nhp vo database. Vic ny c th c thc hin mt cch t ng hoc do iu khin ca qun tr vin database. Resource Limits (hn ch ti nguyn) L nhng gii hn c a ra cho mi user v cc ti nguyn ca h thng nh: thi gian s dng CPU, truy xut vo ra I/O, s lng cc sessions c m ti a,... Nhng gii hn v ti nguyn s c bn k trong chng sau.
17.2.QUN L USER
17.2.1. Cc bc thc hin khi to mi user
1. Lu chn username (tn user dng truy cp database) v c ch xc nhn i vi user ny. 2. Ch ra cc tablespaces cho user dng lu tr d liu. 3. Phn b hn mc s dng trn tng tablespace. 4. Gn cc default tablespace v temporary tablespace. 5. To user. 6. Phn quyn truy nhp (privileges - quyn; roles - chc danh) cho user va to lp.
Trang 226
Trang 227
Trong OEM ta c th thc hin theo cc bc sau 1. 2. 3. 4. 5. S dng Oracle Security Manager. Chn User>Create. Nhp vo thng tin ca trong phn General page. Ch r hn mc s dng trong phn Quotas. Bm nt Create.
[ DEFAULT TABLESPACE tablespace] [ TEMPORARY TABLESPACE tablespace] [ QUOTA {integer [K | M] | UNLIMITED } ON tablespace [ QUOTA {integer [K | M] | UNLIMITED } ON tablespace ] ... ] V d: ALTER USER peter QUOTA 0 ON data01; Trong OEM, ta thc hin theo cc bc sau 1. 2. 3. 4. 5. Chy Oracle Security Manager. Chuyn ti nt Users. Chn username tng ng. Nhp vo cc thng tin thch hp trong phn Quotas. Bm nt Apply.
17.2.5. Hu User
Hu b user khi database C php: DROP USER user [CASCADE] V d: DROP USER peter; Hoc DROP USER peter CASCADE; Lu : CASCADE s hu tt c cc i tng trong schema trc khi xo User. N cn c ch r khi schema cha nhiu i tng. Ta khng th hu c cc user hin ang kt ni ti Oracle server.
Hoc ta cng c th ly cc thng tin v Account ca user V d: SVRMGR> SELECT username, account_status, temporary_tablespace 2> FROM dba_users; USERNAME ACCOUNT_STATUS --------------- ---------------SYS OPEN SYSTEM OPEN DBSNMP OPEN SCOTT OPEN 4 rows selected. TEMPORARY_TABLESPACE -------------------TEMP TEMP TEMP TEMP
Trang 230
iu chnh li cc thng s c trong file tham s khi to. Cch ny i hi phi dng ri khi ng li database.
Trang 231
18.2.QUN L PROFILE
18.2.1. To Profile
To profile lu tr cc gii hn ti nguyn s dng thng qua cu lnh: CREATE PROFILE profile LIMIT [SESSIONS_PER_USER max_value] [CPU_PER_SESSION max_value] [CPU_PER_CALL max_value] [CONNECT_TIME max_value] [IDLE_TIME max_value] [LOGICAL_READS_PER_SESSION max_value] [LOGICAL_READS_PER_CALL max_value] [COMPOSITE_LIMIT max_value] [PRIVATE_SGA max_bytes] max_value :== {integer|UNLIMITED|DEFAULT} max_bytes :== {integer[K|M]|UNLIMITED|DEFAULT} Vi: profile UNLIMITED DEFAULT COMPOSITE_LIMIT gii hn s dng ti nguyn tng cng bao gm c cc trng s tng ng. Gii hn c tnh bng tng s: CPU_PER_SESSION, CONNECT_TIME, LOGICAL_READS_PER_SESSION, PRIVATE_SGA Lu : View RESOURCE_COST trong data dictionary cho bit cc trng s tng ng c gn cho cc ti nguyn khc nhau. Ta cng c th s dng lnh ALTER RESOURCE COST bit c cc trng s cho tng ti nguyn khc nhau. V d: CREATE PROFILE developer_prof LIMIT SESSIONS_PER_USER 2 CPU_PER_SESSION 10000 IDLE_TIME 60 CONNECT_TIME 480; Trong OEM, ta thc hin cc bc sau 1. Chy Security Manager. 2. Chn Profile>Create. 3. Trong phn General page, nhp vo tn v cc thng tin chi tit ng vi tng mc ti nguyn. 4. Bm nt Apply. l tn ca profile xc nh user c gn profile tng ng c th s dng khng hn ch ti nguyn mc profile hn ch s dng ti nguyn c ch ra trong mnh tng ng thuc DEFAULT profile
Trang 232
Gii hn v ti nguyn cho tng Call level Ti nguyn CPU_PER_CALL LOGICAL_READS_PER_CALL Din gii Thi gian s dng CPU cho mi ln gi, tnh theo n v trm giy. S lng block c c ti a
Ghi ch: IDLE_TIME c p dng ch cho cc tin trnh server. Gii hn IDLE_TIME khng nh hng g i vi cc cu lnh truy vn di hay cc thao tc khc. LOGICAL_READS_PER_SESSION l gii hn cc ln c block d liu t c b nh ln a. PRIVATE_SGA p dng khi chy multithreaded server (MTS).
Trang 233
Trong OEM, ta c th lm theo cc bc sau 1. 2. 3. 4. Chy Security Manager. Chn Profile>Assign Profile to users. Trong phn Assign Profile page, chn user tng ng. Bm nt OK.
Mt s tnh cht ca Profile Profile c gn khng nh hng ti sessions hin thi. Profiles ch c th c gn cho users khng c gn cho roles hay cho cc profiles khc. Trong trng hp ta khng gn profile cho user ngay t khi mi to user, profile mc nh (default profile) s c t ng gn cho user .
Trang 234
V d: ALTER PROFILE default LIMIT SESSIONS_PER_USER 5 CPU_PER_CALL 3600 IDLE_TIME 30; Trong OEM, ta thc hin theo cc bc sau 1. 2. 3. 4. 5. Chy Security Manager. Chuyn ti nt Profile. Chn profile tng ng. Trong phn General page thay i cc thng s trong tng mc. Bm nt Apply.
18.2.6. Hu profile
Thc hin vic hu profile theo lnh DROP PROFILE. C php: DROP PROFILE profile [CASCADE] Vi: profile CASCADE V d: DROP PROFILE developer_prof; Hoc DROP PROFILE developer_prof CASCADE; Trong OEM, ta thc hin theo cc bc sau 1. 2. 3. 4. 5. Chy Security Manager. Chuyn ti nt Profile. Chn profile tng ng. Chn Profile>Remove. Bm nt OK. tn ca profile b hu hu tt c cc profile c gn cho user.
Trang 235
V d: xem gii hn ti nguyn ca User SCOTT SVRMGR1> SELECT p.profile, p.resource_name, p.limit 2> FROM dba_users u, dba_profiles p 3> WHERE p.profile=u.profile AND username=SCOTT AND 4> p.resource_type=KERNEL; PROFILE RESOURCE_NAME -------------- -------------------------DEVELOPER_PROF COMPOSITE_LIMIT DEVELOPER_PROF SESSIONS_PER_USER DEVELOPER_PROF CPU_PER_SESSION DEVELOPER_PROF CPU_PER_CALL DEVELOPER_PROF LOGICAL_READS_PER_SESSION DEVELOPER_PROF LOGICAL_READS_PER_CALL DEVELOPER_PROF IDLE_TIME DEVELOPER_PROF CONNECT_TIME DEVELOPER_PROF PRIVATE_SGA 9 rows selected. LIMIT ------DEFAULT 2 10000 DEFAULT DEFAULT DEFAULT 60 480 DEFAULT
18.3.QUN L MT KHU
c th m bo vic bo mt cho ton b database, h thng qun l mt khu Oracle cho php qun tr vin database qun l mt khu thng qua cc profile. Vic qun l mt khu ny c mt s c im sau: Account locking: cho php t ng kho account tng ng vi user mi khi user khng th kt ni ti h thng. Gn thi hn s dng cho mi mt khu: mi mt khu s c mt thi hn s dng nht nh, qu thi hn trn, mt khu cn c thay i. Lu tr lch s thay i mt khu (Password history): kim tra cc mt khu mi m bo mt khu mi khng trng vi cc mt khu trc . C ch xc nhn mt khu mm do: cho php kim tra v xc nhn mt khu mt cch mm do nhng vn m bo tnh cht ch chng li c nhng hnh thc c tnh xm nhp vo h thng bng cch ph kho, on mt khu.
Trang 236
Cng tng t nh vic a ra cc gii hn v ti nguyn s dng, ta cng c th s dng cc profile thit lp cc gii hn v mt khu v gn cho mi user thng qua lnh CREATE hay ALTER USER. Thc hin qun l mt khu, ta c th s dng cc cu lnh CREATE USER hay ALTER USER lock hay unlock account ca user .
Trang 240
TABLE
SESSION
TABLESPACE
Khng c quyn CREATE INDEX Cc quyn nh CREATE TABLE, CREATE PROCEDURE, CREATE CLUSTER bao gm c cc quyn xo cc i tng . CREATE TABLE bao gm cc quyn CREATE INDEX v ANALYZE, Cc user cn c quota trn tablespace hay phi c gn UNLIMITED TABLESPACE . truncate cc bng th quyn DROP ANY TABLE c s dng.
C php: GRANT {system_priv|role} [, {system_priv|role} ]... TO {user|role|PUBLIC} [, {user|role|PUBLIC} ]... [WITH ADMIN OPTION] Vi: system_priv ch nh quyn h thng s dng role ch nh tn chc danh c gn PUBLIC gn quyn h thng cho tt c cc user WITH ADMIN OPTION cho php user c gn quyn c th gn quyn hay chc danh cho user khc. V d: GRANT CREATE SESSION, CREATE TABLE TO user1; Hoc GRANT CREATE SESSION TO scott WITH ADMIN OPTION; Mt s hng dn c quyn h thng, user cn c gn quyn c km thm tu chn WITH ADMIN OPTION. Ngi c gn vi tu chn WITH ADMIN OPTION c th tip tc gn cho mt user khc quyn h thng vi WITH ADMIN OPTION. Bt c mt user no c quyn GRANT ANY ROLE c th gn bt k quyn no trong database. Ngi c gn vi tu chn WITH ADMIN OPTION c th gn quyn hay ly li cc quyn t bt c user hay role no trong database.
SYSOPER
SYSDBA
SYSOPER privileges WITH ADMIN OPTION CREATE DATABASE RECOVER DATABASE UNTIL
Sau khi to password file bng cng c password v khi to tham s trong initialization file: REMOTE_LOGIN_PASSWORD_FILE=EXCLUSIVE Ngi qun tr h thng c th thm cc user vo trong password file bng cch gn cc quyn SYSDBA v SYSOPER cho user. Tu chn WITH ADMIN OPTION khng c s dng cho vic gn cc quyn ny. Ch c user hin ang c ni n database vi quyn SYSDBA mi c th gn v ly li SYSDBA hay SYSOPER cho cc user khc. Cc quyn ny khng th c gn cho mt role bi v cc role khng tn ti khi database startup. View V$PWFILE_USERS cha thng tin v cc user c gn quyn SYSDBA v SYSOPER. SVRMGR> SELECT * FROM v$pwfile_users; USERNAME ----------------INTERNAL SYS 2 rows selected. SYSDB --------TRUE TRUE SYSOP ----------TRUE TRUE
SVRMGR> SELECT * FROM session_privs; PRIVILEGE ---------------------------------------CREATE SESSION ALTER SESSION CREATE TABLE SELECT ANY TABLE CREATE CLUSTER CREATE SYNONYM CREATE VIEW CREATE SEQUENCE CREATE DATABASE LINK CREATE PROCEDURE CREATE TRIGGER CREATE TYPE 12 rows selected.
19.2.QUN L QUYN
19.2.1. Thu hi cc quyn h thng
S dng c php sau y ly li cc quyn h thng. C php: REVOKE {system_priv|role} [, {system_priv|role} ]... FROM {user|role|PUBLIC} [, {user|role|PUBLIC} ]... V d: REVOKE CREATE TABLE FROM user1; Hoc: REVOKE CREATE SESSION FROM scott; Ch : Cu lnh REVOKE ch c th ly li quyn ca m c gn trc tip bng cu lnh GRANT. Thu hi cc quyn h thng c th nh hng n mt s cc i tng ph thuc. V d: nu quyn SELECT ANY TABLE c gn cho user v user c gn cc th tc hay view m s dng cc bng thuc v cc user khc th vic ly li cc quyn s lm cho cc th tc hay view tr nn khng hp l. Thu hi cc quyn s dng c WITH ADMIN OPTION Hai hnh di y s minh ho vic thu hi cc quyn h thng s dng WITH ADMIN OPTION.
Trang 244
Hnh v 100.
Khng c s nh hng lan truyn khi thu hi quyn h thng, khi s dng tu chn WITH ADMIN OPTION.
Trang 245
ALL
ON object . WITH GRANT OPTION cho php ngi c gn quyn c th gn cc quyn cho mt user khc. Lu :
gn cc quyn, cc i tng phi thuc v schema ca user gn hoc cn c quyn WITH GRANT OPTION. Mc nh nu mt object thuc v mt user no th user c y cc quyn trn i tng . Tu chn WITH ADMIN OPTION khng dng cho vic gn cc quyn cho cc chc danh.
Trang 246
Hnh v 101.
Trang 247
Hnh v 102.
Trang 248
Hnh v 103.
Chn cc quyn c sn Mt chc danh c th c enable hay disable tm thi cho php hay cm cc quyn. Khng c hin tng lan truyn khi ly li cc chc danh. Cc quyn i tng c th ly li m khng gy ra hin tng lan truyn.
V d: CREATE ROLE sales_clerk; Hoc: CREATE ROLE hr_clerk IDENTIFIED BY bonus; Hoc: CREATE ROLE hr_manager IDENTIFIED EXTERNALLY; Ch : Cu lnh CREATE ROLE IDENTIFIED GLOBALLY ch nh rng vic kim tra xc lp chc danh thng qua Oracle Security Server.
Trang 250
data dictionary. Cc chc danh ny c th gn cho user khng c quyn DBA nhng mun xem thng tin trong cc bng v view thuc data dictionary. Tn chc danh CONNECT RESOURCE DBA EXP_FULL_DATABASE IMP_FULL_DATABASE DELETE_CATALOG_ROLE EXECUTE_CATALOG_ROLE SELECT_CATALOG_ROLE Din gii Chc danh cung cp sn tng thch vi cc phin bn trc Tt c cc quy n h thng, c tu chn: WITH ADMIN OPTION Quyn export d liu ca database Quyn import d liu vo database Quyn xo d liu Quyn thc hin mt th tc Quyn ly d liu
Mt s chc danh c bit khc: Oracle cn c mt s chc danh khc xc lp ngi qun tr database, trn nhiu h iu hnh khc nhau, cc chc danh ny c goi l OSOPER v OSDBA tn ca chng c th khc bit trn cc h iu hnh. Cc chc danh khc c nh ngha bi SQL script c cung cp cng vi database.
tn ca chc danh cn thay i. ch nh khng cn xc nhn khi enable chc ch nh cn xc nhn khi enable cc chc danh cung cp mt khu xc nhn khi enable chc danh ch nh user cn c xc nhn bi dch v bn ngoi (c ch xc nhn bi h iu hnh)
tn ca user c gn cc chc danh tn ca chc danh c thit lp mc nh t tt c cc chc danh c gn cho user l mc nh ngoi tr cc chc danh nm sau mnh EXCEPT. ch nh cc chc danh i sau mnh ny khng thuc vo cc chc danh mc nh. khng chc danh no trong s chc danh c gn cho user l chc danh mc nh.
Hoc: ALTER USER scott DEFAULT ROLE ALL; Hoc: ALTER USER scott DEFAULT ROLE ALL EXCEPT hr_clerk; Hoc: ALTER USER scott DEFAULT ROLE NONE; V cc chc danh cn c gn trc khi chng c th c thit lp mc nh nn khng th khi to cc chc danh mc nh ngay khi s dng cu lnh CREATE USER.
V d: Thng tin v cc quyn cp pht cho user SVRMGRL> SELECT chc danh, password_required FROM dba_chc danhs; ROLE -----------------------------CONNECT RESOURCE DBA AQ_USER_ROLE SELECT_CATALOG_ROLE EXECUTE_CATALOG_ROLE DELETE_CATALOG_ROLE AQ_ADMINISTRATOR_ROLE RECOVERY_CATALOG_OWNER IMP_FULL_DATABASE EXP_FULL_DATABASE SNMPAGENT SALES_CLERK HR_CLERK 14 rows selected. PASSWORD ----------NO NO NO NO NO NO NO NO NO NO NO NO YES EXTERNAL
Trang 255
Unicode Tp k t Single_Byte Tp k t Single_byte, trong mi k t chim mt byte nh vy vi b m k t ny c th m c 127 k t nu b m 7 bits, 256 k t nu b m 8 bits. V d cc tp k t single_byte nh US7ASCII, WE8ISO8859P1... Tp k t Varying_Width nhiu byte Mt tp k t nhiu byte s dng nhiu byte cho mt k t, cc tp k t nhiu byte c s dng h tr cc ngn ng chu . Mt s tp k t nhiu byte s dng mt s bits du (significant bits) xc nh tp k t s dng thuc loi single_byte hay Varying_Width. Mt s v d v cc tp k t nhiu byte c rng thay i: Japanese Extended Unix Code(JEUC), Chinese GB2312-80. Tp k t Fixed_Width nhiu byte Tp k t nhiu byte c rng khng thay i c s dng ging nh tp k t nhiu byte ngoi tr l n c nh dng vi s bits khng thay i cho mt k t. V d cc tp k t : JA 16EUCFIXED, 16 bits Japanese, JA 16SJISFIXED, 16 bits Japanese. Tp k t Unicode Unicode l tp k t chun c s dng hin th tt c cc k t ca my tnh bao gm cc biu tng k thut v tp cc k t dng hin th, tp cc k t Unicode c th hin th cc k t di dng m khc nhau. V d: UCS2 c nh dng 2 bytes v c rng khng i, UTF8 l b m nhiu byte c rng thay i.
Khng th thay i li sau khi to Khng th thay i li sau khi to database database
Trang 257
Lu tr d liu theo cc kiu: CHAR, Lu tr d liu theo cc kiu: NCHAR, VARCHAR2, CLOB, LONG NVARCHAR2, NCLOB Lu tr tp d liu vi di thay i Lu tr tp d liu c di c nh v c thay i
m t mt i tng k t c di khng thay i s dng national character set, s dng kiu d liu NCHAR[size] m t mt i tng k t c di thay i m s dng national character set, s dng kiu NVARCHAR2[size]. m t mt i tng kiu CLOB cha cc k t nhiu byte d rng khng i s dng national character set, s dng kiu d liu NCLOB[size]. Cc hng dn Tp k t ca database v tp k t quc gia c th quan h rt gn gi, v d: cc khch hng ngi nht s chn tp k t JA!16EUC lm tp k t cho database v JA16EUCFIXED nh l tp k t cho quc gia. Tm kim trn cc chui k t vi kiu k t c rng khng i s nhanh hn so vi tp k t c rng thay i. Tp k t c rng thay i s s dng khng gian hiu qu hn.
Ngy bt u ca tun. Ch : Khi s dng cc tham s c trng cho tng vng lnh th nu gi tr c khong trng trong th cn t chng trong du ngoc kp. V d: The Netherlands
Tham s khi to NLS _LANGUAGE quyt nh gi tr mc nh cho cc tham s sau y: Tham s NLS_DATE_LANGUAGE NLS_SORT Din gii Thay i tng minh cc nh dng v thi gian, ngy thng Thay i trt t sp xp cc k t trong database
NLS_TERRITORY quyt nh gi tr mc nh cho cc tham s sau y: Tham s NLS_CURRENCY NLS_ISO_CURRENCY NLS_DATE_FORMAT NLS_NUMERIC_CHARACTERS Din gii Thay i tng minh cc k t biu din tin t K t biu din tin t ca quc gia theo chun ISO Ch r nh dng ngy thng Ch ra tng minh cc k t biu din trong s thp phn
NLS_NUMERIC_CHARACTERS NLS_CURRENCY NLS_ISO_CURRENCY NLS_CALENDAR Bin mi trng NLS_LANG S dng bin mi trng NLS_LANG chp ln gi tr NLS mc nh s dng cho user. Xc nh gi tr ca tham s NLS_LANG: NLS_LANG=<language>_<territory>.<charset> Vi: language territory charset V d: NLS_LANG=GERMAN_GERMAN.W8EISO8850P1 Tham s NLS_LANG quy nh tp k t cho client. Cc clients khc nhau c th s dng cc b m k t khc nhau. D liu truyn i t client ti server s c chuyn i t ng t tp k t s dng ti client sang tp k t s dng ti server. Vic chuyn i ny l trong sut i vi cc ng dng ti client. Cc bin mi trng m rng Cc tham s khi to NLS u c th khai bo di dng bin mi trng, chng quy nh cc c trng ngn ng s dng ti mi clients. Tham s NLS_CALENDAR c s dng chn h thng lch m Oracle s s dng. Mt s tham s c th ch nh di dng bin mi trng NLS_LIST_SEPARATOR, NLS_DISPLAY, NLS_CREDIT, NLS_DEBIT, NLS_MONETARY,NLS_CHAR. ti clients: NLS_LANG, tn ngn ng quc gia s dng (l gi tr ca tham s NLS_LANGUAGE). c trng vng lnh th (l gi tr ca tham s NLS_TERRITORY). b m k t s dng bi ng dng pha client.
Trang 260
3> FROM emp; ENAME TO_CHAR(SA ---------------SMITH 800,00 ALLEN 1.600,00 WARD 1.250,00 JONES 2.975,00 MARTIN 1.250,00 BLAKE 2.850,00 CLARK 2.450,00 SCOTT 3.000,00 KING 5.000,00 TURNER 1.500,00 ADAMS 1.100,00 JAMES 950,00 FORD 3.000,00 MILLER 1.300,00 14 rows selected. Cc hm SQL sau y s dng tham s NLS Tn hm TO_DATE TO_NUMBER Tham s NLS NLS_DATE_LANGUAGE NLS_CALENDAR NLS_NUMERIC_CHARACTERS NLS_CURRENCY NLS_ISO_CURRENCY NLS_DATE_LANGUAGE NLS_NUMERIC_CHARACTERS NLS_CURRENCY NLS_ISO_CURRENCY NLS_CALENDAR NLS_SORT
TO_CHAR
Mt s gi tr c s dng ging nh cc mt n (mask) nh dng trong cc hm nh TO_CHAR, TO_DATE, v TO_NUMBER. D cho du phn chm thp phn G du phn cch hng nghn L cho biu tng tin t C cho biu tng tin t theo chun ISO Mt n nh dng cho ngy thng: RM, rm nh dng thng theo kiu roman IW dnh dng tun theo chun ISO IYYY, IYY, IY, v I nh dng nm theo chun ISO
Trang 262
View sau y hin th cc thng tin v NLS khi to cho session: SVRMGR> SELECT * FROM nls_session_parameters; PARAMETER VALUE ------------------------ -----------------------------NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA NLS_CURRENCY $ NLS_ISO_CURRENCY AMERICA NLS_NUMERIC_CHARACTERS ., NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD-MON-YY NLS_DATE_LANGUAGE AMERICAN NLS_SORT BINARY 9 rows selected.
Gi tr NLS_SESSION_PARAMETERS Tham s (Cc tham s NLS ca tng phin) Gi tr Hin th cc tham s NLS s dng trong parameter file ti server SVRMGR> SELECT * FROM nls_instance_parameters; PARAMETER VALUE -------------------------- -----------------------------NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA NLS_SORT NLS_DATE_LANGUAGE NLS_DATE_FORMAT NLS_CURRENCY NLS_NUMERIC_CHARACTERS NLS_ISO_CURRENCY 8 rows selected. Hin th ni dung cc tham s mi trng ang s dng trong session SVRMGR> SELECT * FROM nls_session_parameters; PARAMETER VALUE ------------------------ -----------------------------NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA NLS_CURRENCY $ NLS_ISO_CURRENCY AMERICA NLS_NUMERIC_CHARACTERS ., NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD-MON-YY NLS_DATE_LANGUAGE AMERICAN NLS_SORT BINARY 9 rows selected. S dng cu lnh truy vn sau y ly thng tin v cc tham s khi to hp l: SVRMGR> SELECT * FROM v$nls_valid_values 2> WHERE parameter='LANGUAGE'; PARAMETER VALUE ---------------------LANGUAGE AMERICAN LANGUAGE GERMAN LANGUAGE FRENCH LANGUAGE CANADIAN FRENCH LANGUAGE SPANISH LANGUAGE ITALIAN LANGUAGE DUTCH LANGUAGE SWEDISH LANGUAGE NORWEGIAN LANGUAGE DANISH ...
Trang 264
Hin th gi tr hin thi ca gi tr NLS khi to SVRMGR> SELECT * FROM v$nls_parameters; PARAMETER VALUE ----------------------------------NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA NLS_CURRENCY $ NLS_ISO_CURRENCY AMERICA NLS_NUMERIC_CHARAC ., NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD-MON-YY NLS_DATE_LANGUAGE AMERICAN NLS_CHARACTERSET WE8ISO8859P1 NLS_SORT BINARY 10 rows selected.
Trang 265
PH LC
A TI LIU THAM KHO
[1] [2] [3] [4] [5] [6] [7] Gio trnh SQL v PL/SQL, Cng ty c phn ti ngn, 04/2001 Gio trnh kin trc v qun tr CSDL Oracle 8i, Cng ty c phn ti ngn, 04/2001 Oracle 8: Database Administration Personal Edition, Oracle Corp, 1998 Oracle Architecture and Administration, Oracle Corp - Bruce Ernst, Hanne Rue Rasmussen, Ulrike Schwinn, Vijay Venkatachalam, 1999 Database Management With Oracle Enterprise Manager, Oracle Corp, 04/2001 Oracle 9i new features summary, Oracle Corp, 04/2001 Website: www.oracle.com
B DANH MC CC HNH V
Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh Hnh v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. Kin trc Oracle Server................................................................................ 14 Cu trc Share Pool .................................................................................... 15 Database buffer cache................................................................................. 15 Redo log buffer........................................................................................... 16 Database Writer (DBWR) ............................................................................. 17 Log Writer (LGWT)...................................................................................... 18 Cu trc database....................................................................................... 19 Quan h gia database, tablespace v datafile .............................................. 21 Kt ni ti Oracle server .............................................................................. 25 Oracle Enterprise Manager......................................................................... 29 Oracle Enterprise Manager......................................................................... 31 Cng c to h tr database Oracle Database Assistant............................. 40 Phng thc xc nhn quyn..................................................................... 45 Khi to tham s....................................................................................... 47 File tham s v d ..................................................................................... 49 Cc bc khi ng v dng Instance ........................................................ 50 So snh cc ch tt database ................................................................ 52 So snh thi gian gia cc cch tt database .............................................. 53 Cc mc truy cp view h thng............................................................ 57 Dictionarytrong database ........................................................................... 60 Dictionary views........................................................................................ 61 Stored procedures v cc Packages chun................................................... 64 Packages trong c s d liu ..................................................................... 65 Kt hp s dng nhiu control file .............................................................. 72 Ni dung control file .................................................................................. 73 Nhm cc redo log .................................................................................... 78 T chc cc redo log files .......................................................................... 80 Lu tr d liu ch NOARCHIVING...................................................... 82 Lu tr d liu ch ARCHIVING .......................................................... 83 B sung online redo log groups .................................................................. 87 B sung online redo log members............................................................... 88 Ngng s dng Online redo log groups ....................................................... 89 Ngng s dng Online redo log members ................................................... 90 Cu trc database ..................................................................................... 92 Quan h gia tablespace v datafile ........................................................... 93 D liu ngi dng nn t trong tablespace ring ...................................... 94 Cc loi segments ................................................................................... 110 Cc loi segments (tip theo)................................................................... 111 Cc loi segments (tip theo)................................................................... 112 Trang 266
Trang 268