You are on page 1of 38

Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho

Gio Trnh H Quan Tr| Co So D Liu trang 67


Chuong 3. Quan l giao dich & phuc hi
Trong chuong ny, cc muc 1, 2 v 3 s trnh by l thuyt chung v quan l giao
dich, canh tranh v phuc hi trong cc HQTCSDL. Tu muc 4 tro di s minh hoa cc l
thuyt ny bng cng cu cua H QTCSDL Oracle.
1 Giao d[ch (transaction)
1.1 [nh ngha Giao d[ch:
Giao dich (GD) l mt hnh dng hay mt chui cc hnh dng duoc thuc hin
boi 1 nguoi dng hoc 1 chuong trnh ung dung, trong d c truy cp hoc thay di
ni dung cua mt CSDL.
Mt GD l mt don vi lun l cua cng vic trn CSDL. N c th l ton b
chuong trnh, mt phn cua chuong trnh, hoc mt lnh don le nhu INSERT hay
UPDATE, v n c th bao gm nhiu thao tc trn CSDL.
Ta xt mt v du: Mt h thng ngn hng gm mt s ti khoan v mt tp cc
giao dich truy xut v cp nht cc ti khoan. Tai thoi dim hin tai, ta gia thit rng
CSDL nm trn dia, nhung mt vi phn cua n dang nm tam thoi trong b nho. Cc
truy xut CSDL duoc thuc hin boi hai hoat dng sau:
READ(X). chuyn hang muc du liu X tu CSDL dn buffer cua giao dich thuc
hin hoat dng READ ny.
WRITE(X). chuyn hang muc du liu X tu buffer cua giao dich thuc hin
WRITE dn CSDL.
Trong h CSDL thuc, hoat dng WRITE
khng nht thit dn dn su cp nht truc tip du
liu trn dia; hoat dng WRITE c th duoc luu
tam thoi trong b nho v duoc thuc hin trn dia
mun hon. Trong v du, ta gia thit hoat dng
WRITE cp nht truc tip CSDL.
T
i
l mt giao
dich chuyn 50 tu ti
khoan A sang ti khoan
B. Giao dich ny c th
duoc xc dinh nhu sau:

Nu tt ca cc cp nht ny khng duoc thuc hin,
CSDL s o trong trang thi khng nht qun: nghia l tng s
tin A + B c th bi thay di.
Mt GD s lun lun chuyn CSDL tu mt trang thi nht qun ny sang mt
trang thi nht qun khc, mc d chng ta chp nhn su nht qun c th bi ph v
trong khi GD dang duoc thuc hin. Chng han nhu khi GD dang thuc hin, th c
nhung thoi dim m tng A + B thay di. Tuy nhin, khi GD kt thc th tng A + B
phai nhu cu.
T
i
: READ(A);
A:=A - 50;
WRITE(A)
READ(B);
B:=B + 50;
WRITE(B);
Hnh 13. T chc luu tr trong qu trnh
thc hin giao d|ch cp nht CSDL
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 68
1.2 Trang thi ca Giao d[ch:
Mt giao dich phai o trong mt trong cc trang thi sau:
Hot dng (Active) Trang thi khoi du; giao dich giu trong trang thi ny trong
khi n dang thuc hin.
Hon tt mt phn (Partially Committed) Sau khi lnh cui cng duoc thuc hin.
Tht bai (Failed) Sau khi pht hin rng su thuc hin khng th tip tuc duoc nua.
V kt thc voi mt trong hai trang thi:
Huy bo (Aborted) Sau khi giao dich d bi cun lai (rolled back) v CSDL d phuc
hi lai trang thi cua n truoc khi
khoi dng giao dich.
Mt GD bi huy c th duoc khoi
dng lai sau d, ty thuc vo nguyn
nhn gy li, v c th n s thuc thi
thnh cng v hon tt.
Hon tt (Committed) Sau khi hon
thnh thnh cng giao dich CSDL
dat toi trang thi nht qun moi.
Mt GD hon tt th khng th bi
huy bo. Nu ta thy vic thuc hin GD
d hon tt l mt sai lm, th ta phai thuc hin mt GD khc c hiu ung nguoc lai,
goi l GD b (compensating transaction).
Mt HQTCSDL khng c mt cch c huu no d bit duoc nhung cp nht no
phai duoc nhm lai thnh mt GD. V vy, n phai cung cp mt phuong php d gip
dng chi ra ranh gioi cua mt GD. Cc tu kha BEGIN TRANSACTION, COMMIT,
ROLLBACK duoc hu ht cc HQTCSDL dua vo ngn ngu thao tc du liu d phn
dinh cc GD. Nu khng c cc tu ny, th ton b chuong trnh s duoc xem nhu mt
GD, khi d HQTCSDL s tu dng thuc hin hnh dng COMMIT khi chuong trnh
kt thc dng dn v thuc hin ROLLBACK trong truong hop nguoc lai.
Mt GD o trang thi hon tt mt phn d hon thnh su thuc hin cua n, nhung
n vn c th bi huy bo, v kt qua hin tai vn c th cn luu tru tam thoi trong b
nho chnh v nhu th mt su c phn cung vn c th ngn can su hon tt cua giao
dich. H CSDL khi d d kip vit ln dia dy du thng tin gip vic ti tao cc cp
nht d duoc thuc hin trong qu trnh thuc hin giao dich, khi h thng ti khoi dng
sau su c. Sau khi cc thng tin sau cng ny duoc vit ln dia, giao dich chuyn sang
trang thi committed.
Voi gia thit su c h thng khng gy ra su mt du liu trn dia, mt giao dich
di vo trang thi Failed nu h thng xc dinh rng giao dich khng th tin trin bnh
thuong duoc nua (do li phn cung hoc phn mm). Nhu vy, giao dich phai duoc
cun lai ri chuyn sang trang thi huy bo.
1.3 Cc thuc tnh ca mt GD
Tt ca cc GD du phai c 4 thuc tnh sau, vit tt l ACID:



Hnh 14. Biu d trng thi tuong ng vi mt
GD
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 69
a. Tnh nguyn tu (Atomicity) hay tnh Tt ca ho}c khng c g
Mt GD l mt don vi khng phn chia duoc nghia l hoc n duoc thuc hin
ton b hoc khng thuc hin t g.
tuong co so d dam bao tnh nguyn tu l nhu sau: h CSDL luu vt (trn dia)
cc gi tri cu cua bt ky du liu no m giao dich dang thuc hin hnh dng ghi, nu
giao dich khng hon tt, gi tri cu s duoc khi phuc d dt trang thi cua h thng
tro lai trang thi truoc khi giao dich din ra.
Trch nhim: Dam bao tnh nguyn tu l trch nhim cua h quan tri CSDL, v duoc
quan l boi mt thnh phn duoc goi l thnh phn quan l giao dich (transaction-
management component).
b. Tnh nht qun (consistency)
Mt GD phai chuyn CSDL tu mt trang thi nht qun ny sang mt trang thi
nht qun khc. Tnh nht qun cua CSDL yu cu chi c nhung du liu hop l, chnh
xc (nghia l khng vi pham cc rng buc du liu) moi duoc ghi vo CSDL.
Chng han nhu trong v du trn th tng cua A v B phai khng thay di boi su
thuc hin giao dich. Nu khng c yu cu nht qun, tin c th duoc tao ra hay bi
ph huy boi giao dich. D dng kim nghim rng nu CSDL nht qun truoc mt
thuc hin giao dich, n vn nht qun sau khi thuc hin giao dich.
Trch nhim: dam bao tnh nht qun cho mt giao dich l trch nhim cua nguoi lp
trnh ung dung hay nguoi d vit ra giao dich. Nhim vu ny c th thuc hin nho cc
chuc nng kim tra tu dng cc rng buc ton ven cua h QTCSDL.
c. Tnh c lp (Isolation)
Cc GD phai thuc hin dc lp nhau. Hay ni cch khc, cc kt qua giua chung
cua mt GD chua hon tt th khng th d cc GD khc nhn thy.
Tnh c lp cua mt giao dich dam bao rng cho d nhiu giao dich duoc thuc
hin cng lc cung s dn h thng dn mt trang thi tuong duong voi trang thi c
duoc bng cch thuc hin cc giao dich ny mt cch tun tu.
Trch nhim: Dam bao tnh c lp l trch nhim cua mt thnh phn cua h QTCSDL
duoc goi l thnh phn quan l canh tranh (concurrency-control component).
d. Tnh bn vng (Duration)
Tnh cht bn vung dam bao rng mi khi mt GD hon tt, tt ca cc cp nht
d thuc hin trn CSDL vn cn d, ngay ca khi xay ra su c h thng sau khi giao
dich d hon tt.
Ta gia su mt su c h thng c th gy ra vic mt du liu trong b nho chnh,
nhung du liu trn dia th khng mt. C th dam bao tnh bn vung boi vic dam
bao :
Hoc cc cp nht duoc thuc hin boi giao dich d duoc vit ln dia truoc khi
giao dich kt thc,
Hoc thng tin v su cp nht duoc thuc hin boi giao dich duoc vit ln dia du
cho php CSDL xy dung lai cc cp nht khi h CSDL duoc khoi dng lai sau su c.
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 70
Trch nhim: Dam bao tnh bn vung l trch nhim cua mt thnh phn cua h
QTCSDL goi l thnh phan quan l phuc hoi (recovery-management component).
Hai thnh phn quan l giao dich v quan l phuc hi quan h mt thit voi nhau.
Hnh 15 duoc trch ra tu kin trc tng qut cua h QTCSDL gm bn thnh
phn vua d cp: quan l GD, diu khin canh tranh, quan l phuc hi v quan l vng
dm.
Quan l GD (transaction manager) s phi hop cc GD thay cho cc chuong trnh
ung dung. N giao tip voi bo lap lich trnh (scheduler), l mt module chiu trch
nhim v vic thuc hin mt chin luoc cu th d diu khin su thuc hin canh tranh
cua cc GD. B lp lich trnh
di khi cn duoc goi l bo
quan l kha chot (lock
manager) nu giao thuc diu
khin canh tranh l dua trn
kha cht. Muc tiu cua b
lp lich trnh l ti da ha kha
nng canh tranh nhung khng
cho php cc GD dang thuc
hin dng thoi can thip ln
nhau, v nho d dam bao tnh
ton ven v nht qun cho
CSDL.
Nu c li xay ra trong
khi mt GD dang thuc hin,
th CSDL c th o trang thi
khng nht qun. Nhim vu
cua bo quan l phuc hoi
(recovery manager) l dam
bao cho CSDL duoc phuc hi v trang thi nht qun truoc khi bt du GD. Cui cng,
b quan l vng dm (buffer manager) chiu trch nhim chuyn du liu qua lai giua b
luu tru ngoi v b nho trong.
2 iu khin canh tranh (Concurrency control)
Quan l canh tranh l qu trnh quan l cc thao tc dang din ra dng thoi trn
CSDL m khng cho php chng can thip ln nhau.
2.1 S cn thit phi c qun l canh tranh
Mt muc tiu chnh cua vic pht trin CSDL l cho php nguoi dng truy cp
vo cc du liu chia se mt cch dng thoi hay canh tranh.
Cc truy cp canh tranh th kh d dng nu tt ca cc nguoi dng chi doc du liu,
v khng c cch no ho c th can thip ln nhau; hoc hai hay nhiu nguoi dng
dang cp nht cc du liu khc nhau.
Nhung khi hai hay nhiu nguoi dng dang truy cp mt cch dng thoi vo mt
du liu v c t nht mt nguoi cp nht du liu, th s c kha nng xay ra su can thip
Hnh 15. Cc thnh phn lin quan vic quan l GD
trong HQTCSDL
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 71
dn dn su khng nht qun. Tuy nhin, khng phai v th m ta buc cc giao dich
ny khng duoc thuc hin song song, hay phai xp hng cho v nhiu loi ch:
Truoc ht, mt giao dich gm nhiu buoc. Mt vi buoc lin quan toi hoat dng
I/O; cc buoc khc lin quan dn hoat dng CPU. Ta c th tn dung su hoat dng
song song cua h thng CPU v I/O d chay nhiu giao dich song song nho tnh da
chuong (multipropramming). Chng han hai GD c th thuc hin dng thoi. H thng
bt du voi GD thu nht cho dn khi n dat dn mt thao tc nhp/xut (I/O). Trong
khi thao tc I/O dang duoc thuc hin, CPU tam hon GD thu nht v thuc thi lnh
trong GD thu hai. Khi GD thu hai dat dn mt thao tc I/O th diu khin s quay tro
lai voi GD thu nht v cc thao tc cua GD ny s duoc tip tuc lai tu dim m n d
tam hon. GD thu nht s tip tuc cho dn khi n dat dn mt thao tc I/O khc. Cu
nhu th, cc thao tc trong hai GD xen k voi nhau d dat duoc su thuc hin canh
tranh. Nhu vy s tng thng luong (throughput) cua h thng c nghia l tng s
luong giao dich c th duoc thuc hin trong mt khoang thoi gian d cho, cung c
nghia l hiu sut su dung b xu l v dia tng ln.
Ngoi ra, c th c su trn ln cc giao dich dang chay trong h thng, ci th di
ci th ngn. Nu thuc hin tun tu, mt qu trnh ngn c th phai cho mt qu trnh
di dn khi hon tt, diu d dn dn mt su tr hon khng luong truoc duoc trong
vic chay mt giao dich. Nu cc giao dich dang hoat dng trn cc phn khc nhau
cua CSDL, s tt hon nu ta cho chng chay dng thoi, chia se cc chu ky CPU v
truy xut dia giua chng. Thuc hin canh tranh lm giam su tr hon khng luong
truoc trong vic chay cc giao dich, dng thoi lm giam thoi gian dp ung trung bnh
l thoi gian d mt giao dich duoc hon tt sau khi d duoc d trnh.
Tuy nhin, khi thuc hin song song, mc d ban thn hai GD c th hon ton
dng, su dan xen cc thao tc nhu m ta c th sinh ra cc kt qua khng dng, v vy
lm anh huong dn tnh ton ven v tnh nht qun cua CSDL. Chng ta s xem xt ba
v du v cc vn d tim n c th gy ra boi su canh tranh:
Vn d v mt du liu d cp nht (lost update),
Vn d v su phu thuc vo cc GD khng hon tt (uncommitted denpendency),
Vn d phn tch khng nht qun (inconsistent ananlysis).
D minh hoa cc vn d ny, ta xt
h thng ngn hng don gian voi mt s
ti khoan v mt tp hop cc giao dich
truy xut, cp nht cc ti khoan ny. Gia
su T1 v T2 l hai giao dich chuyn khoan
tu mt ti khoan sang mt ti khoan khc:
T1 chuyn 50$ tu ti khoan A sang ti
khoan B. T2 chuyn 10% s du tu ti
khoan A sang ti khoan B.

T
1
: Read(A);
A:=A-50;
Write(A);
Read(B);
B:=B+50;
Write(B);

T
2
: Read(A);
Temp:=A*0.1;
A:=A-temp;
Write(A);
Read(B);
B:=B+temp;
Write(B);
Bang 11. L|ch trnh cnh tranh
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 72

Gia su gi tri hin tai cua A v B tuong ung l 1000$ v 2000$. Gia su rng hai
giao dich ny duoc thuc hin tun tu theo thu tu T1 ri toi T2 nhu trong lich trnh 1.
Nhu vy, dy thuc hin ny l nhu hnh 16, trong d dy cc buoc chi thi theo thu tu
tu trn xung: Gi tri sau cng cua cc ti khoan A v B, sau khi thuc hin dy cc chi
thi theo trnh tu ny tuong ung l 855$ v 2145$. Nhu vy, tng gi tri cua hai ti
khoan ny (A + B) duoc bao tn sau khi thuc hin ca hai giao dich. Tuong tu, nu hai
giao dich duoc thuc hin tun tu theo trnh tu T2 ri dn T1 nhu trong lich trnh 2. Khi
d cc gi tri cui cng cua ti khoan A v B tuong ung s l 850$ v 2150$.
2.2 L[ch trnh (schedule):
Ljch trnh l mt chui cc thao tc thuc hin boi mt tp hop cc GD canh
tranh m vn dam bao thu tu cua cc thao tc trong tung GD don le.
V du, di voi giao dich T1, chi thi Write(A) phai xut hin truoc chi thi Read(B),
trong bt ky lich trnh hop l no.
Ljch trnh tun t (serial schedule) l mt lich trnh trong d cc thao tc cua
mt GD duoc thuc hin lin tip nhau, khng c bt ky thao tc no cua cc GD khc
xen vo giua. Cc lich trnh trong hnh 16 l tun tu.
Trong lich trnh tun tu, ta s khng c cc giao dich dan xen ln nhau, v chi c
mt giao dich thuc hin tai mt lc. Tuy nhin, khng c bt ky su dam bao no v kt
qua cua tt ca cc lich trnh tun tu du s ging nhau cho mt tp hop cc giao dich.
Chng han nhu hai lich trnh 1 v 2 trong hnh 16 cho kt qua hon ton khc nhau.
Ljch trnh khng tun t (nonserial schedule) l mt lich trnh trong d cc thao
tc tu mt tp hop cc giao dich canh tranh dan xen ln nhau. Khi d, cc lich trnh
T1 T2

T1 T2
Read(A);
A:=A-50;
Write(A);
Read(B);
B:=B+50;
Write(B);

Read(A);
Temp:=A*0.1;
A:=A-temp;
Write(A);
Read(B);
B:=B+temp;
Write(B);

Read(A);
Temp:=A*0.1;
A:=A-temp;
Write(A);
Read(B);
B:=B+temp;
Write(B);
Read(A);
A:=A-50;
Write(A);
Read(B);
B:=B+50;
Write(B);

Lich trnh 1

Lich trnh 2

Hnh 16. Cc l|ch trnh tun t
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 73
ny c th dua CSDL v tnh trang khng nht qun hay cc kt qua khng chnh xc
nhu phn tch trong cc phn k tip.
2.2.1 Vn d 1: Mt d liu d cp nht
Tnh hung: Kt qua cua mt thao tc cp nht hon tt mt cch thnh cng boi mt
nguoi dng c th bi ghi chng ln boi mt nguoi dng khc.
V du: Trong bang 12, GD T1 rt khoi TK A 10$ dang thuc hin canh tranh voi GD
T2 nap vo TK A 100$. Gia su ban du A c 100 dng.
Nu cc GD ny duoc thuc hin mt cch tun tu (serrially), ci ny xong ri dn
ci kia, khng c cc thao tc xen k, th kt qua cui cng ti khoan ny s cn 190
dng, bt k l GD no duoc thuc hin truoc. Nhung, nu T1 v T2 thuc hin canh
tranh theo lich trnh sau:
T
1
T
2
TK A
Begin Transaction 100
Begin Transaction x:=Read(A); 100
x := Read(A); 100
x = x + 100 ; 100
x:=x-10; 100
Write(A); 200
Write(A); 90
Commit 90
Commit 90
Bang 12. L|ch trnh gy mt d liu cp nht
Sau khi thuc hin lich trnh 3, ta dat toi trang thi trong d gi tri cui cua A
90$ (l ra phai l 190). O dy, ta thy gi tri m T2 d cp nht trn A d bi T1 ghi
chng ln.
Giai php: Vic dnh mt du liu d cp nht cua mt GD c th trnh duoc bng cch
ngn khng cho mt GD khc doc gi tri cua muc du liu dang duoc cp nht cho dn
khi vic cp nht hon tt.
2.2.2 Vn d 2: ph thuc vo cc GD khng hon tt
Tnh hung: Vn d v su phu thuc vo cc GD khng hon tt xay ra khi mt GD
cho php cc GD khc nhn thy cc kt qua tam thoi truoc khi n hon tt.
V du: GD T4 cp nht TK A thnh 200 dng, nhung sau d n bi huy bo GD, v v
vy A s duoc phuc hi v gi tri ban du cua n l 100 dng. Tuy nhin, trong lc
ny, GD T3 d doc gi tri moi cua T4 (200 dng), v su dung gi tri ny lm co so cho
vic tru 10 dng khoi ti khoan, lm cho gi tri moi khng dng l 190 dng, thay v
chi l 90 dng.




Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 74
T
3
T
4
TK
A
Begin 100
Read(A); 100
A = A + 100
Begin Write(A); 200
Read(A);

200
A:=A-10; Rollback 100
Write(A); 190
Commit 190
Bang 13. L|ch trnh ph thuc vo GD khng hon tt
Giai php: Vn d ny c th trnh duoc bng cch ngn khng cho mt GD doc gi
tri dang duoc cp nht boi mt giao dich chua kt thc khc (nghia l chua hon tt
hoc chua huy bo).
Hai vn d trn tp trung vo cc GD cp nht CSDL v su can thip ln nhau
cua chng c th lm cho CSDL bi sai. Tuy nhin, cc GD chi doc CSDL cung c th
sai.
2.2.3 Vn d 3: Phn tch khng nht qun:
Tnh hung: GD chi doc duoc php doc mt phn kt qua cua cc GD chua hon tt m
cc GD ny cng lc cung dang cp nht CSDL. Diu ny goi l dirty read hay
unrepeatable read.
V du: GD tnh tng T6 dang thuc hin canh tranh voi GD T5: GD T6 cng gi tri cua
cc ti khoan X (100 dng), ti khoan Y (50 dng) v ti khoan Z (25 dng). Kt qua
dng s l 175 dng. GD T5 chuyn 10 dng tu X sang Z
Voi lich trnh nhu bang 14, ta thy T6 by gio c kt qua sai (nhiu hon 10 dng).
T
5
T
6
X Y Z Sum
Begin Transaction 100 50 25
Begin Transaction Sum = 0 100 50 25 0
Read(X); 100 50 25 0
X = X Read(X); 100 50 25 100
Write (X); Sum = Sum + 90 50 25 100
Read(Y); 90 50 25 150
Read (Z) Sum = Sum + 90 50 25 150
Z = Z + 10 90 50 25 150
Write(Z); 90 50 35 150
Commit Read(Z) 90 50 35 185
Sum = Sum + Z 90 50 35 185
Commit 90 50 35 185
Bang 14. L|ch trnh phn tch khng nht qun.
Giai php: Vn d ny c th trnh duoc bng cch ngn khng cho mt GD doc gi
tri dang duoc cp nht boi mt GD chua hon tt khc.
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 75
2.3 Tnh kh tun t ca mt l[ch trnh
Cc vn d chu yu nay sinh khi cho php cc GD thuc hin canh tranh d duoc
minh hoa nhu trn. Muc tiu chnh cua giao thuc diu khin canh tranh l lp lich trnh
cho cc GD sao cho c th thuc hin canh tranh nhung vn trnh duoc cc su can thip
ln nhau c th dn dn kt qua sai.
Ba vn d vua m ta trn l kt qua cua su quan l canh tranh sai, dn CSDL dn
tnh trang khng nht qun nhu trong tnh hung du, v trnh by cho nguoi dng mt
kt qua sai nhu trong tnh hung thu 3. Su thuc hin tun tu s ngn khng cho xut
hin cc vn d ny. D cho lich trnh tun tu no duoc chon, th su thuc hin tun tu
cung khng bao gio lm cho CSDL o tnh trang khng nht qun.
Ljch trnh kha tun t (serializable schedule): l cc lich trnh khng tun tu cho
php cc GD thuc hin canh tranh nhung vn cho kt qua ging nhu lich trnh tun tu.
Trong thuc t, cc HQTCSDL khng kim tra tnh kha tun tu cua mt lich trnh.
V vic kim tra ny c th l khng thuc t, do su xen k cua cc thao tc trong cc
giao dich duoc xc dinh boi h diu hnh chu khng phai l HQTCSDL. Thay vo d,
tip cn thuong dng l su dung cc giao thuc (protocols) d bit d tao ra cc lich
trnh kha tun tu. Hai trong s cc giao thuc ny s duoc trnh by trong phn 2.5
2.4 Tnh kh phc hi ca l[ch trnh
Tnh kha tun tu nhn dinh cc lich trnh duy tr tnh nht qun cua CSDL, voi
gia thit l khng c GD no trong lich trnh bi tht bai. Mt kha canh khc cn kim
tra l tnh kha phuc hi cua cc giao dich trong lich trnh.
Nu mt GD tht bai, tnh nguyn tu cua GD yu cu chng ta phai xa bo cc
tc dung cua giao dich d. Ngoi ra, tnh bn vung pht biu rng, mt khi GD hon
tt, cc thay di cua n khng th duoc huy bo.
T
9
T
10

Begin Transaction
Read(X)
X = X + 100
Write (X) Begin Transaction
Read(X)
X = X * 1.1
Write (X)
Read(Y)
Y = Y * 1.1
Write (Y)
Read(Y); Commit
Y = Y 100
Write (Y);
Rollback
Bang 15. L|ch trnh khng kha phc hi
Hy xem xt hai GD trong bang 15, o cui GD T9, T9 quyt dinh cun nguoc
tc dung cua n. T10 d doc gi tri cp nht trn X boi T9, sau d cp nht X v
commit cc thay di. Ni dng ra, khi huy bo T9, ta cn phai huy bo T10 v n d su
dung gi tri X d bi huy. Tuy nhin, tnh bn vung khng cho php diu ny. Ni cch
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 76
khc, lich trnh ny l khng th phuc hi (unrecoverable schedule), cc lich trnh nhu
vy nn cm thuc hin. Diu ny dn dn dinh nghia v lich trnh kha phuc hi:
Ljch trnh kha phc hi (recoverable schedule) l mt lich trnh trong d voi mi
cp GD Ti v Tj, nu Tj doc mt muc du liu m truoc d d duoc ghi boi Ti, th thao
tc commit cua Ti phai thuc hin truoc thao tc commit cua Tj.
2.5 Cc k thut qun l canh tranh
Tnh kha tun tu c th dat duoc bng mt s cch. C hai k thut diu khin
canh tranh co ban cho php cc GD thuc hin song song mt cch an ton dua trn
mt s rng buc no d. Hai phuong php d l: kha cht v nhn thoi gian.
Mt cch co ban, kha cht v nhn thoi gian l cc tip can than trong (hay cn
goi l bi quan) v cc phuong php ny lm cho cc GD bi ngung tr khi chng xung
dt voi cc giao dich khc tai mt thoi dim no d trong tuong lai. Cc phuong php
lac quan, s trnh by trong muc 2.6, th dua trn lp lun rng cc xung dt th him
khi nn chng cho php cc GD duoc tin hnh khng dng b v chi kim tra xung
dt vo lc cui, khi giao dich hon tt.
2.5.1 Kha cht (locking)
Kha chot l mt thu tuc duoc su dung d diu khin truy cp canh tranh dn du
liu. Khi mt GD dang truy cp vo CSDL, mt kha cht c th tu chi truy cp dn
tu cc GD khc d nhm trnh cc kt qua khng dng.
Cc phuong php kha cht duoc su dung ph bin nht d bao dam tnh kha
tun tu cua cc GD canh tranh. C mt vi su khc bit, nhung tt ca cc phuong php
ny du c chung mt dc dim co ban, d l mt GD phai yu cu mt kha doc (cn
goi l kha chia se - shared lock) hay kha ghi (cn goi l kha dc quyn exclusive
lock) trn mt muc du liu truoc khi thuc hin mt thao tc doc hoc ghi trn CSDL
tuong ung.
Kha cht ngn khng cho cc giao dich khc thay di muc du liu hoc thm
ch l doc n, trong truong hop l kha ghi.
Cc muc du liu voi nhiu kch c khc nhau, lon nhu ton b CSDL dn nho
nhu mt truong, du c th bi kha. Kch c cua cc muc du liu s xc dinh tnh tinh
vi hay d min (granularity) cua kha. Kha tht su c th duoc ci dt bng mt bit
trn muc du liu chi dinh rng mt phn cua CSDL d bi kha, hay bng cch giu mt
danh sch cc phn bi kha cua CSDL, hay bng cc phuong tin khc. Chng ta s
xem xt d min cua kha trong phn 2.7.
D hiu cc quy lut co ban cua kha cht, ta cn hiu cc khi nim sau:
Kha dc (read lock): Nu mt GD c mt kha doc trn mt muc du liu, n c
th doc nhung khng th cp nht muc du liu d.
Kha ghi (write lock) Nu mt GD c mt kha ghi trn mt muc du liu, n c
th doc v cp nht muc du liu d.
Boi v cc thao tc doc khng th xung dt, nn c th c nhiu GD giu kha doc
mt cch dng thoi trn cng mt muc du liu. Nguoc lai, mt kha ghi cho php mt
GD dc quyn truy cp trn muc du liu d. V vy, ngay khi mt GD giu mt kha
ghi trn muc du liu, th khng mt GD no khc c th doc hoc cp nht muc du liu
d. Cc kha duoc su dung theo cc cch sau dy:
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 77
Bt ky mt GD no cn truy cp mt muc du liu, truoc ht n phai kha muc d
lai, bng cch yu cu mt kha doc cho truy cp chi doc hoc kha ghi cho truy
cp c ca doc v ghi.
Nu muc du liu ny chua bi kha boi mt GD no khc, th kha s duoc cp.
Nu muc du liu ny dang bi kha, HQTCSDL s xc dinh kha dang yu cu ny
c tuong thch voi kha d c hay khng. Nu mt kha doc dang duoc yu cu
trn mt muc m dang bi kha bng mt kha doc, th yu cu ny s duoc dp
ung; bng khng th GD buc phai doi cho dn khi kha d c duoc giai phng.
Mt GD tip tuc giu mt kha cho dn khi n giai phng kha mt cch tuong
minh lc dang thuc thi hoc lc n kt thc (huy bo hoc hon tt). Chi khi no
kha ghi duoc giai phng th hiu ung cua thao tc ghi moi duoc nhn thy boi cc
giao dich khc.
Ngoi cc lut ny ra, mt s h thng cho php mt GD c mt kha doc trn
mt muc v sau d nng cap (upgrade) kha ln thnh kha ghi. Diu ny cho php
mt GD xem xt mt du liu truoc ri sau d moi quyt dinh liu n c mun cp nht
du liu d hay khng.
Nu kha nng nng cp khng duoc h tro, mt GD phai giu cc kha ghi trn tt
ca cc muc du liu m n c th phai cp nht trong sut qu trnh thuc hin GD, v v
vy c th lm giam muc d canh tranh trong h thng. Cung v l do ny, mt s h
thng cho php mt GD giu mt kha ghi v sau d ging cap (downgrade) kha
xung thnh kha doc.
Tuy nhin, nu chi su dung kha trong quan l cc GD canh tranh nhu m ta bn
trn, th khng du d dam bao tnh kha tun tu cua cc lich trnh nhu trong v du sau
dy.
V du: Lich trnh kha cht khng dng:
Xt lai hai GD trong bang 15, gia su T9 commit o cui GD cua n. Mt lich trnh
hop l c th duoc thuc hin bng cch su dung cc lut kha cht nhu sau:
S = { write_lock(T9, X), read(T9, X), write(T9, X), unlock(T9, X),
write_lock(T10, X), read(T10, X), write(T10, X), unlock(T10, X),
write_lock(T10, Y), read(T10, Y), write(T10, Y), unlock(T10, Y),
commit(T10),
write_lock(T9, Y), read(T9, Y), write(T9, Y), unlock(T9, Y), commit (T9)}
Nu ban du, X = 100, Y = 400, th kt qua s l:
X = 220, Y = 330, nu T9 thuc hin truoc T10;
hoc X = 210, Y = 340, nu T10 thuc hin truoc T9.
Tuy nhin, kt qua cua lich trnh S hin tai phai l X = 220 v Y = 340. (chung to
S khng phai l mt lich trnh kha tun tu.)
Nguyn nhn dn dn tnh trang sai ny l lich trnh giai phng cc kha m n
dang giu ngay khi thao tc doc/ghi tuong ung thuc hin xong v muc du liu d
(chng han nhu X) khng cn truy cp nua. Tuy nhin, ban thn GD dang kha cc
muc khc (Y), sau khi n giai phng kha trn X. Mc d diu ny c ve cho php
muc d canh tranh nhiu hon, nhung n cho php cc GD xen k voi nhau, lm mt di
tnh dc lp v tnh nguyn tu cua ton b GD.
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 78
V vy, d dam bao tnh kha tun tu, chng ta phai tun theo mt giao thuc khc
lin quan dn vic dt cc thao tc kha v mo kha trong moi GD. Giao thuc ni
ting nht l kha cht hai ky (two-phase locking 2PL).
2.5.2 Giao thc kha hai k (2PL)
Dinh nghia: Mt GD tun theo giao thuc kha hai ky nu nhu tt ca cc thao tc kha
du tin hnh truoc thao tc mo kha trong GD d.
Theo lut cua giao thuc ny, mi GD c th chia ra thnh 2 ky:
Ky pht trin (growing phase) l ky du, o d n yu cu tt ca cc kha cn
thit nhung khng giai phng kha no,
Ky co li (shrinking phase) l ky sau, o d n giai phng cc kha cua n v
khng th yu cu thm bt ky kha moi no.
Khng bt buc tt ca cc kha phai c duoc mt cch dng thoi. Thng thuong,
GD yu cu mt s kha, thuc hin mt s xu l v tip tuc yu cu thm cc kha cn
thit khc. Tuy nhin, n s khng bao gio giai phng kha no cho dn khi n dat dn
giai doan khng cn thm kha no moi nua. Cc quy lut duoc pht biu nhu sau:
Mt GD phai dat duoc kha trn mt muc truoc khi n xu l muc d. Kha ny
c th l doc hoc ghi, ty thuc vo nhu cu truy cp.
Mt khi GD giai phng mt kha, n khng th yu cu thm kha moi no.
Nu vic nng cp kha duoc cho php, th vic nng cp ny chi c th din ra
trong ky pht trin v GD c th phai doi cho dn khi GD khc giai phng kha doc
trn muc d. Vic ging cp chi c th thuc hin trong ky co lai. Chng ta s xem xt
cch thuc kha hai ky giai quyt ba vn d d d cp trong muc 2.1
2.5.2.1 Trnh vn d mt d liu d cp nht bng 2PL
Mt giai php cho vn d mt du liu d cp nht d d cp trong muc 2.2.1 duoc
m ta trong bang 16 nhu sau:
Du tin T2 yu cu kha ghi trn A. Sau d n c th doc gi tri cua A trong
CSDL, tng ln 100 dng, v ghi gi tri moi vo CSDL.
Khi T1 bt du, n cung yu cu kha ghi trn A. Tuy nhin, v A dang duoc
kha boi T2, yu cu ny cua T1 khng duoc dp ung ngay lp tuc v T1 phai doi cho
dn khi T2 giai phng kha. V diu ny chi xay ra khi T2 hon tt.
Time T
1
T
2
TK
A
t
1
Begin 100
t
2
Begin Transaction Write lock(A) 100
t
3
Write lock(A) Read(A); 100
t
4
WAIT A = A + 100 ; 100
t
5
WAIT Write(A); 200
t
6
WAIT Commit/ 200
t
7
Read(A); 200
t
8
A:=A-10; 190
t
9
Write(A); 190
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 79
t
10
Commit/ 190
Bang 16. Giao thc 2PL giai quyt vn d mt d liu d cp nht.
2.5.2.2 Trnh vn d ph thuc vo GD khng hon tt bng 2PL
Mt giai php cua vn d d d cp trong muc 2.2.2 duoc m ta trong bang 17
nhu sau:
Du tin T4 yu cu kha ghi trn X. Sau d n c th doc gi tri trn X tu
CSDL, tng n ln 100 dng, v ghi gi tri moi vo CSDL.
Khi hnh dng cun lai duoc thuc hin, cc cp nht cua T4 s duoc g bo v gi
tri cua X trong CSDL duoc tra v nhu ban du tuc l 100.
Khi T3 bt du, n cung yu cu mt kha ghi trn X. Tuy nhin v X dang bi
kha boi T4, yu cu ny khng duoc dp ung ngay lp tuc v T3 phai doi cho dn
kha T4 giai phng kha. V diu ny chi din ra khi vic cun lai cua T4 din ra
xong.
Time T
3
T
4
TK
A
t
1
Begin 100
t
2
Write lock(A) 100
t
3
Begin Transaction Read(A); 100
t
4
Write lock(A) A = A + 100 ; 100
t
5
WAIT Write(A); 200
t
6
WAIT Rollback/ 100
t
7
Read(A); 100
t
8
A:=A-10; 90
t
9
Write(A); 90
t
10
Commit/ Unlock(A) 90
Bang 17. Giao thc 2PL giai quyt vn d ph thuc vo GD khng hon tt.
2.5.2.3 Trnh vn d phn tch khng nht qun bng 2PL
Mt giai php cho vn d d d cp trong muc 2.2.3 duoc m ta trong bang 18
nhu sau:
Du tin T5 yu cu v c duoc kha ghi trn X. Sau d, khi T6 mun c kha
doc trn X, yu cu ny s khng duoc dp ung tuc th v T6 phai doi cho dn khi T5
giai phng kha, chnh l khi T5 hon tt.
Tim T
5
T
6
X Y Z Sum
t
1
Begin Transaction 100 50 25
t
2
Begin Transaction Sum = 0 100 50 25 0
t
3
Write lock (X) 100 50 25 0
t
4
Read(X); Read lock (X) 100 50 25 0
t
5
X = X 10 ; WAIT 100 50 25 0
t
6
Write (X); WAIT 90 50 25 0
t
7
Write lock (Z) WAIT 90 50 25 0
t
8
Read (Z) WAIT 90 50 25 0
t
9
Z = Z + 10 WAIT 90 50 25 0
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 80
t
10
Write(Z); WAIT 90 50 35 0
t
11
Commit/ Unlock(X,Z) WAIT 90 50 35 0
t
12
WAIT 90 50 35 0
t
13
Read(X); 90 50 35 90
t
14
Sum = Sum + X 90 50 35 90
t
15
Read lock(Y) 90 50 35 90
t
16
Read(Y); 90 50 35 140
t
17
Sum = Sum + Y 90 50 35 140
t
18
Read lock(Z) 90 50 35 140
t
19
Read(Z) 90 50 35 175
t
20
Sum = Sum + Z 90 50 35 175
Commit/Unlock(X,Y,Z)
Bang 18. Giao thc 2PL giai quyt vn d phn tch khng nht qun.
Ta c th chung minh nu moi GD trong mt lich trnh du tun theo giao thuc
kha hai ky, th lich trnh ny duoc dam bao l kha tun tu xung dt.
2.5.2.4 Cc vn d nay sinh khi su dng giao thc kha 2 ky:
Tuy nhin thoi dim giai phng kha cung c th pht sinh vn d nhu v du sau dy.
Tim T
14
T
15
T
16
t
1
Begin Transaction
t
2
Write lock(X)
t
3
Read(X)
t
4
Read lock(Y)
t
5
Read(Y)
t
6
X = X + Y
t
7
Write(X);
t
8
Unlock(X); Begin Transaction
t
9
: Write lock(X)
t
10
: Read(X);
t
11
: X = X + 100 ;
t
12
: Write(X);
t
13
: Unlock(X)
t
14
: :
t
15
roolback : Begin Transaction
t
16
Roolback Read lock(X)
t
17
:
t
18
Roolback
Bang 19. L|ch trnh cun nhiu tng (cascade rollback).
Khi T14 tht bai v phai cun lai, th T15 cung phai cun lai theo v T15 d doc
gi tri ghi boi T14. Tuong tu, T16 cung phu thuc T15, nn n cung phai bi cun lai.
Tnh hung m o d mt GD dn dn mt chui cun lai, duoc goi l cun nhiu tng.
Ta khng mun xay ra tnh hung ny, v n c th dn dn vic phai huy di mt
luong cng vic kh lon. Mt cch d trnh tnh hung ny l chi giai phng tt ca
kha o cui GD. Kha hai ky bin di ny goi l kha hai ky nghim ngt (rigorous
2PL). Mt bin di cua kha hai ky khc nua goi l kha hai ky cht ch (strict 2PL)
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 81
o d chi giu cc kha ghi dn cui GD. Hu ht cc HQTCSDL du ci dt mt trong
hai bin di ny.
Mt vn d khc nay sinh cua kha hai ky nua d l n c th dn dn kha cht
(deadlock), v cc GD c th doi nhn kha trn cc muc du liu. Nu hai GD doi
nhn cc kha trn cc muc m d duoc giu boi di phuong, th kha cht s din ra
v v vy ta cn c mt co ch pht hin kha cht v phuc hi n. Ta s thao lun
kha cht trong phn k.
Cc GD cung c th bi dn dn tnh trang kha sng (livelock), nghia l, bi bo o
tnh trang cho mi mi, khng th dat duoc thm kha moi no, mc d HQTCSDL
khng bi kha cht. Diu ny c th xay ra khi giai thut cho khng cng bng v
khng xem xt dn thoi gian m GD d doi. D trnh kha sng, mt h thng uu tin
duoc su dung, noi m mt GD cng cho lu th d uu tin cua n cng cao. Hoc su
dung mt hng doi theo kiu dn truoc duoc phuc vu truoc.
2.5.2.4.1 Kha cht (dead lock)
Dinh nghia:
Kha cht l mt tnh hung b tc khi hai hay nhiu GD dang cho ln nhau d
c duoc cc kha dang giu boi di phuong.
Time T
17
T
18
t
1
Begin Transaction
t
2
Write lock(X) Begin Transaction
t
3
Read(X) Write lock(Y)
t
4
X = X 10 Read(Y)
t
5
Write(X); Y = Y + 100
t
6
Write lock(Y) Write(Y);
t
7
WAIT Write lock(X)
t
8
WAIT WAIT
t
9
WAIT WAIT
t
10
WAIT
t
11

Bang 20. Tnh trng kha cht
Bang 20 minh hoa hai GD T17 v T18 dang o tnh trang kha cht:
O thoi dim t2, GD T17 yu cu v dat duoc kha ghi trn X. O thoi dim t3, GD
T18 dat duoc kha ghi trn Y. Sau d, tai thoi dim t6, T17 yu cu kha ghi trn Y.
V T18 dang giua kha trn Y, T17 phai doi. Trong khi d, tai thoi dim t7, T18 yu
cu kha trn X, m kha ny dang bi T17 giu.
Ca hai GD khng th tip tuc boi v mi GD dang cho nhn kha, v n khng
th nhn duoc cho dn khi GD kia hon thnh. Mt khi xay ra kha cht, cc ung dung
lin quan khng th giai quyt vn d. Thay vo d, HQTCSDL phai pht hin ra su
tn tai kha cht v ph di tnh trang ny bng mt cch no d.
Tht khng may l chi c mt cch d ph bo tnh trang kha cht l huy bo mt
hoc nhiu GD. Diu ny lin quan dn vic huy bo tt ca cc thay di d duoc thuc
hin boi cc GD ny. Vic giai quyt tnh trang kha cht phai duoc trong sut di voi
nguoi dng, v v vy HQTCSDL phai tu dng bt du lai cc GD d bi huy.
Cc k thut xu l kha cht
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 82
C hai k thut thng thuong duoc dng d xu l kha cht l: ngn chn kha
cht v pht hin phuc hi kha cht.
Su dung k thut ngn chn kha cht, HQTCSDL phai nhn truoc d xc dinh
liu mt GD c kha nng gy ra kha cht hay khng, v khng bao gio d n xay ra.
Su dung k thut pht hin v phuc hi kha cht, HQTCSDL cho php kha
cht xay ra nhung pht hin su xut hin cua n v ph n di. V vic pht hin v ph
kha cht d hon l ngn chn n, c nhiu h thng su dung k thut ny hon.
Ngn ch}n kha cht
Mt cch c th ngn chn kha cht l ra lnh cho cc GD su dung cc nhn thoi
gian, m chng ta s thao lun trong phn k tip. C hai giai thut duoc d nghi boi
Rosenkrantz et al. (1978):
Mt giai thut l Wait-Die: chi cho php mt GD cu hon doi mt GD moi hon, nu
khng GD d s bi huy (die cht) v khoi dng lai voi cng nhn thoi gian, d cui cng n
s tro thnh GD dang hoat dng cu nht v s khng cht nua.
Giai thut thu hai, Wound-Wait, su dung mt tip cn nguoc lai: chi c mt GD moi
c th doi mt giao dich cu hon. Nu mt GD cu hon yu cu mt kha dang duoc giu boi
mt GD moi hon, th GD moi hon s bi huy (wounded bi tn thuong).
Pht hin kha cht
Pht hin kha cht thuong duoc quan l boi vic xy dung mt d thi cho
(wait-for graph WFG), cho thy su phu thuc cua cc GD. Mt GD Ti duoc goi l
phu thuc vo Tj, nu GD Tj dang giu cc kha trn
mt muc du liu m Ti dang cho.
D thj ch duoc xy dung nhu sau:
Tao mt nt cho mi GD
Tao mt canh truc tip tu Ti dn Tj, nu GD Ti
dang cho d kha mt muc m dang bi kha boi Tj.
Kha cht tn tai khi v chi khi d thi cho chua
mt chu trnh (Holt, 1972). Hnh 17 minh hoa d thi cho cua cc giao dich trong bang
20. R rng tn tai mt chu trnh trong d thi , v vy chng ta c th kt lun rng h
thng bi kha cht.
V d thi cho c chu trnh l diu kin cn v du d tn tai kha cht, nn giai
thut pht hin kha cht s sinh ra d thi vo nhung khoang thoi gian dinh ky v kim
tra xem c chu trnh khng.
Vic chon lua khoang thoi gian giua hai ln thuc hin cua giai thut l quan
trong. Nu khoang thoi gian ny l nho qu, th vic pht hin kha cht s mt mt
khoang thoi gian kh lon; nu khoang thoi gian ny l qu lon, th kha cht c th s
khng bi pht hin trong mt khoang thoi gian di.
Mt giai thut pht hin kha cht dng c th bt du voi mt khoang thoi
gian no d. Nu khng pht hin duoc kha cht no, th khoang thoi gian s tng
ln, chng han nhn ln gp di, v mi ln pht hin duoc kha cht, th khoang thoi
gian s duoc giam xung, chng han, bng nua khoang thoi gian truoc d, voi gia
thuyt l khng vuot qu mt gioi han trn v duoi cho truoc.
T
15
T
14
Hnh 17. D th ch c chu trnh
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 83
Su dung kha kt hop voi giao thuc kha hai ky s dam bao tnh kha tun tu
cua cc lich trnh. Thu tu cua cc GD trong mt lich trnh tun tu tuong duong dua
trn thu tu m trong d cc GD kha cc muc du liu chng cn. Nu mt GD cn mt
muc du liu d bi kha, n c th bi buc phai doi cho dn khi muc d duoc giai
phng. Mt tip cn khc cung dam bao tnh kha tun tu l su dung cc nhn thoi gian
trn giao dich d sp xp su thuc hin cua GD d tao thnh mt lich trnh tun tu
tuong duong.
2.5.3 Nhn thi gian (timestamp)
Cc phuong php dng nhn thoi gian d diu khin canh tranh th hon ton
khc voi phuong php kha cht. V khng h c kha, nn cung khng c kha cht.
Cc phuong php kha cht ni chung ngn chn xung dt bng cch buc cc GD
phai doi. Voi cc phuong php nhn thoi gian, hon ton khng c cho doi; cc GD c
xung dt chi don gian l bi cun lai v duoc khoi dng lai.
Nhn thi gian cua mt GD l mt dinh danh duy nht duoc tao ra boi
HQTCSDL cho thy thoi dim bt du tuong di cua GD d.
Cc nhn thoi gian (TG) c th duoc tao ra mt cch don gian bng cch su
dung dng h cua h thng o thoi dim GD bt du, hoc bng cch tng mt con s
dm lun l mi khi mt GD moi bt du.
Djnh nhn thi gian (timestamping) l mt giao thuc diu khin canh tranh m
trong d muc tiu co ban l sp xp cc GD mt cch ton cuc theo mt cch m cc
GD cu hon, nghia l GD voi nhn TG nho hon, s duoc uu tin hon khi c xung dt.
Voi k thut dinh nhn TG, nu mt GD mun doc hoc ghi mt muc du liu,
th:
Cc thao tc ny chi duoc php thuc hin nu cp nht cui cng trn muc du
liu d duoc thuc hin boi mt GD cu hon.
Nu nguoc lai, GD dang mun doc/ghi s phai khoi dng lai v duoc cp cho
mt nhn TG moi. Cc nhn TG moi phai duoc cp cho cc GD khoi dng lai d trnh
cho chng khng tip tuc bi huy v khoi dng lai nua. Nu khng c cc nhn TG
moi, mt GD voi mt nhn TG cu s c th s khng c kha nng hon tt v cc GD
tre hon khc d duoc hon tt.
Ngoi cc nhn TG cho cc GD, cn c nhn TG cho cc muc du liu. Mi muc
du liu chua mt nhn dc (read-timestamp), ghi nhn nhn TG cua GD cui cng d
doc n v mt nhn ghi (write-timestamp), ghi nhn nhn TG cua GD cui cng d
ghi vo muc d. Voi mi GD T voi nhn ts(T), giao thuc sp xp nhn TG s hoat
dng nhu sau:
Truong hop giao dich T pht ra mt lnh read(x):
Nu GD T yu cu doc 1 muc du liu (x) d duoc cp nht boi mt GD moi
hon; nghia l ts(T)< write_timestamp(x).
Diu ny nghia l mt GD truoc d dang c gng doc gi tri cua mt muc du
liu d duoc cp nht boi mt GD sau. Giao dich truoc d d qu tr d doc mt gi tri
cu truoc d, v bt ky cc gi tri no khc n dang c duong nhu khng nht qun voi
gi tri d cp nht trn muc d.
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 84
Trong truong hop ny, GD T phai bi huy v khoi dng lai voi mt nhn TG
moi.
Nguoc lai, nu ts(T) write_timestamp(x), th thao tc doc c th tin hnh. Khi
d, chng ta dt lai read_timestamp(x) = max (ts(T), read_timestamp(x)).
Truong hop giao dich T pht ra lnh write(x):
Nu GD T yu cu ghi trn mt muc du liu (x) m gi tri cua n d duoc doc
boi mt GD moi hon; nghia l, ts(T) < read_timestamp(x).
Diu ny c nghia l GD sau d su dung gi tri hin tai cua muc du liu v nu
by gio cp nht n s dn dn li. Diu ny xay ra khi mt GD bi tr trong vic ghi v
mt GD moi hon d doc gi tri cu hoc d ghi vo d mt gi tri moi hon.
Trong truong hop ny, giai php duy nht l cun GD T v khoi dng lai n su
dung mt nhn TG moi hon.
Hoc nu GD T yu cu ghi trn mt muc du liu (x) m gi tri cua n d duoc
ghi boi mt GD moi hon; nghia l, ts(T) < write_timestamp(x).
Diu ny nghia l GD T dang mun ghi mt gi tri li thoi cua x. GD T phai
duoc cun lai v khoi dng lai voi mt nhn TG moi hon.
Nguoc lai, thao tc ghi c th duoc tin hnh. Khi d, chng ta s dt lai
write_timestamp(x) = ts(T).
Su sp xp ny, duoc goi l k thut sp xp nhn TG co ban (basic timestamp
ordering), dam bao rng cc GD l kha tun tu xung dt, v cc kt qua l tuong
duong voi mt lich trnh tun tu trong d cc GD duoc thuc hin theo thu tu thoi gian
ghi trn cc nhn TG. Hay ni khc hon, cc kt qua s ging nhu ton b GD 1 duoc
thuc hin xong, sau d ton b GD 2 duoc thuc hin v cu nhu th, khng h xen k.
Tuy nhin k thut sp xp nhn thoi gian co ban ny khng dam bao cc lich trnh l
kha phuc hi.
2.6 Cc k thut lac quan (optimistic techniques)
Trong mt s mi truong, cc xung dt giua cc GD him khi xay ra, v cc xu
l thm vo boi cc giao thuc kha v nhn thoi gian l khng cn thit cho nhiu GD.
Cc k thut lc quan dua trn gia thit rng xung dt th him, v s hiu qua
hon nu cho php cc GD duoc tin hnh m khng cn bt chng phai tr hon d
dam bao tnh kha tun tu (Kung & Robinson, 1981).
Khi mt giao dich mun hon tt, h thng moi kim tra xem liu c xung dt d
xay ra hay khng. Nu c xung dt, th GD phai bi huy v khoi dng lai. V gia thit l
xung dt him xay ra, nn vic cun lai cung s him.
Cc k thut lac quan ny tao co hi canh tranh nhiu hon cc k thut cu, v
chng khng di hoi phai kha du liu.
Giao thc diu khin cnh tranh lc quan: Mt GD s tri qua ba ky nu l
GD cp nht, v tri qua 2 ky nu l GD chi doc:
Ky dc: ky ny ko di tu lc bt du GD cho dn ngay truoc hnh dng
commit. GD doc cc gi tri cua tt ca cc muc du liu n cn tu CSDL v luu chng
vo cc bin cuc b. Cc cp nht s duoc p trn ban sao chp cuc b cua du liu,
khng phai trn CSDL.
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 85
Ky kim tra: Ky ny theo sau ky doc. Cc kim tra s duoc thuc hin d dam
bao tnh kha tun tu khng bi vi pham nu cc cp nht cua GD duoc dua vo CSDL.
Di voi cc GD chi doc, diu ny bao gm vic kim tra xem cc gi tri du liu
d doc vo cc bin vn cn l cc gi tri hin hnh trong cc muc du liu tuong ung.
Nu khng c su can thip no d din ra, th GD duoc hon tt. Nu khng, GD phai
bi huy v khoi dng lai.
Di voi mt GD c cp nht, vic kim tra bao gm vic xc dinh liu GD d c
dua CSDL v mt tnh trang nht qun voi tnh kha tun tu duoc duy tr hay khng.
Nu khng th GD phai bi huy.
Ky ghi: Ky ny theo sau ky kim tra thnh cng di voi cc giao dich cp nht.
Trong ky ny, cc cp nht d thuc hin trn bin cuc b s duoc chp vo CSDL.
Ky kim tra kim tra cc thao tc doc v ghi cua cc GD l cc thao tc c th
xen k nhau. Mi GD T duoc gn:
Mt nhn Start(T) ghi nhn thoi dim bt du thuc thi GD,
Mt nhn Validation(T) tai thoi dim bt du vo ky kim tra,
V mt nhn Finish(T) ghi nhn thoi dim kt thc (bao gm ca ky ghi nu c).
D c th thnh cng vuot qua ky kim tra, mt GD T phai thoa mt trong cc
diu kin sau:
1. Tt ca cc GD S voi nhn TG som hon T phai hon thnh truoc khi GD T bt
du: nghia l Finish(S) < Start(T)
2. Nu GD T bt du truoc khi mt GD truoc d S kt thc, th:
a. Tp hop cc muc du liu duoc ghi boi GD truoc d khng phai l cc
muc duoc doc boi giao dich hin tai; v,
b. GD truoc d phai hon tt ky ghi cua n truoc khi GT hin tai di vo ky
kim tra; nghia l, Start(T) < Finish(S) < Validation(T)
Lut 2a dam bao cc thao tc ghi cua GD truoc d khng duoc doc boi GD hin
tai; lut 2b dam bao cc thao thc ghi duoc thuc hin mt cch tun tu, khng th gy
xung dt.
Mc d cc k thut lac quan l rt huu hiu khi c t xung dt, chng c th dn
dn su cun lai cua cc GD mt cch don le. Ch rng hnh dng cun lai chi lin
quan dn cc ban sao chp du liu cuc b, v vy khng c tnh hung phai cun nhiu
tng, v cc thao tc ghi thuc su chua dung dn CSDL. Tuy nhin, nu GD bi huy d l
mt GD di, th ta s mt di thoi gian xu l qu bu, v GD phai duoc khoi dng lai.
Nu trong mt mi truong m vic cun lai ny xay ra thuong xuyn, th dy l
mt du hiu cho thy khng nn lua chon phuong php lac quan d diu khin canh
tranh trong mi truong d.
2.7 m[n ca mc d liu (data granularity)
2.7.1 [nh ngha:
D min l kch c cua muc du liu duoc chon nhu l mt don vi bao v boi giao
thuc diu khin canh tranh.
Tt ca cc giao thuc diu khin canh tranh m chng ta d thao lun du gia su
CSDL bao gm mt s luong cc muc du liu, m ta chua dinh nghia khi nim ny.
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 86
Mt muc du liu din hnh duoc chon nhu l mt trong nhung thu c kch c tu
lon dn nho sau dy:
- Ton b CSDL
- Mt tp tin (file)
- Mt trang tin (page), di khi cn goi l mt vng hay mt khng gian
CSDL mt doan dia vt l noi luu tru cc quan h
- Mt mu tin (record)
- Mt gi tri cua mt truong trong mt mu tin.
Kch c hay d min cua cc muc du liu bi kha trong mt thao tc c anh huong
quan trong dn hiu qua chung cua mt giai thut diu khin canh tranh.
Tuy nhin, c mt vi thoa hip ta cn luu khi chon lua kch c cua muc du
liu. Chng ta s thao lun cc thoa hip ny trong ngu canh cua kha cht, mc d
cc l l tuong tu c th thuc hin cho cc k thut diu khin canh tranh khc.
Xt mt GD cp nht mt b trong mt quan h. Giai thut diu khin canh tranh
c th cho php GD chi kha trn b d thi, nghia l d min cua du liu bi kha l
mt mu tin don le. Mc khc, chng cung c th kha ton b CSDL, nghia l d min
l ton b CSDL. Trong truong hop thu 2, d min ny s ngn khng cho bt cu GD
no khc thuc hin cho dn khi kha duoc mo. R rng dy l diu ta khng mun.
Mc khc, nu mt GD cp nht dn 95% s mu tin trong mt tp tin, th vic cho
php n kha ton b tp tin d thay v kha tung mu tin mt s hiu qua hon nhiu.
V vy, muc du liu cng lon, th muc d canh tranh cho php s cng thp.
Nguoc lai, muc du liu cng nho, th thng tin v kha cht cn luu tru s cng nhiu.
Kch c tt nht phai ty thuc vo ban cht cua cc giao dich: Nu mt giao dich
thuong truy cp mt s luong mu tin nho, th d min cua muc du liu o muc mu tin
s thun loi hon. Nguoc lai mt giao dich thuong truy nhiu mu tin cua cng mt tp
tin, th s tt hon nu ta chon d min cua muc du liu l vng hay tp tin d giao dich
c th xem xt tt ca cc mu tin d nhu mt (hay mt vi) muc du liu.
Mt s k thut d duoc dua ra c h tro kch c muc du liu dng (dynamic).
Voi cc k thut ny, ty thuc vo loai giao dich dang thuc hin, muc du liu s c
kch c thay di sao cho ph hop nht.
Mt cch l tuong, HQTCSDL nn h tro kha voi d min hn hop gm cc
mu tin, trang tin v tp tin. Mt s h thng tu dng nng cp d min cua cc kha tu
mu tin hoc trang tin ln tp tin nu mt GD no d dang kha nhiu hon mt ti l
phn trm cc mu tin hoc trang tin no d trong tp tin.
I.1.2. S phn cp cua d m|n
Chng ta s biu din cc d min cua kha trn mt cu trc phn cp noi m
mi nt s biu din cho cc muc du liu voi cc kch c khc nhau, nhu trong hnh 18.
Mi khi mt nt bi kha th tt ca cc nt con chu cua n cung s bi kha. V du,
nu mt GD kha trang page2, th tt ca cc record v cc field cua chng du s bi
kha. Nu mt GD khc yu cu mt kha khng tuong thch (incompatible) trn cng
mt nt, th HQTCSDL bit l khng th cp kha d.
Nu mt GD khc yu cu mt kha trn bt ky nt con no cua mt nt d bi
kha, HQTCSDL s kim tra con duong phn cp tu nt gc dn nt duoc yu cu d
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 87
xc dinh liu bt ky nt t tin no cua n bi kha hay khng truoc khi quyt dinh cp
kha.
V vy, nu ta dang yu cu mt kha ghi trn record Record1, HQTCSDL s
kim tra cha cua n (Page2), ng cua n (File2), v ban thn cua nt CSDL (Database)
d xc dinh xem c nt no bi kha hay khng.
Khi n pht hin Page2 d bi kha, th n s tu
chi yu cu.
Hay trong truong hop mt GD yu cu
kha trn mt nt v mt nt con chu cua nt
ny dang bi kha.
V du nhu yu cu kha trn File2,
HQTCSDL s kim tra mi trang trong file ny,
mi record trong cc trang d, v mi field
trong mi record d xem c nt no bi kha hay
khng.
D lm giam cng vic tm kim ny,
HQTCSDL su dung mt kiu kha moi goi l
kha da ht (multiple-granularity locking). Khi
mt nt no d bi kha, th mt kha intention
s duoc dt ln tt ca cc nt t tin cua nt d.
V vy, nu mt nt con chu cua File2 bi kha
v c mt yu cu kha trn nt File2 th su
hin din cua kha intention trn File2 s cho
bit l c mt nt hu du cua n d bi kha.
Kha intention c th l Shared (chia se d
doc) hoc eXclusive (dc quyn d ghi). Mt
kha Intention Shared (IS) chi mu thun voi mt
kha dc quyn; Mt kha Intention eXclusive
(IX) mu thun voi ca kha shared v exclusive,
v.v... Kha S v IX l khng tuong thch; tuy
nhin, nu 2 kha ny l cua cng 1 giao dich yu
cu th h thng s cp 1 kha cho n goi l kha
SIX
D dam bao tnh kha tun tu voi cc muc kha khc nhau, mt giao thuc kha
hai ky duoc su dung nhu sau:
Khng c kha no duoc cp mt khi c bt ky nt no d duoc giai phng
Khng c nt no bi kha cho dn khi cc nt cha cua n bi kha boi mt kha
Intention.
Khng c nt no duoc giai phng cho dn khi tt ca cc nt con chu cua n
duoc giai phng.
Bng cch ny, cc kha duoc p dung tu trn gc xung, su dung cc kha
intention cho dn giai doan nt dat duoc kha doc hoc kha ghi tht su v cc kha s
duoc giai phng tu duoi ln.
Tuy nhin, kha cht vn c th xay ra v phai duoc xu l nhu d thao lun o
trn.
Page1
Record 2
Field 1
Hnh 18. S phn cp cua d m|n
File1 File 3 File 2
Page 3
Page 2
Record 1
Field 2
Database
IS IX S SIX X
IS X
IX X X X
S X X X
SIX X X X X
X X X X X X
Bang 21. S tuong thch cua cc
kha trong co ch kha da ht
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 88
3 Phc hi CSDL
Phuc hoi CSDL (DB recovery) l qu trnh khi phuc CSDL v trang thi dng
khi c li xay ra.
3.1 S cn thit phi phc hi d liu
Vic luu tru du liu thng thuong bao gm bn loai thit bi voi muc d tin cy
tng dn l: b nho trong, dia tu, bng tu v dia quang.
B nho trong l b luu tru khng on dinh (volatile), du liu s bi mt khi h
thng c su c, cc thit bi cn lai l cc thit bi on dinh (non-volatile).
H thng c bo luu tr on dinh (stable storage) l h thng luu tru thng tin lp
lai trong nhiu thit bi n dinh (thuong l dia) voi cc co ch chiu li dc lp nhau. V
du nhu, ta c th m phong b luu tru n dinh bng cng ngh RAID d d cp o
chuong 1.
C rt nhiu loai li c th anh huong dn vic xu l cua CSDL, mi loai phai
duoc xu l khc nhau. Mt vi li chi anh huong dn b nho trong, trong khi cc loai
khc lin quan dn b luu tru n dinh. Mt s nguyn nhn gy li l:
H thng bi ngung lai (crash) do li phn cung hay phn mm, dn dn mt du liu
trong b nho trong.
Li thit bi luu tru, nhu du doc bi hu hoc thit bi khng doc duoc, lm mt mt
phn du liu trong b luu tru thu cp.
Li phn mm ung dung, nhu l cc li lun l trong chuong trnh truy cp CSDL,
lm cho mt hoc nhiu GD bi tht bai.
Thin tai nhu lua, lu lut, dng dt; hoc mt din.
Su bt cn hay su ph huy du liu hoc phuong tin khng c chu boi nguoi su
dung
Cc hnh dng ph hoai du liu, cc thit bi phn cung hoc phn mm c chu .
Cho d l nguyn nhn g, th c hai anh huong chu yu m chng ta cn quan
tm l mat d liu trong bo nho trong, bao gom cc vng dm CSDL; v mat ban sao
chp cua CSDL trong dia. Trong phn cn lai cua chuong ny chng ta s thao lun
cc khi nim v k thut dng d giam thiu cc anh huong ny v cho php phuc hi
sau su c.
3.2 Cc GD v s phc hi
Cc GD dai din cho don vi phuc hi co ban trong mt h thng CSDL. Khi c
li xay ra, vic dam bao hai trong bn tnh cht ACID cua giao dich, tnh nguyn tu v
tnh bn vung, l vai tr cua b quan l phuc hi.
B phn ny phai dam bao rng khi phuc hi sau li, th hoc l tt ca cc anh
huong cua mt GD cho truoc l duoc ghi nhn vinh cuu trong CSDL hoc khng c
anh huong no duoc ghi. Dy l diu khng don gian v cc thao tc ghi trong CSDL
khng phai l mt hnh dng nguyn tu, v v vy c th dn dn truong hop mt GD
d hon tt, nhung cc anh huong cua n th chua duoc ghi vinh cuu vo CSDL don
gian boi v n chua cham dn CSDL (m chi ghi nhn trong b nho trong).
Chi khi no cc vng dm cho CSDL trong b nho duoc day ra (flush) b luu tru
thu cp th cc thao tc cp nht moi duoc xem nhu l vinh cuu. Hnh dng flush ny
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 89
c th duoc by bng cc lnh cu th (nhu commit GD), hoc xay ra mt cch tu dng
khi vng dm dy. Hnh dng ghi vng dm mt cch tuong minh th duoc goi l ghi-
p-buoc (force-writing).
Nu c su c xay ra giua cc ln ghi vng dm ra b luu tru thu cp, th b quan
l phuc hi phai xc dinh tnh trang cua GD d thuc hin hnh dng ghi tai thoi dim
xay ra li:
Nu GD d hon tt, tuc l d ra lnh commit, th d dam bao tnh bn vung, b
quan l phuc hi phai redo cc cp nht cua GD d ln CSDL (diu ny goi l cun
tin rollforward).
Nguoc lai, nu GD chua ra lnh commit tai thoi dim xay ra li, th b quan l
phuc hi s phai undo (hay cun nguoc lai rollback) moi anh huong cua n trn CSDL
d dam bao tnh nguyn tu cua GD.
Hnh 19 minh hoa mt s GD dang thuc hin canh tranh T1 ..T6:
HQTCSDL bt du tai thoi dim t0, nhung bi su c tai thoi dim tf. Chng ta giai
thit rng du liu cho GD T2 v T3 d duoc ghi ra b luu tru thu cp truoc khi c li.
R rng T1 v T6 chua hon tt o thoi dim xay ra su c; v vy, khi khoi dng
lai, b quan l phuc hi phai undo cc GD T1 v T6.
Tuy nhin, cc anh huong cua cc GD d hon tt d duoc chp vo CSDL trong
b luu tru thu cp dn du th khng r, v cc vng dm CSDL trong b nho c th d
chp ra dia,cung c th chua. V vy, HQTCSDL phai redo tt ca cc GD T2, T3, T4
v T5.
T1
T2
T3
T4
T5
T6

t
0
t
C
t
f

Hnh 19. S c xay ra khi cc GD dang thc hin cnh tranh
3.3 Cc tin ch d phc hi
Mt HQTCSDL c th cung cp cc tin ch sau d gip cho vic phuc hi:
Mt co ch sao luu, d tao cc ban sao chp dinh ky luu lai cua CSDL.
Cc phuong tin ghi nht k, d theo di tnh trang hin tai cua cc GD v cc
thay di cua CSDL.
Mt phuong tin kim tra, d cho php cc cp nht dang thuc hin trn CSDL
c th duoc chp ra vinh cuu.
Mt b quan l phuc hi, cho php h thng phuc hi CSDL v tnh trang nht
qun sau su c.
3.3.1 Co ch sao luu
HQTCSDL phai cung cp co ch d chp cc ban sao cua CSDL v tp tin nht
k tai trong cc khoang thoi gian dinh truoc m khng cn phai tam ngung h thng.
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 90
Ban sao luu cua CSDL c th l ton b CSDL hoc chi sao luu cc thay di moi
(incremental backup). Ban ny chi chua cc thay di d thuc hin k tu ln sao luu
truoc. Thng thuong, cc ban sao luu ny duoc luu trong b luu tru offline nhu bng
tu.
3.3.2 Tp tin nht k
D theo di cc GD trong CSDL, HQTCSL duy tr mt tp tin dc bit goi l log
(hay journal) chua cc thng tin v tt ca cc cp nht trn CSDL. Tp tin nht k c
th gm cc du liu sau:
Mu tin GD, chua:
o Dinh danh cua GD.
o Kiu mu tin nht k (GD bt du, xen, cp nht, xo, huy, hon tt).
o Dinh danh cua muc du liu bi anh huong boi thao tc cp nht trn CSDL
(xen, xo, sua).
o Hnh-anh-truoc (before-image) cua muc du liu: d l gi tri truoc khi thay
di (nu l xo hay cp nht)
o Hnh-anh-sau (after-image) cua muc du liu: d l gi tri sau khi thay di
(nu l xen hoc sua).
o Cc thng tin quan l nht k, nhu con tro dn mu tin nht k k truoc v
k tip cho GD d.
Mu tin kim tra.
Ngoi muc dch phuc vu cho phuc hi CSDL, nht k cn duoc dng cho vic
quan l hiu qua v kim tra. V vy, n cn cn phai luu thm thng tin v vic doc
CSDL, cc dng nhp, dng xut cua nguoi dng, v.v...
Tid Time Operation Object Before
Image
After Image PPtr NPtr
T1 10:12 START 0 2
T1 10:13 UPDATE STAFF SL21 (old val.) (new val.) 1 7
T2 10:14 START

0 4
T2 10:16 INSERT STAFF SG37 (new val.) 3 5
T2 10:17 DELETE STAFF SA9 (old val.)

4 9
T3 10:18 START

0 10
T1 10:18 COMMIT

2 0

10:19 CHECK POINT T2, T3

T2 10:19 COMMIT

5 0
T3 10:20 INSERT PROPERTY PG4 (new val.) 6 11
T3 10:21 COMMIT

10 0
Bang 22. Mt don cua tp tin nht k, trong d c 3 GD dang din ra song song.
3.3.3 Xc lp thi dim kim tra (checkpointing)
Cc thng tin trong tp tin nht k duoc dng d phuc hi CSDL bi li. Mt kh
khn nay sinh cho co ch ny l khi c li xay ra, chng ta khng bit phai luc lai tp
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 91
tin nht k bao xa d trnh phai redo lai cc GD d duoc ghi ra CSDL mt cch an
ton. D han ch vic tm kim v cc xu l cn thuc hin trn tp tin nht k, chng
ta su dung mt k thut xc lp thoi dim kim tra (checkpointing).
im kim tra (checkpoint) l mt dim m tai d su dng b giua CSDL v tp
tin nht k GD duoc ghi nhn. Khi d, tt ca cc vng dm phai duoc ghi-p-buc ra
b luu tru thu cp.
Cc dim kim tra duoc lp lich tai cc khoang thoi gian dinh truoc v tai dim
kim tra, cc thao tc sau s duoc tin hnh:
Ghi tt ca cc mu tin nht k c trong b nho trong ra b luu tru thu cp
Ghi cc khi d duoc sua di trong vng dm CSDL ra b luu tru thu cp.
Ghi mt mu tin kim tra vo tp tin nht k. Mu tin ny chua cc dinh danh cua
cc GD dang hoat dng tai thoi dim kim tra.
Nu cc GD thuc hin tuan tu:
Khi c li xay ra chng ta chi cn kim tra tp tin nht k d tm ra GD cui
cng khoi dng truoc thoi dim checkpoint cui cng. Bt cu GD no d hon tt
truoc thoi dim ny, du d duoc ghi ra ngoi tai thoi dim kim tra.V vy, chng ta
chi cn:
Redo GD dang hoat dng tai thoi dim kim tra v cc GD theo sau m c ca hai
mu tin start v commit cua chng xut hin trong nht k.
Undo lai GD dang hoat dng tai thoi dim xay ra li, tuc l GD chi c mu tin
start.
Nu cc GD thuc hin song song: Th chng ta:
Redo tt ca cc GD d hon tt k tu dim kim tra
Undo tt ca cc GD dang hoat dng tai thoi dim xay ra su c.
Xt hnh 19, nu ta gia su dim kim tra xay ra tai thoi dim tc, th:
Di voi T2 v T3: chng ta bit rng cc thay di boi T2 v T3 d duoc ghi vo
b luu tru thu cp. V vy, b quan l phuc hi khng cn redo cho hai GD ny.
Di voi T4 v T5: th ta phai redo, v hai GD ny hon tt sau thoi dim kim tra.
Di voi T1 v T6: th ta phai undo, v hai GD ny dang hoat dng tai thoi dim
xay ra su c.
Ni chung, checkpointing l mt thao tc kh re, v n thuong duoc thuc hin
khoang 4 ln trong 1 gio. Bng cch ny, ta s khng phai phuc hi nhiu hon luong
cng vic trong khoang 15-20 pht.
3.3.4 Cc k thut phc hi
Ty theo muc d CSDL bi hu m thu tuc phuc hi s khc nhau. Ta xt hai tnh
hung:
Nu CSDL bi hu, khng doc duoc nua, th ta cn su dung ban sao luu cui cng
v chay lai cc thao tc cua cc GD hon tt d ghi nhn trong tp tin nht k.
Nu CSDL khng bi hu vt l nhung tro nn khng nht qun, chng han nhu
khi h thng bi treo khi dang thuc hin giao dich, th ta cn undo cc thay di gy ra
tnh trang khng nht qun. Cung c th phai redo mt s giao dich d dam bao cc
cp nht cua n duoc luu ra b luu tru thu cp. Chng ta s xem xt hai k thut d
phuc hi cho truong hop ny l cap nhat tr hon (deferred update) v cap nhat tuc th
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 92
(immediate update). Ngoi ra, cn c mt k thut khc nua d l tao trang bng
(shadow paging).
3.3.4.1 Cp nht tr hon
tuong chu yu l tr hon cc cp nht thuc su ln CSDL cho dn khi GD kt
thc thnh cng v dat dn dim hon tt. Trong khi GD dang thuc hin, cc cp nht
chi ghi nhn trong nht k v trong khng gian thuc hin cua GD. Sau khi GD di dn
dim hon tt v nht k duoc ghi-p-buc ra dia, cc cp nht moi duoc ghi vo
CSDL. Nu 1 GD tht bai truoc khi dn lc hon tt, th khng cn phai undo bt cu
thao tc no, v GD chua anh huong g dn CSDL.
Cc buoc lin quan dn giao thuc cp nht tr hon nhu sau:
1. Khi 1 GD T bt du, mu tin start_transaction(T) duoc ghi vo nht k GD;
2. Khi c mt thao tc cp nht ln muc x cua CSDL th mu tin write_item(T, x,
old_value, new_value) duoc ghi vo nht k;
3. Khi mt GD sp sua hon tt, th ghi vo nht k commit(T), ghi tt ca cc mu
tin trong nht k ra dia;
4. Hon tt GD, su dung nht k d cp nht CSDL, vic ghi du liu ra dia khng
cn thuc hin ngay.
5. Nu GD bi huy, th lo di cc mu tin nht k v dung ghi cc thay di ra dia.
CSDL khng bao gio duoc cp nht cho dn sau khi GD hon tt, do d khng
bao gio c thao tc no cn phai UNDO. V vy, k thut ny cn duoc goi l giai
thut NO-UNDO/REDO. Hnh dng REDO l cn thit trong truong hop h thng
tht bai sau khi GD hon tt nhung truoc khi tt ca cc thay di duoc ghi vo CSDL.
Trong truong hop ny, cc thao tc s duoc thuc hin lai nho cc muc trong nht k.
Khi c su c xay ra, dua vo nht k, h thng c th xc dinh cc GD no dang
din ra tai thoi dim bi li. Bt du tu mu tin cui cng trong tp tin nht k d di
nguoc v mu tin checkpoint gn nht :
Nu GD c ca mu tin bt du v hon tt th cn phai redo n. Thu tuc redo s
thuc hin tt ca cc thao tc cp nht CSDL su dung hnh anh sau trong mu tin nht
k, theo dng thu tu n d duoc ghi vo nht k.
Nu GD c mu tin bt du v mu tin huy th ta khng cn lm g ca v chng
chua duoc ghi vo CSDL.
3.3.4.2 Cp nht tc th
Trong k thut ny, CSDL c th duoc cp nht ngay boi cc thao tc cua mt
GD, truoc khi GD tin dn dim hon tt. Tuy nhin, nhung thao tc ny duoc ghi
nhn trong nht k trn dia bng vic ghi-p-buc truoc khi chng duoc p dung vo
CSDL d c th phuc hi duoc.
Cc buoc lin quan dn giao thuc cp nht tuc th nhu sau:
1. Khi mt GD T bt du, ghi vo nht k start_transaction(T);
2. Khi c mt thao tc cp nht muc x trong CSDL, ghi vo nht k write_item(T,
x, old_value, new_value);
3. Ghi nht k ra dia;
4. Mt khi mu tin nht k d ghi xong, ghi cp nht vo vng dm CSDL;
5. Khi thun tin th ghi vng dm CSDL ra dia;
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 93
6. Khi mt GD sp sua hon tt, ghi 1 mu tin nht k commit(T);
7. Ghi nht k ra dia.
Nu h thng bi li, vic phuc hi lin quan dn vic su dung nht k d redo v
undo cc GD:
- Nu GD c ca mu tin bt du v hon tt trong nht k, th chng ta s redo
bng cch su dung hnh anh sau (new_value) trong nht k.
- Nu GD chi c mu tin bt du nhung khng c mu tin hon tt, ta cn phai
undo GD ny bng cch su dung hnh anh truoc trong mu tin nht k. Thao tc
undo s thuc hin theo thu tu nguoc lai voi thu tu cc mu tin duoc ghi vo
nht k.
3.3.4.3 To trang bng
Mt giai php khc voi co ch phuc hi bng nht k nhu hai k thut trn l tao
trang bng. Co ch ny duy tr cc bang hai-trang trong sut qu trnh thuc hin cua
GD: mt bang trang hin tai v mt bang trang bng. Khi mt GD bt du, cc bang
ny ging nhau. Bang trang bng khng bao gio thay di, v vy duoc dng d phuc
hi CSDL khi c su c xay ra. Trong sut GD, bang trang hin tai duoc dng d ghi
nhn moi thay di trn du liu. Khi GD hon tt, bang trang hin tai tro thnh bang
trang bng. K thut ny c uu dim l khng mt thoi gian duy tr nht k, v phuc
hi nhanh mt cch dng k v khng cn thuc hin undo hay redo. Tuy nhin, n
cung c nhuoc dim l phn doan du liu v cn phai thu hi rc mt cch dinh ky.
4 Qun l giao d[ch trong Oracle:
4.1 Tng quan
Trong mi truong CSDL da nguoi dng, cu lnh trong cc GD hoat dng song
song c kha nng cp nht trn cng du liu, diu ny c th dn dn du liu khng
nht qun. V th, vic diu khin tnh nht qun v tnh canh tranh du liu l rt cn
thit trong mi truong da nguoi dng.
Cc GD hoat dng song song c th gy ra cc hin tuong doc sau:
1. Doc bn (dirty read): mt GD doc du liu dang duoc vit boi mt GD khc
chua hon tt.
2. Doc lp lai (repeatable read): mt GD doc lai du liu m n d doc truoc d v
nhn ra rng du liu ny d duoc thay di hoc xo boi mt GD khc d hon
tt.
3. Doc ma (phantom read): mt GD thuc hin lai mt truy vn tra v mt tp hop
cc du liu thoa mn mt diu kin tm kim v nhn ra su c mt mt vi du
liu moi (thoa mn diu kin tm kim) vua duoc thm vo boi cc GD khc d
hon tt.
Chun SQL92 dinh nghia 4 muc c lp du liu nhm trnh cc hin tuong doc
ny:
Mc c lp Dc bn Dc l}p li Dc ma
Read Uncommitted Y Y Y
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 94
Read Committed N Y Y
Repeatable Read N N Y
Serializable N N N
Bang 23. Cc mc c lp v cc hin tung dc (Y: hin tung dc c th xay ra trong mc c lp,
N: hin tung dc khng th xay ra trong mc c lp)
Oracle cung cp 3 muc c lp: Read Committed, Serializable v Read-only
(khng thuc chun SQL92).
1. Read Commited: dy l muc c lp mc dinh cho cc GD. Mi cu truy vn
trong GD chi nhn thy cc du liu d duoc hon tt (committed) truoc khi cu
truy vn ny bt du thuc hin (khng phai GD chua cu truy vn ny). V
Oracle cho php cc GD khc thay di du liu duoc doc boi cu truy vn, nn
du liu c th bi thay di giua hai ln thuc hin cua mt cu truy vn. V th,
mt GD thuc hin mt cu truy vn nhiu ln c th gp cc hin tuong doc lp
lai v doc ma.
2. Serializable: GD o muc c lp ny chi nhn thy nhung du liu d duoc hon tt
truoc khi GD bt du v nhung du liu anh huong boi GD d thng qua cc cu
lnh INSERT, UPDATE v DELETE. GD o muc c lp ny khng gp cc hin
tuong doc lp lai v doc ma.
3. Read-only: GD o muc c lp ny chi nhn thy nhung du liu d duoc hon tt
truoc khi GD bt du v khng cho php thuc hin cc cu lnh INSERT,
UPDATE v DELETE.
Muc c lp Read Committed thch hop voi nhung mi truong trong d cc GD
rt t xung dt ln nhau. Nguoc lai, muc c lp Serializable thch hop voi cc mi
truong:
Voi CSDL lon v cc GD "ngn" chi cp nht trn t dng du liu.
Voi ty l hai GD cng thay di trn cng mt du liu l rt thp.
Voi cc GD "di" chu yu chi doc du liu.
Khi GD o muc c lp Serializable c gng cp nht hoc xo du liu duoc hon
tt boi GD khc sau khi GD ny bt du, Oracle s xut ra li:
ORA-08177: Cannot serialize access for this transaction
Khi d, trnh ung dung c th thuc hin theo mt trong cc hnh dng sau:
Hon tt cc cng vic d duoc thuc hin thnh cng truoc d.
Thuc hin thm mt s cu lnh khc d dam bao tnh ton ven cua du liu (v
du, thuc hin cun lai)
Thuc hin lai ton b GD.
Ngoi ra, Oracle cn cung cp cho nguoi dng co ch kho (locks). Kho l
nhung co ch gip nguoi dng giai quyt vn d truy xut dn cng hang muc du liu
giua cc GD khc nhau nhu bang (table) hay dng du liu (rows). Trong tt ca cc
truong hop, Oracle tu dng thu tt ca cc kho cn thit khi thuc thi mt cu lnh m
khng cn su tc dng cua nguoi dng. Oracle s p dung muc thp nht c th p
dung duoc d dam bao tnh ton ven cua du liu. Tuy nhin, Oracle vn cho php
nguoi dng tu thuc hin kho du liu.
Oracle cung cp 2 ch d kho:
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 95
Kho loai tru (exclusive lock): hang muc du liu duoc kho o muc ny s
khng th duoc chia se voi cc GD khc, muc ny ph hop khi GD mun thuc
hin nhung thay di trn hang muc du liu.
Kho chia se (shared lock): hang muc du liu duoc kho o muc ny c th duoc
chia se voi cc GD khc ph hop, thng thuong muc ny ngn chn nhung thao
tc vit trn hang muc du liu.
Kho duoc giu trong sut qu trnh GD tn tai. Oracle s giai phng kho khi
GD duoc hon tt hoc duoc thuc hin lai (undo) ton b. D nng cao muc d canh
tranh cua cc GD, Oracle chi cung cp co ch chuyn di kho v khng cung cp co
ch nng cp kho v nng cp kho rt d dn dn tnh trang kho cht (deadlock).
Oracle chia kho thnh 3 loai sau:
1. Kho d liu (DML locks): dam bao tnh ton ven cua du liu duoc truy cp
dng thoi boi cc GD khc nhau. Cc cu lnh DML c th thu ca 2 loai kho:
kho muc bang (table-level lock) v kho muc dng du liu (row-level lock)
Kho muc dng du liu (TX): duoc dng chu yu d trnh vic thay di trn
cng dng du liu cua cc GD khc nhau. Truoc khi mt GD thay di mt
dng du liu, GD d cn thu kho dng du liu. Oracle khng gioi han s
luong kho dng du liu duoc giu boi mt GD. Kho dng du liu l muc
hat min nht trong so d kho da hat cua Oracle.
Mt GD chi yu cu mt kho dng du liu loai tru (exclusive row-level
lock) khi thuc hin cu lnh INSERT, UPDATE, DELETE v SELECT FOR
UPDATE. Khi mt GD giu kho dng du liu, GD d cung giu kho muc bang
cua bang du liu tuong ung.
Kho muc bang (TM): thuong duoc dng d quan l canh tranh voi su c
mt cua cc cu lnh DDL, nhu ngn chn vic xo mt bang trong khi ban
d dang duoc thao tc boi cc lnh DML. Mt GD yu cu mt kho muc
bang khi thuc hin cu lnh INSERT, UPDATE, DELETE v SELECT FOR
UPDATE. Kho muc bang c th o nhiu ch d khc nhau: chia se dng (Row
Share RS), loai tru dng (Row Exclusive RX), chia se dng loai tru
(Share Row Exclusive SRX) v loai tru (Exclusive X).
Cu lnh SQL Ch d kho
thu duc
Ch d kho bang c th cp
pht cho cc GD khc
Dng Bang RS RX S SRX X
SELECT ... FROM table
Khng Y Y Y Y Y
INSERT INTO table ...
X RX Y Y N N N
UPDATE table ...
X RX Y* Y* N N N
DELETE FROM table
X RX Y* Y* N N N
SELECT ... FROM table
FOR UPDATE OF ...
X RS Y* Y* Y* Y* N
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 96
LOCK TABLE table
IN ROW SHARE MODE
RS Y Y Y Y N
LOCK TABLE table
IN ROW EXCLUSIVE MODE
RX Y Y N N N
LOCK TABLE table IN SHARE MODE S Y N Y N N
LOCK TABLE table
IN SHARE ROW EXCLUSIVE MODE
SRX Y N N N N
LOCK TABLE table
IN EXCLUSIVE MODE
X N N N N N
Bang 24. Bang tuong thch cua cc kho
Bang trn m ta cc ch d kho muc bang/dng thu duoc khi GD thuc hin cc
lnh DML v cc ch d kho cho php cc GD khc yu cu khi thuc hin cu lnh
DML thao tc trn cng bang du liu (Y*: cho php nu khng tn tai xung dt kho
muc d dng du liu)
2. Kho t din (DDL locks): bao v dinh nghia cua cc di tuong luoc d trong
khi di tuong d duoc thao tc hoc duoc tham chiu dn boi cc lnh DDL sp
thuc thi. Cc cu lnh DDL tu hon tt GD mt cch khng tuong minh. Mt
di tuong gian d chi duoc kho trong khi thuc hin cu lnh DDL, nguoi dng
khng th yu cu kho mt cch tuong minh v tu din du liu khng bao gio
duoc kho.
3. Kho ni ti (Internal locks): bao v cu trc b nho v cu trc bn trong
cua CSDL, nguoi dng khng th truy cp dn loai kho.
4.1.1 Cc c php
Oracle khng cung cp cu lnh tuong minh d khoi dng mt GD, cc GD duoc
khoi dng mt cch khng tuong minh trong hai truong hop sau:
Cu lnh thuc thi du tin cua mt phin lm vic moi (user session) tu khoi
dng mt GD.
Cu lnh thuc thi du tin tip theo mt GD vua duoc hon tt (committed)
tu khoi dng mt GD.
D kt thc mt GD, nguoi dng c th thuc hin mt trong cc cch sau:
Thuc thi lnh COMMIT d hon tt GD.
Thuc thi lnh ROLLBACK d cun lai GD.
Thuc thi mt lnh DDL s kt thc giao dich hin tai mt cch ngm dinh.
Kt thc phin lm vic cua nguoi dng cung kt thc GD mt cch ngm
dinh.
D thit lp muc c lp cua mt GD, ta c th thuc hin mt trong cc lnh sau:
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SET TRANSACTION READ ONLY;
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 97
D giam tai duong truyn v chi ph thuc hin cu lnh SET TRANSACTION
truoc mi GD, ta c th thuc hin cu lnh ALTER SESSION d dt tt ca cc GD sau
d bng muc c lp mong mun.
ALTER SESSION SET ISOLATION_LEVEL SERIALIZABLE;
ALTER SESSION SET ISOLATION_LEVEL READ COMMITTED;
Oracle lun tu dng thuc hin kho cc hang muc du liu d dam bao tnh ton
ven cua du liu. Tuy nhin, nguoi dng c th tu thay th ch d kho mc dinh nhm
thoa mn cc nhu cu cua trnh ung dung. Vic thay th ny rt huu ch trong cc
truong hop sau:
Ung dung yu cu vic doc bn vung hay doc lp lai o muc giao dich. Ni cch
khc, cc cu lnh truy vn trong giao dich phai phan nh tnh bn vung cua du
liu, khng bi anh huong cua nhung thay di trn du liu cua cc giao dich khc.
Giao dich c th dat dn vic doc bn vung bng cch su dung kho loai tru hay
cc muc c lp Read Only v Serializable.
Ung dung c cc giao dich hoat dng trong mi truong canh tranh ti nguyn
nhung khng mun mt giao dich phai doi mt giao dich khc hon tt d c th
tip tuc cc cu lnh bn trong n.
Nguoi dng c th kho du liu tuong minh bng cc cu lnh sau:
SET TRANSACTION ISOLATION LEVEL
LOCK TABLE
SELECT ... FOR UPDATE
5 Sao luu, phc hi trong Oracle:
Oracle su dung mt s khi nim sau trong sao luu v phuc hi:
SCN (System Change Number) l mt s dm tun tu, xc dinh chnh xc mt
thoi dim trong CSDL. S ny rt huu ch cho vic tin hnh phuc hi CSDL.
Tt ca header cua datafiles s c cng SCN khi CSDL duoc tt o ch d bnh
thuong (normal).
Checkpoint: xay ra khi tin trnh DBWR (database writer) ghi tt ca thay di
trn b nho dm trong SGA v cc datafiles. Dng thoi cc header cua
datafiles duoc cp nht SCN tai thoi dim checkpoint, ngay ca khi datafile
khng c thay di g. Checkpoint cung xay ra khi cc nhm redo log chuyn
trang thi hin thoi cho nhau (redo log switch) hay sau mt khoang thoi gian
duoc chi dinh trong tp tin cu hnh h thng.
Image copy: l ban sao cua mt datafile, mt controlfile hay mt archived log.
Backup set: l mt cu trc lun l chua dung du liu mt hoc nhiu datafiles,
archived redo logs hoc control files.
Flash Recovery Area: l noi luu tru tt ca cc tp tin lin quan dn phuc hi
CSDL nhu archive redo log, control files, tp tin sao luu tao ra boi RMAN v
nht k flashback.
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 98
5.1 Sao luu
5.1.1 Gii thiu
Trong cc h quan tri CSDL, ban sao luu l ban sao cua du liu. Ban sao ny
chua cc thnh phn quan trong cua CSDL nhu control files v data files. Ban sao luu
l mt yu t bao v chng lai cc li ung dung v su mt mt du liu khng mong doi.
Nu du liu gc bi mt, chng c th duoc xy dung lai tu ban sao luu.
Sao luu duoc chia thnh sao luu vt l (physical backup) v sao luu lun l
(logical backup).
Sao luu vt l l cng vic chu yu cua chin luoc sao luu v phuc hi
(recover) du liu, ban sao luu vt l l ban sao cua cc tp tin vt l trong
CSDL. D thuc hin sao luu vt l, ta c th su dung cng cu RMAN
(Recovery Manager) hoc cng cu cua h diu hnh (copy tp tin).
Sao luu lun l chua du liu lun l nhu bang du liu, thu tuc tru sn duoc
trch ra tu mt cng cu h tro cua Oracle v luu o dang tp tin nhi phn. Sao
luu lun l thuong duoc dng d h tro sao luu vt l.
C 2 cch thuc hin sao luu v phuc hi trong Oracle:
Su dung RMAN: mt cng cu h tro sao luu (backup), hon lai (restore) v
phuc hi (recover) cc tp tin CSDL.
Nguoi dng tu quan l: su dung cc lnh cua h diu hnh d backup v su
dung SQL*Plus d thuc hin phuc hi CSDL.
5.1.2 Phn loai sao luu
5.1.2.1 Sao luu nht qun (consistent backup)
Sao luu nht qun CSDL hay mt phn CSDL l sao luu m tt ca cc data files
v controlfiles duoc kim sot thoi dim (checkpointed) voi cng SCN. Cch duy nht
d sao luu nht qun ton CSDL l tt CSDL o ch d normal, immediate hoc
transactional v thuc hin sao luu khi CSDL d dng. Boi v, nu CSDL duoc tt o
ch d khc, v du th hin bi li hay CSDL tt o ch d abort, th cc datafiles s
khng duoc nht qun.
Oracle thuc hin nht qun ha cc datafiles v controlfiles voi cng SCN tai
thoi dim kim sot (checkpoint) CSDL. Trong qu trnh sao luu nht qun, chi cc
tablespaces o ch d chi doc (read-only) v offline duoc php c SCN cu hon so voi
thoi dim kim sot. V cc tablespaces ny vn nht qun voi cc datafiles khc do du
liu cua chng khng c thay di g moi.
Dim quan trong cua dang sao luu ny l chng ta c th mo lai CSDL ngay sau
khi hon lai ban sao nht qun ton CSDL m khng cn thuc hin thao tc phuc hi
du liu. Nghia l khng cn thao tc no ht d cc datafiles hon lai duoc dng. V
tt nhin, voi kiu sao luu ny, tt ca GD (transactions) k tu thoi dim sao luu s bi
mt vinh vin.
Sao luu nht qun l lua chon sao luu hop l duy nht cua cc CSDL hoat dng o
ch d NOARCHIVELOG, nu khng, cc thao tc phuc hi cn thuc hin d dam
bao tnh nht qun cua CSDL. O ch d ny, Oracle khng luu lai nht k lm lai
(redo logs). Sao luu nht qun ton CSDL cung l mt lua chon hop h cho CSDL
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 99
hoat dng o ch d ARCHIVELOG. Khi thuc hin hon lai, cng voi cc nht k duoc
luu tru, chng ta c th mo CSDL ngay lp tuc.
5.1.2.2 Sao luu khng nht qun (inconsistent backup)
Dy l lua chon duy nht nu CSDL phai hoat dng 24/24 v 7 ngy trong tun,
voi yu cu CSDL phai hoat dng o ch d ARCHIVELOG. Trong dang sao luu ny,
cc tp tin sao luu duoc tao tai cc thoi dim khc nhau. Diu ny c th xay ra, v cc
datafiles c th bi thay di trong qu trnh sao luu. Vic phuc hi lm cc ban sao
khng nht qun thnh nht qun bng cch doc cc nht k luu tru (archived redo log)
v lm lai (redo log), chon SCN xa nht trong tt ca header cua datafiles v phuc hi
lai du liu cua ton b CSDL tu thoi dim tuong ung voi SCN d.
O ch d ARCHIVELOG, CSDL khng cn sao luu ton b CSDL cng mt lc.
V du, nu CSDL c 7 tablespaces th mi dm ta c th sao luu controlfiles v 1
tablespace. Nhu vy, nu c su c xay ra, du tin ta cn hon lai ton b datafiles v
controlfiles gn nht, sau d tin hnh phuc hi du liu tu tt ca archived redo log
duoc tao ra tu thoi dim sao luu xa nht.
5.1.2.3 Sao luu ton b CSDL
Dy l kiu sao luu ph bin nht. Oracle thuc hin sao luu tt ca datafiles v
controlfile trong CSDL. Kiu sao luu ny c th duoc thuc hin o ch d
ARCHIVELOG v NOARCHIVELOG. Tuy nhin, cn phai cn nhc kiu sao luu
ny d c duoc du liu nht qun.

Hnh 20. Cc la chn sao luu ton CSDL
D sao luu duoc nht qun, cn phai phuc hi du liu tu cc tp tin Redo Logs
sau khi hon lai du liu (restore).
5.1.2.4 Sao luu tng phn CSDL
Sao luu datafile
Sao luu datafile l dang sao luu mt datafile don le, khng duoc su dung rng ri
nhu sao luu tablespace. Dang sao luu ny khng hop l voi CSDL o ch d
ARCHIVELOG. Sao luu datafile chi hop l voi CSDL o ch d NOARCHIVELOG nu:
Cc datafiles trong tablespace d du duoc sao luu. V tablespace s khng th
hon lai nu thiu 1 datafile.
Cc datafiles phai o ch d chi doc hoc offline.
Sao luu controlfile
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 100
Vic sao luu controle l rt quan trong, v CSDL s khng lin kt (mount) hay
mo duoc nu thiu tp tin ny. Ta c th thit dt RMAN tu dng sao luu controlfile
mi khi thuc hin vic sao luu bng cu lnh CONFIGURE CONTROLFILE AUTOBACKUP.
Ngoi ra, ta cung c th thuc hin sao luu thu cng bng cc phuong php sau:
Dng lnh RMAN BACKUP CURRENT CONTROLFILE.
Dng lnh SQL ALTER DATABASE BACKUP CONTROLFILE.
Dng lnh SQL ALTER DATABASE BACKUP CONTROLFILE TRACE d xut tp
tin script SQL chua ni dung cua controlfile, ta c th dng script ny d tao
controlfile moi.
Sao luu archived redo log
Archived redo log l nhung thng tin thit yu cho phuc hi cc sao luu khng
nht qun. Cch duy nht d phuc hi sao luu khng nht qun m khng su dung
archived log l sao luu tung phn (incremental backups) h tro boi RMAN. Ta cn
phai sao luu archived redo log thuong xuyn bng cc phuong php sau:
Dng lnh RMAN BACKUP ARCHIVELOG.
Dng lnh RMAN BACKUP PLUS ARCHIVELOG.
Dng cc cng cu cua h diu hnh.
5.1.2.5 Sao luu tng dn (incremental backup)
Sao luu tng dn chi luu lai nhung data blocks c thay di so voi mt ln sao luu
truoc d. Ta c th thuc hin sao luu tng dn trn ton b CSDL, trn tung tablespace
hay datafile. Cc nguyn nhn chu yu khi thuc hin sao luu tng dn:
Giam thoi gian cn thit khi thuc hin sao luu hng ngy.
Giam luu luong bng thng khi thuc hin sao luu qua mang.
Giam d lon cc ban sao luu cho CSDL o ch d NOARCHIVELOG.
Giai thut sao luu tng dn
Mi data block trong cc datafile du chua mt SCN cua ln thay di gn nht
cua n. Trong sao luu tng dn, SCN cua mi data block duoc so snh voi SCN cua
ln checkpoint thuc hin sao luu. Nu SCN cua data block no lon hon hoc bng th
n duoc dua vo bang sao luu.
Sao luu tng dn mc 0 v mc 1
Muc 0 l nn tang cua cc ln sao luu tip theo, n luu ton b data blocks cua
cc datafiles, tuong duong voi sao luu ton b CSDL.
Muc 1 c th thuc vo mt trong hai loai: chnh lch v tch luy.
Sao luu tng dn chnh lch (differential incremental backup)
L loai sao luu mc dinh cua muc 1, chi sao luu cc data blocks c thay di tu
ln sao luu tng dn gn nht.
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 101

Hnh 21. Mt chin luc sao luu tng dn chnh lch
Trong hnh trn, mt chin thut sao luu duoc thit k theo tung tun. Ngy
chu nht c t GD nn CSDL duoc sao luu tng dn muc 0, sao luu ton b
CSDL. Vo cc ngy khc trong tun, CSDL duoc sao luu tng dn muc 1,
nghia l thu hai chi luu lai nhung thay di so voi chu nht, thu ba chi luu lai
nhung thay di so voi thu hai v cng vic ny duoc lp lai o tun tip
theo
Sao luu tng dn tch ly (cumulative incremental backup)
Luu lai cc datablocks c thay di k tu ln sao luu muc 0 gn nht. Loai sao
luu ny giam khi luong cng vic phai lm khi hon lai (restore) CSDL v chi
cn p dung mt ban sao luu muc 0 v muc 1. Tuy nhin, n lm lai cng vic
cua ln sao luu cng muc gn d, nn n cn nhiu khng gian luu tru v thoi
gian thuc hin hon.

Hnh 22. Mt chin luc sao luu tng dn tch ly
5.1.3 C php sao luu
Cc lnh sao luu phai duoc thuc thi trong chuong trnh RMAN (Recovery
MANager). D mo chuong trnh ny, vo command console g vo lnh RMAN
target <tn ngi dng DBA>
BACKUP FULL ty_chn
BACKUP FULL AS (COPY | BACKUPSET) ty_chn
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 102
BACKUP INCREMENTAL LEVEL [=] s_nguyn ty_chn
BACKUP INCREMENTAL LEVEL [=] s_nguyen AS (COPY | BACKUPSET)
ty_chn
BACKUP AS (COPY | BACKUPSET) ty_chn
BACKUP AS (COPY | BACKUPSET) (FULL | INCREMENTAL LEVEL [=]
s_nguyn) ty_chn
Voi ty_chn::= { DATAFILE g_dn_datafile [,g_dn_datafile]...
|TABLESPACE ['] tn_tablespace ['] [, ['] tn_tablespace [']]...
| DATABASE
| CURRENT CONTROLFILE [FOR STANDBY]
| SPFILE }
V du:
Sao luu CSDL v control file
BACKUP DATABASE;
BACKUP CURRENT CONTROLFILE;
Sao luu cc datafiles
BACKUP AS BACKUPSET DATAFILE
'ORACLE_HOME/oradata/trgt/users01.dbf',
'ORACLE_HOME/oradata/trgt/tools01.dbf';
Sao luu tt ca datafiles trong CSDL
BACKUP AS COPY DATABASE;
Sao luu cc tp tin archive logs trong mt khoang thoi gian
BACKUP ARCHIVELOG COMPLETION TIME BETWEEN 'SYSDATE-28'
AND 'SYSDATE-7';
Sao luu tablespace
BACKUP TABLESPACE system, users, tools;
Sao luu controlfile hin tai
BACKUP CURRENT CONTROLFILE TO '/backup/cntrlfile.copy';
Sao luu tp tin tham s h thng
BACKUP SPFILE;
Sao luu ton b CSDL ra backupset
BACKUP BACKUPSET ALL;
5.2 Phc hi (recovery)
5.2.1 Gii thiu
Hon lai (restore) ban sao datafile hay control file l tao lai chng sao cho Oracle
database c th su dung duoc ngay. Phuc hi (recover) datafile l cp nht lai du liu
bng cch su dung archived redo logs v online redo logs, nghia l cc thay di trn
CSDL sau khi vic sao luu duoc thuc hin.
Khi c su c xay ra di voi CSDL, nh quan tri cn hon lai CSDL truoc tin,
sau d thuc hin hi phuc cc du liu d thay di tu SCN cua tp tin sao luu (di voi
sao luu nht qun) hoc SCN cu nht cua tp tin sao luu (di voi sao luu khng nht
qun).
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 103
Ngoi ra, cc li lun l do nguoi dng gy ra nhu xa nhm bang hay xa nhm
du liu quan trong. Nh quan tri c th su dung Oracle Flashback Database v Oracle
Flashback Table d hi phuc lai cc thng tin ny thay v hi phuc ton b CSDL.

Hnh 23. Nguyn l sao luu, hon li v phc hi CSDL
5.2.2 Phn loai phc hi
5.2.2.1 Phc hi dy du (complete recovery)
Phuc hi dy du su dung du liu redo hoc cc bang sao tng dn (incremental
backup) kt hop voi ban sao CSDL, tablespace hay datafile d cp nht chng dn thoi
dim gn dy nht c thay di trn du liu. Phuc hi dy du v ta p dung ton b mu
tin trong archived v online logs trn ban sao. Thng thuong, phuc hi dy du duoc p
dung khi c su c hu hong cc datafiles v control file.
Cc buoc thuc hin d phuc hi ton b CSDL:
Lin kt (mount) CSDL.
Dam bao tt ca datafiles cn phuc hi o ch d truc tuyn.
Hon lai ban sao ton b CSDL hoc cc tp tin cn phuc hi.
p dung online v archived redo logs.
Cc buoc thuc hin d phuc hi tablespace, datafile:
Dua tablespace hoc datafile v ch d tt (offline) nu CSDL cn mo.
Hon lai ban sao cua cc datafiles cn phuc hi.
p dung online v archived redo logs.
5.2.2.2 Phc hi khng dy du (incomplete recovery)
Phuc hi khng dy du khng p dung tt ca mu tin redo duoc ghi nhn tu lc
thuc hin sao luu gn nht. Phuc hi khng dy du ton b CSDL thch hop voi cc
tnh hung sau:
Su c ph hong mt vi hoc ton b tp tin online redo logs.
Nguoi dng gy ra mt du liu nhu xa bang.
Tht lac archived redo log.
Khoa CNTT & Truyn Thng Trung Di Hc Cn Tho


Gio Trnh H Quan Tr| Co So D Liu trang 104
Tht lac control file v phai su dung ban sao control file d mo CSDL.
5.2.3 C php restore
RESTORE i_tng_restore;
i_tng_restore ::=
{ CONTROLFILE [TO 'tn_file']
| DATABASE
| DATAFILE g_dn_datafile [,g_dn_datafile]...
| TABLESPACE ['] tn_tablespace ['] [, ['] tn_tablespace
[']]...
| SPFILE [TO [PFILE] 'tn_file']
}
5.2.4 C php recover
RECOVER i_tng_recover;
i_tng_recover::=
{ DATABASE [cho_n_khi]
| TABLESPACE ['] tn_tablespace ['] [, ['] tn_tablespace
[']]...
| DATAFILE g_dn_datafile [,g_dn_datafile]... }
cho_n_khi ::= { UNTIL TIME [=] 'ngy_thng' | UNTIL SCN [=]
s_nguyn }
V du:
Hon lai v phuc hi ton b CSDL
STARTUP FORCE MOUNT;
RESTORE DATABASE;
RECOVER DATABASE;
ALTER DATABASE OPEN;
Hon lai v phuc hi tablespace
SQL 'ALTER TABLESPACE users OFFLINE';
RESTORE TABLESPACE users;
RECOVER TABLESPACE users;
SQL 'ALTER TABLESPACE users ONLINE';
Hon lai v phuc hi datafile
SQL 'ALTER DATABASE DATAFILE 64 OFFLINE';
RESTORE DATAFILE 64;
RECOVER DATAFILE 64;
SQL 'ALTER DATABASE DATAFILE 64 ONLINE';

You might also like