Tải bản đầy đủ (.pdf) (21 trang)

nhập môn hệ quản trị Cơ sở dữ liệu phần 6 pps

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.1 MB, 21 trang )

Nhp môn H qun tr c s d liu DB2

105

Kch bn trên cn thit khi làm vic vi c s d liu trên các nn tng khác nhau nh
Linux và Windows. Nu c hai máy ch u hot ng trên cùng mt nn tng, bn s,
dùng nhng lnh sao lu d phòng và khôi phc s, làm cho x lý d0 dàng hn và rõ
ràng hn. Nhng lnh sao lu và khôi phc s, c mô t chi tit hn trong chng
sau ca cun sách này.

Nhng ví d sau s, rút trích không gian bng và b trí vùng m d liu, cùng vi
nhng lnh DDL t* c s d liu SAMPLE, và lu tr chúng trong tp sample.ddl.
Chúng tôi khuyn khích bn chy lnh bên di và xem li tp kt qu xut (vn bn)
“sample.ddl”.



Lnh db2look có quá nhiu tùy ch&n không th mô t ht trong cun sách này; tuy nhiên
bn có th s dng c
-h
 ly c phn mô t tóm lc các tùy ch&n s)n có:

db2look -h

Công c db2look c.ng có th c g&i t* trung tâm iu khin nh biu di0n trong Hình
9.6


Nhp môn H qun tr c s d liu DB2

106



Trong Hình 9.6

ch&n c s d liu mà bn mun ly DDL, nhn chut phi lên nó, và
ch&n “Generate DDL”. Ca s Generate DDL xut hin, hin th mt s tùy ch&n rút
trích, th hin nh trong hình 9.7.


Nhp môn H qun tr c s d liu DB2

107
Bài tp nhanh #6 - Trích xut DDL t& c s d liu EXPRESS

Mc tiêu:

Khi bn sao lu mt c s d liu, mc tiêu ca bn là phi to li c s d liu bng
cách n gin và hp lý. Thông thng s dng kch bn SQL, nó có th c thc
hin sau khi DB2 c cài t. Trong bài t#p nhanh này, bn s, rút ra nhng nh ngh'a
i tng t* c s d liu EXPRESS (ã to trong bài t#p nhanh #3) s dng Trung
tâm iu khin.

Quy trình:

1. M Trung tâm iu khin.

2. Nhn chut phi vào c s d liu EXPRESS trên cây i tng và ch&n mc
Generate DDL. Vic này m ca s hp thoi Generate DDL.

3. Trong ca s Generate DDL, ch- rõ nhng tùy ch&n cho Generate DDL nh di
ây. Nu bn to ra thêm nhng i tng b sung trong môi trng ca bn

nh không gian bàng, b m , bn s, ch&n chúng  ây. Khi bn không to ra
bt k loi i tng nào, *ng ánh du vào hp kim. Thng kê c s d liu
không c thêm vào vì môi trng sn xut có kh nng cha mt t#p hp
thng kê khác hn môi trng phát trin. Tng t, nhng thông s cu hình s,
có kh nng khác i mt chút. Trong môi trng mà bn s hu, nu m&i th
cu hình chính xác theo cách nó c trin khai, bn có th ch&n thêm vào cái
tùy ch&n b sung.



4. Chuyn qua trang Object. Bn có th ch- nh ch&n nhng i tng mà bn
mun phát sinh ra DDL. Trong trng hp này, ch&n ngi dùng và gin + mà
bn dùng  to ra tt c các i tng ca bn và phát sinh ra DLL cho tt c
các i tng trong gin + này. Nhn nút Generate  bt u to DLL.
Nhp môn H qun tr c s d liu DB2

108




5. Xem li kt qu DDL. Kt qu ca bc thc hin trc là mt kch bn vi tt
c các câu lênh SQL cho các i tng c ch&n. Bn s, t chc các kch bn
này vào trong nhng nhóm hp lý.

6. To th mc C:\express trong t#p tin h thng và lu t#p tin phát sinh DDL vào
trong th mc này vi vi tên là schema.ddl, Nhn nút “Save”.




7. M tp c lu gn ây nht trong ca s nh#p lnh. (Gi ý: t* ca s nh#p
lnh, ch&n File -> Open)

