Nhp môn H qun tr c s d liu DB2
105
Kch bn trên cn thit khi làm vic vi c s d liu trên các nn tng khác nhau nh
Linux và Windows. Nu c hai máy ch u hot ng trên cùng mt nn tng, bn s,
dùng nhng lnh sao lu d phòng và khôi phc s, làm cho x lý d0 dàng hn và rõ
ràng hn. Nhng lnh sao lu và khôi phc s, c mô t chi tit hn trong chng
sau ca cun sách này.
Nhng ví d sau s, rút trích không gian bng và b trí vùng m d liu, cùng vi
nhng lnh DDL t* c s d liu SAMPLE, và lu tr chúng trong tp sample.ddl.
Chúng tôi khuyn khích bn chy lnh bên di và xem li tp kt qu xut (vn bn)
“sample.ddl”.
Lnh db2look có quá nhiu tùy ch&n không th mô t ht trong cun sách này; tuy nhiên
bn có th s dng c
-h
ly c phn mô t tóm lc 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 iu khin nh biu di0n trong Hình
9.6
Nhp môn H qun tr c s d liu DB2
106
Trong Hình 9.6
ch&n c s d liu mà bn mun ly DDL, nhn chut phi lên nó, và
ch&n “Generate DDL”. Ca s Generate DDL xut hin, hin th mt s tùy ch&n rút
trích, th hin nh trong hình 9.7.
Nhp môn H qun tr c s d liu DB2
107
Bài tp nhanh #6 - Trích xut DDL t& c s d liu EXPRESS
Mc tiêu:
Khi bn sao lu mt c s d liu, mc tiêu ca bn là phi to li c s d liu bng
cách n gin và hp lý. Thông thng s dng kch bn SQL, nó có th c thc
hin sau khi DB2 c cài t. Trong bài t#p nhanh này, bn s, rút ra nhng nh ngh'a
i tng t* c s d liu EXPRESS (ã to trong bài t#p nhanh #3) s dng Trung
tâm iu khin.
Quy trình:
1. M Trung tâm iu khin.
2. Nhn chut phi vào c s d liu EXPRESS trên cây i tng và ch&n mc
Generate DDL. Vic này m ca s hp thoi Generate DDL.
3. Trong ca s Generate DDL, ch- rõ nhng tùy ch&n cho Generate DDL nh di
ây. Nu bn to ra thêm nhng i tng b sung trong môi trng ca bn
nh không gian bàng, b m , bn s, ch&n chúng ây. Khi bn không to ra
bt k loi i tng nào, *ng ánh du vào hp kim. Thng kê c s d liu
không c thêm vào vì môi trng sn xut có kh nng cha mt t#p hp
thng kê khác hn môi trng phát trin. Tng t, nhng thông s cu hình s,
có kh nng khác i mt chút. Trong môi trng mà bn s hu, nu m&i th
cu hình chính xác theo cách nó c trin khai, bn có th ch&n thêm vào cái
tùy ch&n b sung.
4. Chuyn qua trang Object. Bn có th ch- nh ch&n nhng i tng mà bn
mun phát sinh ra DDL. Trong trng hp này, ch&n ngi dùng và gin + mà
bn dùng to ra tt c các i tng ca bn và phát sinh ra DLL cho tt c
các i tng trong gin + này. Nhn nút Generate bt u to DLL.
Nhp môn H qun tr c s d liu DB2
108
5. Xem li kt qu DDL. Kt qu ca bc thc hin trc là mt kch bn vi tt
c các câu lênh SQL cho các i tng c ch&n. Bn s, t chc các kch bn
này vào trong nhng nhóm hp lý.
6. To th mc C:\express trong t#p tin h thng và lu t#p tin phát sinh DDL vào
trong th mc này vi vi tên là schema.ddl, Nhn nút “Save”.
7. M tp c lu gn ây nht trong ca s nh#p lnh. (Gi ý: t* ca s nh#p
lnh, ch&n File -> Open)
8. Mc dù chúng tôi ch- thc s mun DDL ca các bng, bn s, thy các DDL cho
c nhng i tng khác na c.ng c sinh ra. Chuyn tt c nhng khai báo
CREATE TRIGGER ti mt tp mi riêng bit c g&i là triggers.ddl.
Th#m chí dù chúng tôi ch- to ra có mt b%y s kin c.ng riêng ra, nó là mt
thói quen tt phân bit các i tng theo kiu ca nó.
9. Bây gi chúng tôi c.ng khuyn cáo loi b":
Nhp môn H qun tr c s d liu DB2
109
• Các lnh c s d liu CONNECT TO.
• Các lnh DISCONNECT.
Bn phi có hai kch bn ti im này:
C:\express\schema.ddl DDL cho các bng, các cách hin th, các ch- mc
và các ràng buc.
C:\express\triggers.ddl DDL cho các b%y s kin
10. Chu n b kch bn cho s trin khai:
• Xóa nhng chú thích không cn thit (ví d: CONNECT TO…)
• Tách các hàm và các th tc vào nhng tp tin riêng (rt hu dng khi có
quá nhiu hàm và th tc). Bn c.ng có th nhóm chúng li theo chc
nng hay ng dng (ví d: stringfunc.ddl, billing.ddl,
math.ddl, , …)
11. Bn có th phi chú ý n nhng kí t c bit c dùng gii hn kt thúc
các b%y, các hàm và các th tc (@). /iu ó là cn thit t gii hn kt thúc
ca lnh CREATE <••i t••ng> khác vi kt thúc ca mt khai báo th tc
nm bên trong i tng.
Nhp môn H qun tr c s d liu DB2
110
10
Chng 10 – Bo mt c s d liu
Chng này bàn v s bo m#t c x lý nh th nào trong DB2. Hình 10.1 cung cp
mt cái nhìn tng quan c bn
Hình 10.1
– Tng quan v s bo mt trong DB2
Nh trong hình 10.1, s bo m#t DB2 có hai phn:
*$nh danh
Nó là mt tin trình qua ó kim tra tính hp l ca thông tin ng nh#p ca ngi dùng.
Tin trình nh danh c thc thi bi mt chng trình bo m#t bên ngoài DB2 (in
hình là bi mt h iu hành, mt phng thc nh danh ca mt mng nào ó, hoc
là mt phn mm nh danh c thit k theo yêu cu). Tin trình nh danh ca h
iu hành c xác l#p mc nh. Khi s dng tin trình nh danh ca h iu hành,
tên ngi dùng (userid) và m#t mã c chuyn ti c s d liu máy ch (nh là
mt phn ca câu lnh kt ni). Sau ó, c s d liu máy ch s, g&i tin trình nh
danh ca h iu hành kim tra tính hp l ca tên ngi dùng và m#t mã.
Quyn hn
4 phn này, DB2 kim tra xem ngi dùng, ã qua nh danh trên, có th thi hành
thao tác ngi ó yêu cu hay không. Thông tin v quyn hn c lu tr trong mt
danh mc DB2 và mt t#p tin cu hình DBM.
Ví d, trong hình 10.1, ngi dùng ‘bob’ kt ni vi c s d liu SAMPLE bng câu
lnh :
CONNECT TO sample USER bob USING pwd
C “bob” và “pwd” c chuyn ti h iu hành hoc mt chng trình nh danh bên
ngoài kim tra xem tên ngi dùng “bob” ã c nh ngh'a cha và m#t mã ó có
Nhp môn H qun tr c s d liu DB2
111
c ni vi ngi dùng này hay không. Nu phn này thành công, h iu hành s, tr
li quyn kim soát bo m#t cho DB2. Tip theo, khi ngi dùng “bob” thi hành lnh sau:
SELECT * FROM mytable
By gi DB2 tip tc dùng quyn kim soát bo m#t thi hành vic kim tra quyn hn
và xác nh#n ngi dùng “bob” có quyn SELECT trên bng “mytable” hay không. Nu
quyn ó không hp l, DB2 s, tr v mt thông báo li, ngc li câu lnh s, c
thc thi da trên bng “mytable”.
10.1 *$nh danh
Mc dù tin trình nh danh thc s c thc hin bi h iu hành (hoc mt chng
trình bo m#t khác bên ngoài), DB2 v%n quyt nh tng mà tin trình nh danh xy ra.
Tham s AUTHENTICATION trong DBM CFG, thit l#p máy ch DB2, có mt dãy các
giá tr hp l. Ví d khi tham s c thit l#p là SERVER (giá tr mc nh), tin trình
nh danh s, c thc thi bi h iu hành hoc chng trình bo m#t bên ngoài
trên máy ch.Tuy nhiên, nu AUTHENTICATION c thit l#p là CLIENT, tin trình
nh danh s, c thc thi bi h iu hành hoc chng trình bo m#t bên ngoài
trên máy khách. Vn này c minh h&a hình 10.2
Hình 10.2 – Ni tin trình $nh danh xy ra
Tham s AUTHENTICATION có th c thit l#p bng mt trong nhng giá tr c
kit kê trong bng 10.1
Lnh Mô t
SERVER (mc nh)
tin trình nh danh di0n ra máy ch
CLIENT
tin trình nh danh di0n ra máy
khách
SERVER_ENCRYPT
tng t nh SERVER nhng tên
ca ngi dùng và m#t mã c mã
hóa
KERBEROS
tin trình nh danh di0n ra dùng c
ch bo m#t Kerberos
SQL_AUTHENTICATION_DATAENC
tin trình nh danh máy ch cng
thêm s kt ni phi dùng s mã hóa
Nhp môn H qun tr c s d liu DB2
112
d liu
SQL_AUTHENTICATION_DATAENC_CMP
ging nh trên nhng s mã hóa
d liu ch- dùng khi có s)n
GSSPLUGIN
tin trình nh danh dùng c ch bo
m#t bên ngoài da trên GSS API
Bng 10.1
- Nhng giá tr$ tham s AUTHENTICATION hp l
10.2 Quyn hn
Quyn hn bao g+m các c quyn và quyn c lu tr trong nhng bng h thng
DB2 và c DB2 qun lý.
Mt c quyn cho phép ngi dùng thi hành mt loi thao tác n da trên c s d
liu nh là CREATE, UPDATE, DELETE, INSERT, ….
Mt quyn là mt hành ng c xác nh trc bao g+m nhiu c quyn. Hình 10.3
minh h&a các quyn và c quyn khác nhau trong DB2.
Nhp môn H qun tr c s d liu DB2
113
Hình 10.3
- Nhng quyn và c quyn
Bng 10.2 nêu ra nhng hàm khác nhau mà mi quyn có th thc hin. Nh bn thy
SYSADM có hu ht các quyn trong khi SYSMON có ít quyn nht.
Chc n ng SYSADM SYSCTRL SYSMAINT SYSMON DBADM LOAD
Cp nht DBM
CFG
Y
Cp phép/Hy b+
DBADM
Y
Thit lp/Thay
i SYSCTRL
Y
Thit lp/Thay
i SYSMAINT
Y
Thit lp/Thay
i SYSMON
Y
Buc ngi dùng
ra kh+i c s d
liu
Y
Y
Nhp môn H qun tr c s d liu DB2
114
To/B+ c s d
liu
Y
Y
Khôi phc thành
c s d liu
mi
Y
Y
Cp nht DB CFG Y
Y
Y
Sao lu c s d
liu/không gian
bng
Y
Y
Y
Khôi phc thành
c s d liu ã
tn ti
Y
Y
Y
Khôi phc tin Y
Y
Y
Bt u/kt thúc
mt th hin
Y
Y
Y
Phc hi không
gian bng
Y
Y
Y
Thc hin theo
vt
Y
Y
Y
Y
Ly hình nh
màn hình
Y
Y
Y
Truy vn trng
thái không gian
bng
Y
Y
Y
Lc bt tp tin
nht ký
Y
Y
Y
Quiesce không
gian bng
Y
Y
Y
Y Y
Np bng Y
Y Y
Thíêt lp/g/ b+
trng thái treo
Y
Y
To/hy b+ s
kin màn hình
Y
Y
Bng 10.2 – Các quyn và c quyn DB2
/ cp quyn SYSADM, SYSCTRL, hoc SYSMAINT cho mt nhóm, nhng tham s
SYSADM_GROUP, SYSCTRL_GROUP, hoc SYSMAINT_GROUP trong DBM CFG
phi c gán cho nhóm h iu hành
Ví d, cp quyn SYSADM cho nhóm h iu hành ‘db2admns’, bn có th dùng câu
lnh này:
update dbm cfg using SYSADM_GROUP db2admns
Mi th hin DB2 có nhng nh ngh'a v nhóm quyn riêng.
Trên Windows, nhng tham s này c mc nh là rng, iu ó có ngh'a là nhóm
nhng ngi qun tr Windows là SYSADM. Trên Linux, nhóm nhng ngi s hu th
hin c mc nh là nhóm SYSADM.
10.3 Quyn qun tr$ c s d liu DBADM
DBADM (DataBase ADMinistrator) là ngi có quyn cao nht v qun tr c s d liu.
/ây không phi là quyn cp c th; do ó không c nêu ra trong phn trc.
/ gán quyn qun tr c s d liu DBADM, ta s dng lnh GRANT, thí d:
connect to sample
grant DBADM on database to user <userid>
Nhp môn H qun tr c s d liu DB2
115
Trong thí d trên, trc ht bn cn kt ni n c s d liu, ây c s d liu có
tên là “sample”, và sau ó gán quyn DBADM cho ngi dùng. / có th gán quyn
qun tr c s d liu DBADM, bn phi là SYSADM.
Ghi chú: DBADM không có quyn to các không gian bng, cho dù nhng không gian
bng này là các i tng bên trong c s d liu. Nguyên nhân là vì mt không gian
bng có liên quan n các vùng cha d liu (containers) nh 'a và các vùng m (b
nh) ó là các tài nguyên v#t lý ca h thng.
10.4 Nhóm PUBLIC
DB2 nh ngh'a mt nhóm bên trong c g&i là PUBLIC. Bt c ngi dùng nào ã
c nh danh bi h iu hành hoc dch v chng thc mng u c ngm nh
là thành viên ca nhóm PUBLIC. Khi mt c s d liu c to ra, mt s quyn c
th s, c gán mt cách t ng cho nhóm PUBLIC:
• CONNECT,
• CREATETAB,
• IMPLICIT SCHEMA,
• BINDADD
/ thêm vào mc bo m#t, chúng ta nên thu h+i, hy b" m&i nguyn 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 Lnh GRANT và REVOKE
Lnh GRANT và REVOKE là lnh SQL chu n, c dùng gán hoc hy b" quyn
ca mt ngi dùng hoc mt nhóm. Sau ây là mt s ví d v các câu lnh này:
Gán quyn SELECT trên bng T1 cho ngi dùng USER1:
GRANT SELECT ON TABLE T1 TO USER user1
Gán tt c các quyn trên bng T1 cho nhóm GROUP1:
GRANT ALL ON TABLE T1 TO GROUP group1
Hy b" tt c các quyn trên bng T1 ca GROUP1:
REVOKE ALL ON TABLE T1 FROM GROUP group1
Gán quyn EXECUTE trên th tc p1 cho ngi dùng USER1:
GRANT EXECUTE ON PROCEDURE p1 TO USER user1
Hy b" quyn EXECUTE trên th tc p1 ca ngi dùng USER1:
REVOKE EXECUTE ON PROCEDURE p1 FROM USER user1
10.6 Kim tra vic cp quyn và quyn
Cách tt nht kim tra vic cp quyn và kim tra quyn là thông qua trung tâm iu
Nhp môn H qun tr c s d liu DB2
116
khin.
Hình 10.4 mô t cách m hp thoi Table Privileges cho bng EMPLOYEE t* trung tâm
iu khin.
Hình 10.4 – M hp thoi Privileges
Trong hình 10.4, bn ch&n bng mong mun, nhp phi chut vào bng này và ch&n
Privileges. Mt khi c ch&n, hp thoi Privileges hin th nh hình 10.5. Hình này có
mô t các trng và các thành phn ca hp thoi.
Hình 10.5 – Hp thoi Privileges
Nhp môn H qun tr c s d liu DB2
117
Mt cách khác, bn có th truy vn các th hin danh mc DB2 SYSCAT là ni cha
các thông tin v vic cp quyn. Ví d, nu bn mun bit ngi dùng DB2ADMIN có
quyn SELECT trên bng T2 hay không, và mun bit ai ã gán quyn này, bn có th
thc hin câu truy vn nh sau:
SELECT grantor, grantee, selectauth
FROM syscat.tabauth
WHERE tabname = 'T2'
GRANTOR GRANTEE SELECTAUTH
ARFCHONG DB2ADMIN Y
Trong thí d trên, ngi dùng ARFCHONG ã gán quyn SELECT cho ngi dùng
DB2ADMIN.
10.7 Xem xét quyn trên nhóm
/ vic qun tr DB2 d0 dàng hn, ta nên t nhng ngi dùng vào các nhóm và gán
các quyn cn thit cho các nhóm này.
Khi mt nhóm c gán quyn, các thành viên ca nhóm s, c gán các quyn ngm
nh c k th*a vi t cách thành viên nhóm.
Khi mt ngi dùng b xóa kh"i nhóm, ngi này s, mt các quyn ngm nh ca
nhóm, nhng v%n còn gi các quyn c gán tng minh. Nói mt cách khác các
quyn c cp mt cách tng minh phi c hy b" mt cách tng minh.
Nhp môn H qun tr c s d liu DB2
118
Bài tp nhanh # 7: Cho phép và hy b+ (phân quyn) quyn ngi s dng.
Mc tiêu:
Cho n lúc này, bn ã s dng mt tài khon ca ngi qun tr cho vic s dng các
lnh vi c s d liu.Tài khon này có th truy nh#p ti m&i tin ích, d liu và nhng
i tng c s d liu y . Bi v#y, iu quan tr&ng là cn bo v tài khon này
tránh s nhng s c hay mt mát d liu có ch tâm. Trong a s nhng trng hp,
bn s, mun to ra nhng tài khon ngi dùng khác hoc nhng nhóm vi mt thit
l#p quyn hn ch hn.Trong bài t#p này, bn s, to ra mt tài khon ngi s dng
mi, r+i gán nó nhng c quyn xác nh.
Th tc:
1.M ca s Windows Computer Management bng cách kích chut phi vào biu
tng My Computer trên máy tính, và ch&n Manage.
2. Ch&n mc Local Users and Group nhóm System Tools nm bên trái ca ca s
Computer Management, nhn chut phi lên User và ch&n mc New User.
3. Trong ca s New User , nh#p các thông tin sau ây: trong mc User name nh#p
“customer” và trong mc Full name nh#p “Customer1”. Trong trng Description nh#p
“A typical book store customer”. Trong trng Password và Confirm password nh#p
“ibmdb2”. B" du ánh mc “ngi dùng cn i m#t mã ln ng nh#p sau” (User
must change password on next logon) và nhn nút Create to ngi dùng mi
4. Ch&n ch cao cp (Advanced) bng cách ch&n mc Customize Control Center
trên thc n Control Center Tool, ch&n tip tùy ch&n Advanced và nhn OK. Bo m
khung nhìn làm vic hin ti ch Advanced.
5. M rng cây i tng ca Trung tâm iu khin bên trái ca s, ch&n All
Database -> EXPRESS -> Tables.
Nhp môn H qun tr c s d liu DB2
119
6. Phân nhng quyn cn có cho ngi dùng v*a mi to ra: T* danh sách các bng
trong c s d liu EXPRESS, nhn chut phi lên bng CUSTOMERS và ch&n mc
Privileges hin th ca s hi thoi “Table Privileges”
7. Kích vào nút Add User và ch&n ngi dùng “customer” v*a mi to ra bc 3. Kích
vào nút OK óng hp thoi Add User.
8. Bn chú ý rng ngi dùng “customer” ã c thêm vào danh sách ngi dùng,
nhng cha c gán thêm các quyn. / cp quyn cho ngi dùng này, ch&n Yes
trong hp thoi kéo xung ca tt c các phn SELECT, INSERT, UPDATE và DELETE.
Mt ngi dùng Internet cn phi có kh nng thc hin add/update/delete d liu tài
khon ca h&. Chúng ta không cp cho ngi s dng nhng quyn khác bi vì không
cn thit i vi h&. Nhn nút Ok óng ca s hp thoi Table Privileges và chp
nh#n nhng thay i v*a làm.
9. Lp li t*ng bc t* 7-9 cho bng BOOKS và bng SALES. /i vi bng BOOKS,
ch- cung cp quyn SELECT bi vì ngi dùng “customer” không nên có kh nng
iu ch-nh và phc h+i d liu trong kho. /i vi bng SALES, ch- cho quyn SELECT
và INSERT. Ngi dùng không nên có quyn DELETE hoc UPDATE bi vì ch- nhng
nhân viên mi cn phi có s truy nh#p sa i nhng giao dch bán hàng.
10. Th kt ni n c s d liu bng tài khon ca ngi dùng “customer” ã to
trên. Th SELECT vi bng khách hàng. /iu gì xy ra? Th DELETE hay UPDATE
d liu trong bng SALES. /iu gì xy ra?
Trong bài tp nhanh này, chúng ta ch to mt ngi dùng là “customer”, tuy nhiên, ng dng ca
bn có th cha ng nhiu kiu ngi dùng khác. Th nghim to ra nhng ngi dùng khác và
Nhp môn H qun tr c s d liu DB2
120
gán cho nó nhng c quyn. Bn cng có th to ra nhng nhóm ca các ngi dùng và phân
quyn cho các nhóm ó, hn là làm vi mi ngi dùng riêng l.
Nhp môn H qun tr c s d liu DB2
121
11
Chng 11 – Sao lu và khôi phc
Trong chng này chúng ta tho lu#n v nh#t ký c s d liu DB2, làm th nào sao
lu toàn b hay mt phn c s d liu s dng công c BACKUP và làm th nào
khôi phc d liu s dng công c RESTORE.
11.1 Nht ký c s d liu
Nu bn ang làm vic vi mt trình son tho vn bn, mi ln bn mun lu tài liu
phi nhn vào nút SAVE. Trong c s d liu, câu lnh COMMIT s, làm iu ó. Mi ln
câu lnh COMMIT c thc hin thì m&i thay i to thành d liu và c lu trong
nh#t ký c s d liu.
Tng t, khi bn làm vic vi mt tài liu vn bn, ôi khi bn thy di góc phi
màn hình có mt thông ip ngn “auto-saving”. Trong c s d liu, iu này c
thc hin bi lnh UPDATE, INSERT và DELETE.
4 phn trên ta ã c#p n nh#t ký c s d liu. Nh#t ký c s d liu c lu tr
trên 'a cng và c dùng ghi li nhng hành ng ca nhng giao dch. Nu h
thng hay c s d liu b h hi, chúng c dùng nó ly li nhng giao dch ã
c gi i trong sut quá trình khôi phc d liu.
Hình 11.1 minh h&a lu+ng x lý khi làm vic vi c s d liu trong nhng m%u nh#t ký
Hình 11.1 - Nht ký c s d liu
Trong hình 11.1 ta thy không gian bng (tablespace) và nh#t ký (logs), chúng u c
lu tr trên 'a cng, mc dù ta xut rng chúng không lu tr trên cùng 'a cng.
Ví d, khi câu lnh UPDATE c thc hin, nhng trang cho nhng dòng trong câu
lnh s, c lu trong vùng m d liu (b nh). Nhng thay i, c#p nh#t s, c
th hin trong vùng m d liu, nhng giá tr c. và mi s, c lu tr trong nhng
t#p tin nh#t ký c s d liu, ôi khi tc thi, ôi khi mt vùng m nh#t ký y. Nu câu
lnh COMMIT c thi hành sau câu lnh UPDATE thì nhng giá tr c. và mi s, c
Nhp môn H qun tr c s d liu DB2
122
ct trong nhng t#p tin nh#t ký ngay l#p tc. X lý này c.ng c lp li tng t cho
câu lnh SQL khác truy xut n c s d liu. Khi iu kin c c th th"a mãn, nh
là vic t n ng(ng ca s thay i trong tham s CHNGPGS_THRES thì nhng
trang trong vùng m d liu s, c “chi tit hóa” hay ghi lên thành không gian bng
trên 'a cng. Tham s CHNGPGS_THRES ch- nh t- l phn trm ca vùng m d
liu vi nhng trang “dirty” ó là nhng trang cha nhng thay i.
V khía cnh hiu nng, ta không có cm giác thc hin 2 ln ghi cho mi lnh
COMMIT: Mt là ghi n nh#t ký c s d liu và mt ghi n không gian bng trên 'a
cng, ó là lý do ti sao “s chi tit hóa” ca d liu n không gian bng trên 'a cng
ch- xy ra khi tham s “chngpgs_thres” t ng(ng.
11.2 Các kiu nht ký
Có hai kiu nh#t ký:
Nht ký s cp:
/c cp phát s)n và s nh#t ký s cp s)n sàng c xác nh bi tham bin db cfg
LOGPRIMARY
Nht ký th cp:
Phn nh#t ký th cp này c DB2cp phát ng khi cn. S nh#t ký th cp c
gán giá tr bi tham bin db cfg LOGSECOND. Vic cp phát ng mt nh#t ký s, gây ra
s lãng phí vì v#y nh#t ký th cp s, c xóa khi tt c kt ni n c s d liu ã b
ngt
11.3 Các kiu ghi nht ký
Có hai kiu ghi nh#t ký: Ghi tun t quay vòng (mc nh) và ghi lu tr
11.3.1 Ghi tun t quay vòng
Hình 11.2 mô t lu+ng x lý khi ghi tun t quay vòng
Hình 11.2 - X" lý nht ký s cp và th cp
Trong hình 11.2 có 3 nh#t ký s cp, vì v#y chúng ta gán LOGPRIMARY bng 3. / cho
n gin trong ví d này ch- có 1 giao dch. Khi giao dch c thc hin không gian s
dng bt u ghi vào t#p tin nh#t ký P1 và tip theo sau là P2. Nu có mt lnh COMMIT
c thc hin và thông tin sau ó c xut n không gian bng trên 'a cng, sau
ó P1 và P2 có th c ghi è d liu khác vì thông tin c. không cn thit na. Nu,
mt khác, giao dch ã s dng P1, P2, P3 và v%n cn nhiu không gian nh#t ký hn
na bi vì giao dch cha c COMMIT, thì mt nh#t ký th cp c cp phát (S1
trên hình v,) mt cách t ng. Nu giao dch v%n còn tip tc, nhiu nh#t ký th cp
c cp phát cho n khi s nh#t ký th cp c cp phát t ng(ng ti a
Nhp môn H qun tr c s d liu DB2
123
LOGSECOND. Nu v%n cha , mt thông ip li ch- ra iu kin ht kh nng cp
phát nh#t ký và giao dch s, c quay lui (h+i x).
11.3.2 Nht ký lu tr
Nh#t lu tr c.ng c bit n nh là ghi gi li, nhng t#p tin nh#t ký không b ghi è
nhng chúng c lu tr trc tuyn hay ngoi tuyn. Nhng nh#t ký lu tr trc tuyn
c lu tr vi nhng nh#t ký ng cn cho khôi phc khi h thng b s c. Nhng
nh#t ký lu tr ngoi tuyn c lu trong bng t* và có th làm vic vi th tc
USEREXIT. / có th ghi nh#t ký lu tr cn gán tham s db cfg LOGRETAIN là YES.
Cách ghi lu tr thng c dùng trong nhng h thng sn ph m. Nhng nh#t ký
c lu tr cho phép khôi phc c s d liu sm nht có th bi nhng t#p tin nh#t
ký c. nht trong hu ht các tình hung. Vi cách ghi lu tr ngi qun tr c s d
liu có th khôi phc nhng li gây ra bi con ngi. Mt ví d c th là khi mt ngi
trong h thng bt u thc hin mt giao tác không úng kéo dài hàng ngày, khi vn
c phát hin thì ngi qun tr c s d liu s, khôi phc li h thng c. vào thi
im trc khi vn c xy ra. Tuy nhiên, v%n còn có mt s thao tác bt buc phi
làm bng tay m bo vic khôi phc c chính xác.
Cách ghi l tr là cn thit i vi quá trình khôi phc li và khôi phc trc tuyn.
Hình 11.3 mô t lu+ng x lý ca ghi lu tr
Hình 11.3 - Ghi lu tr
11.4 Nht ký c s d liu t& Trung tâm iu khin
Bn có th cu hình nh#t ký c s d liu t* trung tâm iu khin bng cách nhn chut
phi trên c s d liu và ch&n “Configure Database Logging”
Nhp môn H qun tr c s d liu DB2
124
Hình 11.4 - Nht ký c s d liu t& Trung tâm iu khin
Hình 11.5 th hin màn hình thit l#p cu hình nh#t ký c s d liu, ti ây ta có th
ch&n kiu ghi nh#t ký quay vòng (circular) hoc ghi lu tr
Hình 11.5 - Ghi nht ký c s d liu theo hng d%n t&ng bc
11.5 Các tham s ca nht ký
Có nhng tham s DB CFG liên quan n vic to bn ghi nh#t ký. Bng 11.1 lit kê
danh sách các tham s chính.
Nhp môn H qun tr c s d liu DB2
125
Bng 11.1- Các tham s nht ký
11.6 Sao lu c s d liu
Lnh sao lu d liu DB2 cho phép bn to mt bn sao chép c s d liu lúc lnh
c thc thi. Cú pháp n gin nht bn có th s dng chy lnh này là:
BACKUP DATABASE <dbname> [ TO <path> ]
Hu ht các lnh và công c có th c thc hin trc tuyn hay ngoi tuyn. Trc
tuyn ngh'a là ngi s dng khác có th c kt ni và thc hin các thao tác trên
c s d liu trong khi bn thc thi lnh ca mình. Ngoi tuyn là không ngi nào
c kt ni n c s d liu trong khi bn thc hin thao tác. / cho phép mt thao
tác trc tuyn, thêm t* khóa ONLINE vào cú pháp lnh, nu không thì ngm nh bn s,
làm vic trong ch ngoi tuyn.
Ví d, nu mun sao lu c s d liu sample n ng d%n C:\BACKUPS bn có th
a ra lnh này t* trình n lnh DB2 ca Window/Linux:
Tham s Mô t
logbufsz
Lng b nh c s dng nh mt b m cho các bn ghi
nh#t ký trc khi ghi chúng vào 'a.
logfilsz Kích thc ca mi nh#t ký ã cu hình, có dung lng 4KB
logprimary S bn nh#t ký chính vi kích thc logfilsz s, c to
logsecond
S tp nh#t ký ph c to và s dng cho vic khôi phc nu
cn thit
logpath/newlogpath
V trí các nh#t ký hot ng hoc lu tr tng lai c t.
mirrologpath
/ bo 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, bn có th ch- nh mt thit l#p +ng nht cho
các nh#t ký c lu gi trên mt ng d%n ph (nh ca ng
d%n nh#t ký chính)
loghead Tên tp nh#t ký hot ng hin hành
userexit Cho phép chng trình userexit sao chép nh#t ký ngoi tuyn
softmax Gii hn s mt mát ca vic khi phc h"ng
logretain Cho phép ch ghi nh#t ký lu tr
overflowlogpath
Tng t tùy ch&n OVERFLOW LOG PATH ca lnh
ROLLFORWARD; tuy nhiên,thay vì ch- nh tùy ch&n OVERFLOW
LOG PATH cho mi lnh ROLLFORDWARD c a ra, bn có
th thit l#p tham s cu hình này mt ln
blk_log_dsk_ful
Thit l#p tránh vic tràn 'a phát sinh khi DB2 không th to ra mt
tp nh#t ký mi trong ng d%n nh#t ký ang hot ng. Thay vì
ó, DB2 s, c gng to ra tp nh#t ký mi nm phút n khi nó
thành công. Khi không còn tr ngi, SQL ch &c có th tip tc.
maxlog Phn trm s nh#t ký hot ng ti a cách nhau qua giao dch
num_log_span S tp nh#t ký hot ng cho mt UOW kích h&at