8. Mc dù chúng tôi ch- thc s mun DDL ca các bng, bn s, thy các DDL cho
c nhng i tng khác na c.ng c sinh ra. Chuyn tt c nhng khai báo
CREATE TRIGGER ti mt tp mi riêng bit c g&i là triggers.ddl.
Th#m chí dù chúng tôi ch- to ra có mt b%y s kin c.ng  riêng ra, nó là mt
thói quen tt  phân bit các i tng theo kiu ca nó.

9. Bây gi chúng tôi c.ng khuyn cáo loi b":
Nhp môn H qun tr c s d liu DB2

109
• Các lnh c s d liu CONNECT TO.
• Các lnh DISCONNECT.

Bn phi có hai kch bn ti im này:
C:\express\schema.ddl DDL cho các bng, các cách hin th, các ch- mc
và các ràng buc.
C:\express\triggers.ddl DDL cho các b%y s kin

10. Chu n b kch bn cho s trin khai:
• Xóa nhng chú thích không cn thit (ví d: CONNECT TO…)
• Tách các hàm và các th tc vào nhng tp tin riêng (rt hu dng khi có
quá nhiu hàm và th tc). Bn c.ng có th nhóm chúng li theo chc
nng hay ng dng (ví d: stringfunc.ddl, billing.ddl,
math.ddl, , …)

11. Bn có th phi chú ý n nhng kí t c bit c dùng  gii hn kt thúc
các b%y, các hàm và các th tc (@). /iu ó là cn thit  t gii hn kt thúc

ca lnh CREATE <••i t••ng> khác vi kt thúc ca mt khai báo th tc
nm bên trong i tng.


Nhp môn H qun tr c s d liu DB2

110
10

Chng 10 – Bo mt c s d liu

Chng này bàn v s bo m#t c x lý nh th nào trong DB2. Hình 10.1 cung cp
mt cái nhìn tng quan c bn


Hình 10.1

– Tng quan v s bo mt trong DB2


Nh trong hình 10.1, s bo m#t DB2 có hai phn:

*$nh danh
Nó là mt tin trình qua ó kim tra tính hp l ca thông tin ng nh#p ca ngi dùng.
Tin trình nh danh c thc thi bi mt chng trình bo m#t bên ngoài DB2 (in
hình là bi mt h iu hành, mt phng thc nh danh ca mt mng nào ó, hoc
là mt phn mm nh danh c thit k theo yêu cu). Tin trình nh danh ca h
iu hành c xác l#p mc nh. Khi s dng tin trình nh danh ca h iu hành,
tên ngi dùng (userid) và m#t mã c chuyn ti c s d liu  máy ch (nh là
mt phn ca câu lnh kt ni). Sau ó, c s d liu  máy ch s, g&i tin trình nh

danh ca h iu hành  kim tra tính hp l ca tên ngi dùng và m#t mã.

Quyn hn
4 phn này, DB2 kim tra xem ngi dùng, ã qua nh danh  trên, có th thi hành
thao tác ngi ó yêu cu hay không. Thông tin v quyn hn c lu tr trong mt
danh mc DB2 và mt t#p tin cu hình DBM.

Ví d, trong hình 10.1, ngi dùng ‘bob’ kt ni vi c s d liu SAMPLE bng câu
lnh :

CONNECT TO sample USER bob USING pwd

C “bob” và “pwd” c chuyn ti h iu hành hoc mt chng trình nh danh bên
ngoài  kim tra xem tên ngi dùng “bob” ã c nh ngh'a cha và m#t mã ó có
Nhp môn H qun tr c s d liu DB2

111
c ni vi ngi dùng này hay không. Nu phn này thành công, h iu hành s, tr
li quyn kim soát bo m#t cho DB2. Tip theo, khi ngi dùng “bob” thi hành lnh sau:

SELECT * FROM mytable

By gi DB2 tip tc dùng quyn kim soát bo m#t  thi hành vic kim tra quyn hn
và xác nh#n ngi dùng “bob” có quyn SELECT trên bng “mytable” hay không. Nu
quyn ó không hp l, DB2 s, tr v mt thông báo li, ngc li câu lnh s, c
thc thi da trên bng “mytable”.
10.1 *$nh danh
Mc dù tin trình nh danh thc s c thc hin bi h iu hành (hoc mt chng
trình bo m#t khác bên ngoài), DB2 v%n quyt nh tng mà tin trình nh danh xy ra.


Tham s AUTHENTICATION trong DBM CFG, thit l#p  máy ch DB2, có mt dãy các
giá tr hp l. Ví d khi tham s c thit l#p là SERVER (giá tr mc nh), tin trình
nh danh s, c thc thi bi h iu hành hoc chng trình bo m#t bên ngoài 
trên máy ch.Tuy nhiên, nu AUTHENTICATION c thit l#p là CLIENT, tin trình
nh danh s, c thc thi bi h iu hành hoc chng trình bo m#t bên ngoài 
trên máy khách. Vn  này c minh h&a  hình 10.2


Hình 10.2 – Ni tin trình $nh danh xy ra


Tham s AUTHENTICATION có th c thit l#p bng mt trong nhng giá tr c
kit kê trong bng 10.1
Lnh Mô t
SERVER (mc nh)
tin trình nh danh di0n ra  máy ch

CLIENT
tin trình nh danh di0n ra  máy
khách
SERVER_ENCRYPT
tng t nh SERVER nhng tên
ca ngi dùng và m#t mã c mã
hóa
KERBEROS
tin trình nh danh di0n ra dùng c
ch bo m#t Kerberos
SQL_AUTHENTICATION_DATAENC
tin trình nh danh máy ch cng
thêm s kt ni phi dùng s mã hóa

Nhp môn H qun tr c s d liu DB2

112
d liu
SQL_AUTHENTICATION_DATAENC_CMP

ging nh  trên nhng s mã hóa
d liu ch- dùng khi có s)n
GSSPLUGIN
tin trình nh danh dùng c ch bo
m#t bên ngoài da trên GSS API
Bng 10.1

- Nhng giá tr$ tham s AUTHENTICATION hp l

10.2 Quyn hn
Quyn hn bao g+m các c quyn và quyn c lu tr trong nhng bng h thng
DB2 và c DB2 qun lý.

Mt c quyn cho phép ngi dùng thi hành mt loi thao tác n da trên c s d
liu nh là CREATE, UPDATE, DELETE, INSERT, ….

Mt quyn là mt hành ng c xác nh trc bao g+m nhiu c quyn. Hình 10.3
minh h&a các quyn và c quyn khác nhau trong DB2.
Nhp môn H qun tr c s d liu DB2

113


Hình 10.3


- Nhng quyn và c quyn


Bng 10.2 nêu ra nhng hàm khác nhau mà mi quyn có th thc hin. Nh bn thy
SYSADM có hu ht các quyn trong khi SYSMON có ít quyn nht.

Chc n ng SYSADM SYSCTRL SYSMAINT SYSMON DBADM LOAD
Cp nht DBM
CFG
Y
Cp phép/Hy b+
DBADM
Y


Thit lp/Thay
i SYSCTRL
Y


Thit lp/Thay
i SYSMAINT
Y


Thit lp/Thay
i SYSMON
Y



Buc ngi dùng
ra kh+i c s d
liu
Y

Y
Nhp môn H qun tr c s d liu DB2

114
To/B+ c s d
liu
Y

Y


Khôi phc thành
c s d liu
mi
Y

Y


Cp nht DB CFG Y

Y

Y



Sao lu c s d
liu/không gian
bng
Y

Y

Y


Khôi phc thành
c s d liu ã
tn ti
Y

Y

Y


Khôi phc tin Y

Y

Y


Bt u/kt thúc

mt th hin
Y

Y

Y


Phc hi không
gian bng
Y

Y

Y


Thc hin theo
vt
Y

Y

Y

Y
Ly hình nh
màn hình
Y


Y

Y


Truy vn trng
thái không gian
bng
Y

Y

Y


Lc bt tp tin
nht ký
Y

Y

Y


Quiesce không
gian bng
Y

Y


Y

Y Y
Np bng Y

Y Y
Thíêt lp/g/ b+
trng thái treo
Y

Y


To/hy b+ s
kin màn hình
Y

Y


Bng 10.2 – Các quyn và c quyn DB2

/ cp quyn SYSADM, SYSCTRL, hoc SYSMAINT cho mt nhóm, nhng tham s
SYSADM_GROUP, SYSCTRL_GROUP, hoc SYSMAINT_GROUP trong DBM CFG
phi c gán cho nhóm h iu hành

Ví d,  cp quyn SYSADM cho nhóm h iu hành ‘db2admns’, bn có th dùng câu
lnh này:

update dbm cfg using SYSADM_GROUP db2admns


Mi th hin DB2 có nhng nh ngh'a v nhóm quyn riêng.

Trên Windows, nhng tham s này c mc nh là rng, iu ó có ngh'a là nhóm
nhng ngi qun tr Windows là SYSADM. Trên Linux, nhóm nhng ngi s hu th
hin c mc nh là nhóm SYSADM.

10.3 Quyn qun tr$ c s d liu DBADM
DBADM (DataBase ADMinistrator) là ngi có quyn cao nht v qun tr c s d liu.
/ây không phi là quyn  cp  c th; do ó không c nêu ra trong phn trc.
/ gán quyn qun tr c s d liu DBADM, ta s dng lnh GRANT, thí d:

connect to sample
grant DBADM on database to user <userid>
Nhp môn H qun tr c s d liu DB2

115

Trong thí d trên, trc ht bn cn kt ni n c s d liu,  ây c s d liu có
tên là “sample”, và sau ó gán quyn DBADM cho ngi dùng. / có th gán quyn
qun tr c s d liu DBADM, bn phi là SYSADM.

Ghi chú: DBADM không có quyn to các không gian bng, cho dù nhng không gian
bng này là các i tng bên trong c s d liu. Nguyên nhân là vì mt không gian
bng có liên quan n các vùng cha d liu (containers) nh 'a và các vùng m (b
nh) ó là các tài nguyên v#t lý ca h thng.
10.4 Nhóm PUBLIC
DB2 nh ngh'a mt nhóm bên trong c g&i là PUBLIC. Bt c ngi dùng nào ã
c nh danh bi h iu hành hoc dch v chng thc mng u c ngm nh
là thành viên ca nhóm PUBLIC. Khi mt c s d liu c to ra, mt s quyn c

th s, c gán mt cách t ng cho nhóm PUBLIC:

• CONNECT,
• CREATETAB,
• IMPLICIT SCHEMA,
• BINDADD

/ thêm vào mc  bo m#t, chúng ta nên thu h+i, hy b" m&i nguyn t* nhóm
PUBLIC nh sau:

REVOKE CONNECT ON DATABASE FROM PUBLIC
REVOKE CREATETAB ON DATABASE FROM PUBLIC
REVOKE IMPLICIT_SCHEMA ON DATABASE FROM PUBLIC
REVOKE BINDADD ON DATABASE FROM PUBLIC
10.5 Lnh GRANT và REVOKE
Lnh GRANT và REVOKE là lnh SQL chu n, c dùng  gán hoc hy b" quyn
ca mt ngi dùng hoc mt nhóm. Sau ây là mt s ví d v các câu lnh này:
Gán quyn SELECT trên bng T1 cho ngi dùng USER1:

GRANT SELECT ON TABLE T1 TO USER user1

Gán tt c các quyn trên bng T1 cho nhóm GROUP1:

GRANT ALL ON TABLE T1 TO GROUP group1

Hy b" tt c các quyn trên bng T1 ca GROUP1:

REVOKE ALL ON TABLE T1 FROM GROUP group1

Gán quyn EXECUTE trên th tc p1 cho ngi dùng USER1:


GRANT EXECUTE ON PROCEDURE p1 TO USER user1

Hy b" quyn EXECUTE trên th tc p1 ca ngi dùng USER1:

REVOKE EXECUTE ON PROCEDURE p1 FROM USER user1
10.6 Kim tra vic cp quyn và quyn
Cách tt nht  kim tra vic cp quyn và kim tra quyn là thông qua trung tâm iu
Nhp môn H qun tr c s d liu DB2

116
khin.

Hình 10.4 mô t cách m hp thoi Table Privileges cho bng EMPLOYEE t* trung tâm
iu khin.


Hình 10.4 – M hp thoi Privileges

Trong hình 10.4, bn ch&n bng mong mun, nhp phi chut vào bng này và ch&n
Privileges. Mt khi c ch&n, hp thoi Privileges hin th nh hình 10.5. Hình này có
mô t các trng và các thành phn ca hp thoi.

Hình 10.5 – Hp thoi Privileges

Nhp môn H qun tr c s d liu DB2

117
Mt cách khác, bn có th truy vn các th hin danh mc DB2 SYSCAT là ni cha
các thông tin v vic cp quyn. Ví d, nu bn mun bit ngi dùng DB2ADMIN có

quyn SELECT trên bng T2 hay không, và mun bit ai ã gán quyn này, bn có th
thc hin câu truy vn nh sau:

SELECT grantor, grantee, selectauth
FROM syscat.tabauth
WHERE tabname = 'T2'

GRANTOR GRANTEE SELECTAUTH

ARFCHONG DB2ADMIN Y

Trong thí d trên, ngi dùng ARFCHONG ã gán quyn SELECT cho ngi dùng
DB2ADMIN.
10.7 Xem xét quyn trên nhóm
/ vic qun tr DB2 d0 dàng hn, ta nên t nhng ngi dùng vào các nhóm và gán
các quyn cn thit cho các nhóm này.

Khi mt nhóm c gán quyn, các thành viên ca nhóm s, c gán các quyn ngm
nh c k th*a vi t cách thành viên nhóm.

Khi mt ngi dùng b xóa kh"i nhóm, ngi này s, mt các quyn ngm nh ca
nhóm, nhng v%n còn gi các quyn c gán tng minh. Nói mt cách khác các
quyn c cp mt cách tng minh phi c hy b" mt cách tng minh.

Nhp môn H qun tr c s d liu DB2

118
Bài tp nhanh # 7: Cho phép và hy b+ (phân quyn) quyn ngi s dng.

Mc tiêu:


Cho n lúc này, bn ã s dng mt tài khon ca ngi qun tr cho vic s dng các
lnh vi c s d liu.Tài khon này có th truy nh#p ti m&i tin ích, d liu và nhng
i tng c s d liu y . Bi v#y, iu quan tr&ng là cn bo v tài khon này 
tránh s nhng s c hay mt mát d liu có ch tâm. Trong a s nhng trng hp,
bn s, mun to ra nhng tài khon ngi dùng khác hoc nhng nhóm vi mt thit
l#p quyn hn ch hn.Trong bài t#p này, bn s, to ra mt tài khon ngi s dng
mi, r+i gán nó nhng c quyn xác nh.

Th tc:

1.M ca s Windows Computer Management bng cách kích chut phi vào biu
tng My Computer trên máy tính, và ch&n Manage.

2. Ch&n mc Local Users and Group  nhóm System Tools nm bên trái ca ca s
Computer Management, nhn chut phi lên User và ch&n mc New User.

3. Trong ca s New User , nh#p các thông tin sau ây: trong mc User name nh#p
“customer” và trong mc Full name nh#p “Customer1”. Trong trng Description nh#p
“A typical book store customer”. Trong trng Password và Confirm password nh#p
“ibmdb2”. B" du ánh  mc “ngi dùng cn i m#t mã  ln ng nh#p sau” (User
must change password on next logon) và nhn nút Create  to ngi dùng mi






















4. Ch&n ch  cao cp (Advanced) bng cách ch&n mc Customize Control Center
trên thc n Control Center Tool, ch&n tip tùy ch&n Advanced và nhn OK. Bo m
khung nhìn làm vic hin ti  ch  Advanced.

5. M rng cây i tng ca Trung tâm iu khin  bên trái ca s, ch&n All
Database -> EXPRESS -> Tables.

Nhp môn H qun tr c s d liu DB2

119
6. Phân nhng quyn cn có cho ngi dùng v*a mi to ra: T* danh sách các bng
trong c s d liu EXPRESS, nhn chut phi lên bng CUSTOMERS và ch&n mc
Privileges  hin th ca s hi thoi “Table Privileges”

7. Kích vào nút Add User và ch&n ngi dùng “customer” v*a mi to ra  bc 3. Kích
vào nút OK  óng hp thoi Add User.


8. Bn chú ý rng ngi dùng “customer” ã c thêm vào danh sách ngi dùng,
nhng cha c gán thêm các quyn. / cp quyn cho ngi dùng này, ch&n Yes
trong hp thoi kéo xung ca tt c các phn SELECT, INSERT, UPDATE và DELETE.
Mt ngi dùng Internet cn phi có kh nng thc hin add/update/delete d liu tài
khon ca h&. Chúng ta không cp cho ngi s dng nhng quyn khác bi vì không
cn thit i vi h&. Nhn nút Ok  óng ca s hp thoi Table Privileges và chp
nh#n nhng thay i v*a làm.






























9. Lp li t*ng bc t* 7-9 cho bng BOOKS và bng SALES. /i vi bng BOOKS,
ch- cung cp quyn SELECT bi vì ngi dùng “customer” không nên có kh nng 
iu ch-nh và phc h+i d liu trong kho. /i vi bng SALES, ch- cho quyn SELECT
và INSERT. Ngi dùng không nên có quyn DELETE hoc UPDATE bi vì ch- nhng
nhân viên mi cn phi có s truy nh#p  sa i nhng giao dch bán hàng.

10. Th kt ni n c s d liu bng tài khon ca ngi dùng “customer” ã to 
trên. Th  SELECT vi bng khách hàng. /iu gì xy ra? Th DELETE hay UPDATE
d liu trong bng SALES. /iu gì xy ra?

Trong bài tp nhanh này, chúng ta ch to mt ngi dùng là “customer”, tuy nhiên, ng dng ca
bn có th cha ng nhiu kiu ngi dùng khác. Th nghim to ra nhng ngi dùng khác và

Nhp môn H qun tr c s d liu DB2

120
gán cho nó nhng c quyn. Bn cng có th to ra nhng nhóm ca các ngi dùng và phân
quyn cho các nhóm ó, hn là làm vi mi ngi dùng riêng l.
Nhp môn H qun tr c s d liu DB2

121
11
Chng 11 – Sao lu và khôi phc


Trong chng này chúng ta tho lu#n v nh#t ký c s d liu DB2, làm th nào  sao
lu toàn b hay mt phn c s d liu s dng công c BACKUP và làm th nào 
khôi phc d liu s dng công c RESTORE.
11.1 Nht ký c s d liu
Nu bn ang làm vic vi mt trình son tho vn bn, mi ln bn mun lu tài liu
phi nhn vào nút SAVE. Trong c s d liu, câu lnh COMMIT s, làm iu ó. Mi ln
câu lnh COMMIT c thc hin thì m&i thay i to thành d liu và c lu trong
nh#t ký c s d liu.

Tng t, khi bn làm vic vi mt tài liu vn bn, ôi khi bn thy  di góc phi
màn hình có mt thông ip ngn “auto-saving”. Trong c s d liu, iu này c
thc hin bi lnh UPDATE, INSERT và DELETE.

4 phn trên ta ã  c#p n nh#t ký c s d liu. Nh#t ký c s d liu c lu tr
trên 'a cng và c dùng ghi li nhng hành ng ca nhng giao dch. Nu h
thng hay c s d liu b h hi, chúng c dùng nó  ly li nhng giao dch ã
c gi i trong sut quá trình khôi phc d liu.

Hình 11.1 minh h&a lu+ng x lý khi làm vic vi c s d liu trong nhng m%u nh#t ký













Hình 11.1 - Nht ký c s d liu

Trong hình 11.1 ta thy không gian bng (tablespace) và nh#t ký (logs), chúng u c
lu tr trên 'a cng, mc dù ta  xut rng chúng không lu tr trên cùng 'a cng.
Ví d, khi câu lnh UPDATE c thc hin, nhng trang cho nhng dòng trong câu
lnh s, c lu trong vùng m d liu (b nh). Nhng thay i, c#p nh#t s, c
th hin trong vùng m d liu, nhng giá tr c. và mi s, c lu tr trong nhng
t#p tin nh#t ký c s d liu, ôi khi tc thi, ôi khi mt vùng m nh#t ký y. Nu câu
lnh COMMIT c thi hành sau câu lnh UPDATE thì nhng giá tr c. và mi s, c
Nhp môn H qun tr c s d liu DB2

122
ct trong nhng t#p tin nh#t ký ngay l#p tc. X lý này c.ng c lp li tng t cho
câu lnh SQL khác truy xut n c s d liu. Khi iu kin c c th th"a mãn, nh
là vic t n ng(ng ca s thay i trong tham s CHNGPGS_THRES thì nhng
trang trong vùng m d liu s, c “chi tit hóa” hay ghi lên thành không gian bng
trên 'a cng. Tham s CHNGPGS_THRES ch- nh t- l phn trm ca vùng m d
liu vi nhng trang “dirty” ó là nhng trang cha nhng thay i.

V khía cnh hiu nng, ta không có cm giác thc hin 2 ln ghi cho mi lnh
COMMIT: Mt là ghi n nh#t ký c s d liu và mt ghi n không gian bng trên 'a
cng, ó là lý do ti sao “s chi tit hóa” ca d liu n không gian bng trên 'a cng
ch- xy ra khi tham s “chngpgs_thres” t ng(ng.
11.2 Các kiu nht ký
Có hai kiu nh#t ký:

Nht ký s cp:

/c cp phát s)n và s nh#t ký s cp s)n sàng c xác nh bi tham bin db cfg

LOGPRIMARY

Nht ký th cp:

Phn nh#t ký th cp này c DB2cp phát ng khi cn. S nh#t ký th cp c
gán giá tr bi tham bin db cfg LOGSECOND. Vic cp phát ng mt nh#t ký s, gây ra
s lãng phí vì v#y nh#t ký th cp s, c xóa khi tt c kt ni n c s d liu ã b
ngt
11.3 Các kiu ghi nht ký
Có hai kiu ghi nh#t ký: Ghi tun t quay vòng (mc nh) và ghi lu tr
11.3.1 Ghi tun t quay vòng

Hình 11.2 mô t lu+ng x lý khi ghi tun t quay vòng













Hình 11.2 - X" lý nht ký s cp và th cp


Trong hình 11.2 có 3 nh#t ký s cp, vì v#y chúng ta gán LOGPRIMARY bng 3. / cho

n gin trong ví d này ch- có 1 giao dch. Khi giao dch c thc hin không gian s
dng bt u ghi vào t#p tin nh#t ký P1 và tip theo sau là P2. Nu có mt lnh COMMIT
c thc hin và thông tin sau ó c xut n không gian bng trên 'a cng, sau
ó P1 và P2 có th c ghi è d liu khác vì thông tin c. không cn thit na. Nu,
mt khác, giao dch ã s dng P1, P2, P3 và v%n cn nhiu không gian nh#t ký hn
na bi vì giao dch cha c COMMIT, thì mt nh#t ký th cp c cp phát (S1
trên hình v,) mt cách t ng. Nu giao dch v%n còn tip tc, nhiu nh#t ký th cp
c cp phát cho n khi s nh#t ký th cp c cp phát t ng(ng ti a
Nhp môn H qun tr c s d liu DB2

123
LOGSECOND. Nu v%n cha , mt thông ip li ch- ra iu kin ht kh nng cp
phát nh#t ký và giao dch s, c quay lui (h+i x).
11.3.2 Nht ký lu tr
Nh#t lu tr c.ng c bit n nh là ghi gi li, nhng t#p tin nh#t ký không b ghi è
nhng chúng c lu tr trc tuyn hay ngoi tuyn. Nhng nh#t ký lu tr trc tuyn
c lu tr vi nhng nh#t ký ng cn cho khôi phc khi h thng b s c. Nhng
nh#t ký lu tr ngoi tuyn c lu trong bng t* và có th làm vic vi th tc
USEREXIT. / có th ghi nh#t ký lu tr cn gán tham s db cfg LOGRETAIN là YES.

Cách ghi lu tr thng c dùng trong nhng h thng sn ph m. Nhng nh#t ký
c lu tr cho phép khôi phc c s d liu sm nht có th bi nhng t#p tin nh#t
ký c. nht trong hu ht các tình hung. Vi cách ghi lu tr ngi qun tr c s d
liu có th khôi phc nhng li gây ra bi con ngi. Mt ví d c th là khi mt ngi
trong h thng bt u thc hin mt giao tác không úng kéo dài hàng ngày, khi vn 
c phát hin thì ngi qun tr c s d liu s, khôi phc li h thng c. vào thi
im trc khi vn  c xy ra. Tuy nhiên, v%n còn có mt s thao tác bt buc phi
làm bng tay  m bo vic khôi phc c chính xác.

Cách ghi l tr là cn thit i vi quá trình khôi phc li và khôi phc trc tuyn.

Hình 11.3 mô t lu+ng x lý ca ghi lu tr
















Hình 11.3 - Ghi lu tr
11.4 Nht ký c s d liu t& Trung tâm iu khin
Bn có th cu hình nh#t ký c s d liu t* trung tâm iu khin bng cách nhn chut
phi trên c s d liu và ch&n “Configure Database Logging”
Nhp môn H qun tr c s d liu DB2

124
Hình 11.4 - Nht ký c s d liu t& Trung tâm iu khin


Hình 11.5 th hin màn hình thit l#p cu hình nh#t ký c s d liu, ti ây ta có th
ch&n kiu ghi nh#t ký quay vòng (circular) hoc ghi lu tr
Hình 11.5 - Ghi nht ký c s d liu theo hng d%n t&ng bc

11.5 Các tham s ca nht ký
Có nhng tham s DB CFG liên quan n vic to bn ghi nh#t ký. Bng 11.1 lit kê
danh sách các tham s chính.
Nhp môn H qun tr c s d liu DB2

125
Bng 11.1- Các tham s nht ký

11.6 Sao lu c s d liu
Lnh sao lu d liu DB2 cho phép bn to mt bn sao chép c s d liu lúc lnh
c thc thi. Cú pháp n gin nht bn có th s dng  chy lnh này là:

BACKUP DATABASE <dbname> [ TO <path> ]

Hu ht các lnh và công c có th c thc hin trc tuyn hay ngoi tuyn. Trc
tuyn ngh'a là  ngi s dng khác có th c kt ni và thc hin các thao tác trên
c s d liu trong khi bn thc thi lnh ca mình. Ngoi tuyn là không ngi nào
c kt ni n c s d liu trong khi bn thc hin thao tác. / cho phép mt thao
tác trc tuyn, thêm t* khóa ONLINE vào cú pháp lnh, nu không thì ngm nh bn s,
làm vic trong ch  ngoi tuyn.

Ví d, nu mun sao lu c s d liu sample n ng d%n C:\BACKUPS bn có th
a ra lnh này t* trình n lnh DB2 ca Window/Linux:
Tham s Mô t
logbufsz
Lng b nh c s dng nh mt b m cho các bn ghi
nh#t ký trc khi ghi chúng vào 'a.
logfilsz Kích thc ca mi nh#t ký ã cu hình, có dung lng 4KB
logprimary S bn nh#t ký chính vi kích thc logfilsz s, c to
logsecond

S tp nh#t ký ph c to và s dng cho vic khôi phc nu
cn thit
logpath/newlogpath

V trí các nh#t ký hot ng hoc lu tr tng lai c t.
mirrologpath
/ bo v các nh#t ký trên ng d%n chính kh"i s c h"ng 'a
hay vô tình xóa, bn có th ch- nh mt thit l#p +ng nht cho
các nh#t ký c lu gi trên mt ng d%n ph (nh ca ng
d%n nh#t ký chính)
loghead Tên tp nh#t ký hot ng hin hành
userexit Cho phép chng trình userexit sao chép nh#t ký ngoi tuyn
softmax Gii hn s mt mát ca vic khi phc h"ng
logretain Cho phép ch  ghi nh#t ký lu tr
overflowlogpath
Tng t tùy ch&n OVERFLOW LOG PATH ca lnh
ROLLFORWARD; tuy nhiên,thay vì ch- nh tùy ch&n OVERFLOW
LOG PATH cho mi lnh ROLLFORDWARD c a ra, bn có
th thit l#p tham s cu hình này mt ln
blk_log_dsk_ful
Thit l#p tránh vic tràn 'a phát sinh khi DB2 không th to ra mt
tp nh#t ký mi trong ng d%n nh#t ký ang hot ng. Thay vì
ó, DB2 s, c gng to ra tp nh#t ký mi nm phút n khi nó
thành công. Khi không còn tr ngi, SQL ch &c có th tip tc.
maxlog Phn trm s nh#t ký hot ng ti a cách nhau qua giao dch
num_log_span S tp nh#t ký hot ng cho mt UOW kích h&at

×