Bài giảng Hệ quản trị cơ sở dữ liệu - Chương IV: An toàn dữ liệu và khôi phục sự cố

Tóm tắt Bài giảng Hệ quản trị cơ sở dữ liệu - Chương IV: An toàn dữ liệu và khôi phục sự cố: ... trị cá biệt.  User có thể đọc các thuộc tính MaNV, Luong, HoaHong và trong mỗi bộ có thể sửa giá trị của thuộc tính HoaHong của nhân viên nếu và chỉ nếu người đó là trưởng phòng của phòng đó.  User có thể bổ sung thêm nhân viên vào một phòng ban nào đó hay xóa nhân viên khỏi một phòng nào đ...m  Để sửa chữa các sự cố Một vài giao tác sẽ phải thực hiện lại (redo)  Những giá trị đã cập nhật xuống CSDL sẽ phải cập nhật lần nữa Một vài giao tác không cần phải thực hiện lại (undo)  CSDL sẽ được khôi phục về lại trạng thái trước khi thực hiện 43 Tạo điểm phục hồi hệ thống (syste...g Flush log Không cần khôi phục A và B Khôi phục A=8 và B=8 A và B không thay đổi nên không cần khôi phục 55 Phương pháp Redo-Logging  Qui tắc  (1) Một thao tác phát sinh ra 1 mẫu tin nhật ký  Mẫu tin của thao tác cập nhật chỉ ghi nhận lại giá trị mới   (2) Trước khi X được c...

pdf80 trang | Chia sẻ: havih72 | Lượt xem: 154 | Lượt tải: 0download
Nội dung tài liệu Bài giảng Hệ quản trị cơ sở dữ liệu - Chương IV: An toàn dữ liệu và khôi phục sự cố, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
 các hành động đã diễn
ra. Thơng tin ghi lại trong nhật ký là trình trạng các 
trang vật lý của CSDL trước khi thực hiện hành
động của một giao tác.
 Nhật ký giao tác là một chuỗi các mẫu tin (log 
record) ghi nhận lại các hành động của DBMS
 Một mẫu tin cho biết một giao tác nào đĩ đã làm những gì
 Nhật ký là một tập tin tuần tự được lưu trữ trên bộ
nhớ chính, và sẽ được ghi xuống đĩa ngay khi cĩ thể
12
Tạo bản sao lưu (backup)
 CSDL sẽ được sao chép thành nhiều bản nằm trên các đĩa cứng khác 
nhau. Có 2 phương pháp thực hiện sao lưu dữ liệu:
 Thủ công: Chọn thời điểm thích hợp người quản trị CSDL thực hiện công 
cụ hỗ trợ của hệ thống để tiến hành sao lưu (Backup) toàn bộ hay một 
phần CSDL lên một vị trí an toàn trong hệ thống. Bằng cách này, nếu có 
xảy ra sự cố thì người quản trị CSDL sẽ sử dụng công cụ hỗ trợ của hệ 
QTCSDL thực hiện thao tác phục hồi (Restore) hiện trạng CSDL. Thông 
thường, cách này chỉ được tiến hành đột xuất.
 Tự động: Hầu hết các hệ QTCSDL đều có cơ chế tự động sao lưu và phục 
hồi dữ liệu khi có sự cố. Có thể yêu cầu lưu lại mấy bản sao dữ liệu cuối 
cùng. Có thể định kỳ cho hệ thống sẽ tự động sao lưu CSDL vào một giờ 
nào đó trong ngày, một ngày cụ thể trong tuần hoặc trong tháng. Tới kỳ 
đã định hệ thống sẽ tự động tiến hành việc sao lưu. Một khi có sự cố hệ 
QTCSDL sẽ tự động phục hồi lại CSDL từ các phiên bản lưu mới nhất.
13
Các loại Backup
14
Full Backup
Differential Backup
Log Backup
Full Backup
15
 Cú pháp
Backup database TO 
 Ví dụ
BACKUP DATABASE AdventureWorks
TO DISK = ‘C:\Backup\AdventureWorks.bak’
Differential Backup
16
 Cú pháp:
Backup database TO 
WITH DIFFERENTIAL
 Ví dụ
BACKUP DATABASE AdventureWorks
TO DISK = ’C:\Backup\AdventureWorks.bak’
WITH DIFFERENTIAL
Log Backup
17
 Cú pháp:
Backup log TO 
WITH NO_TRUNCATE
 BACKUP LOG AdventureWorks 
TO DISK= 'C:\SQL\Backup\ AdventureWorks.bak' 
WITH NO_TRUNCATE
Phục hồi csdl (restore databse)
18
 Phục hồi tịan bộ CSDL
Restore database 
from 
Ví dụ:
RESTORE DATABASE AdventureWorks
FROM DISK = ‘C:\Backup\AdventureWorks.bak’
 Phục hồi giao tác
Restore log 
from 
Ví dụ
19
 backup database qlsv to disk='d:\qlsv.bak'
 restore database qlsv from disk ='d:\qlsv.bak'
Các cơ chế an tồn dữ liệu
20
 Kiểm sốt quyền truy cập CSDL
 Khung nhìn (view) như các cơ chế bảo vệ
 Mã hĩa dữ liệu
Kiểm sốt quyền truy cập CSDL
21
Kiểm sốt quyền truy cập CSDL
22
 User được phép truy xuất khơng điều kiện tới tồn bộ 
CSDL và thực hiện bất kỳ thao tác nào trên CSDL đĩ
 User khơng được phép truy xuất tới bất kỳ bộ phận nào 
của CSDL
 User cĩ thể đọc một bộ phận của CSDL nhưng khơng 
được thay đổi nội dung của bộ phận đĩ
 User cĩ thể đọc đúng một bộ trong bảng NhanVien 
nhưng khơng được sửa đổi bộ này
 User cĩ thể đọc đúng một bộ trong bảng NhanVien và 
sửa đổi nhưng khơng phải tất cả giá trị của bộ này.
Kiểm sốt quyền truy cập CSDL
23
 User cĩ thể đọc các thuộc tính MaNV, TenNV, MaPB 
nhưng trong mỗi bộ chỉ được sửa giá trị của các thuoc 
tính MaPB
 User cĩ thể đọc các thuộc tính MaNV, TenNV, Luong 
nhưng trong mỗi bộ chỉ được sửa giá trị của các thuộc 
tính Luong trong khoảng thời gian từ 8h -> 11h từ một 
thiết bị đầu cuối đặt trong phịng tài vụ
 User cĩ thể đọc các thuộc tính MaNV, TenNV, Luong 
nhưng trong mỗi bộ chỉ được sửa giá trị của các thuộc 
tính Lương nếu và chỉ nếu giá trị hiện tại của thuộc 
tính Luong < 500 USD
Kiểm sốt quyền truy cập CSDL
24
 User cĩ thể áp dụng các phép tốn thống kê cho thuộc tính
Lương (như tính lương trung bình của từng phịng ban)
nhưng khơng được đọc hay sửa đổi các giá trị cá biệt.
 User cĩ thể đọc các thuộc tính MaNV, Luong, HoaHong
và trong mỗi bộ cĩ thể sửa giá trị của thuộc tính HoaHong
của nhân viên nếu và chỉ nếu người đĩ là trưởng phịng
của phịng đĩ.
 User cĩ thể bổ sung thêm nhân viên vào một phịng ban
nào đĩ hay xĩa nhân viên khỏi một phịng nào đĩ.
Kiểm sốt quyền truy cập CSDL
25
Xác nhận người dùng
Phân quyền
Xác nhận người dùng
26
 Những user khác nhau tùy theo vị trí, vai trị, trách 
nhiệm và quyền hạn trong hệ thống sẽ cĩ các quyền 
khác nhau đối với CSDL hay các bộ phận khác nhau 
của CSDL như các quan hệ hay thuộc tính của các 
quan hệ. Các quyền này bao gồm đọc, thêm, xĩa hay 
sửa đổi các các đối tượng của CSDL.
Xác nhận người dùng
27
Các DBMS phải đảm bảo khơng cho phép user thực
hiện bấy kỳ thao tác nào nếu khơng được phép. Người
quản trị CSDL(DBA) là người cĩ quyền cấp tài nguyên
và quyền thao tác CSDL, nghĩa là người quản trị phải:
(1) Xác nhận cho hệ thống những quyền hay cụ
thể những thao tác mà mỗi user được phép thực hiện.
(2) Cung cấp một phương tiện cho user để hệ
thống nhận biết họ.
Xác nhận người dùng
28
Nhiệm vụ của DBA:
- Định nghĩa lược đồ CSDL.
- Định nghĩa cấu trúc lưu trữ và phương thức
truy xuất dữ liệu
- Sửa đổi lược đồ và tổ chức vật lý.
- Cấp quyền user để truy xuất dữ liệu.
Xác nhận người dùng
29
Nhiệm vụ của DBA:
- Thực hiện vai trị liên kết các user.
- Giám sát việc thực thu và đáp ứng các thay đổi
phù hợp.
- Quản lý khơng gian lưu trữ, thực hiện sao lưu
dữ liệu,...
- Việc xác nhận user thường được sử dụng là
mật khẩu.
Phân quyền người dùng
30
 Quyền người dùng được định nghĩa như mức độ người 
dùng cĩ thể hay khơng thể thực thi trên CSDL, quyền 
được chia thành 4 loại như sau:
 Quyền truy cập vào SQL Server
 Quyền truy cập vào CSDL
 Quyền thực hiện trên các đối tượng của CSDL
 Quyền xử lý dữ liệu
Nhà quản trị hệ thống 
(System administrator)
31
 Nhà quản trị hệ thống cĩ login là sa. 
 Cĩ tịan quyền truy xuất đến tất cả đối tượng trong 
SQL Server
 Khơng thể xĩa login sa
Người chủ CSDL
(database owner)
32
 Login dbo được gọi là database owner.
 dbo là thành viên của nhĩm db_owner.
 Khơng thể xĩa khỏi nhĩm này.
Tạo login đăng nhập
33
 Tạo login bằng phát biểu SQL
 Create Login Login_name with password 
 Ví dụ:
 Create login minhnguyen with password = ‘123456’
 Liệt kê danh sách login
 Select name, createdate
From syslogins
Khai báo database user bằng phát biểu SQL
34
 Cú pháp
Create user user_name
For Login 
 Ví dụ:
USE QLSV
CREATE USER lmn
FOR LOGIN minhnguyen
Cú pháp tạo tài khoản đăng nhập
35
Dùng sp
EXEC sp_addlogin
[@login= ]
[,@password= ]
[,@defdb= ]
 Ví dụ
Use QLSV
EXEC sp_addlogin ‘user1’, ‘123’
Thay đổi password
36
 Cú pháp:
EXEC sp_password
[@old= ]
[,@new= ]
[,@loginname= ]
 EXEC sp_password ‘123’, ‘nguyen’, ‘user1’
Cấp quyền truy cập vào CSDL
37
 Cú pháp
EXEC sp_grantdbaccess
[@loginname= ]
[,@name_in_db= ]
Ví dụ:
Use qlsv
EXEC sp_grantdbaccess ‘user1’, ‘pvn’
Xĩa quyền truy cập vào CSDL
38
 Cú pháp
EXEC sp_revokedbaccess
[@loginname= 
 Ví dụ
EXEC sp_revokedbaccess ‘user1’
Quyền thực hiện trên các đối tượng của CSDL
39
 Cấp quyền tạo đối tượng
 Cú pháp
Grant to [tên user]
 Ví dụ: Cấp quyền tạo view 
Use QLSV
GRANT create table, create view
To pvn
 Cấm quyền tạo đối tượng
Deny to [tên user]
 Ví dụ: 
DENY create table To pvn
- Create database
- Create table
- Create View
- Create proc
- Create rule
- Create default
- Backup database
- Backup log
Quyền xử lý dữ liệu
40
 Cấp quyền xử lý dữ liệu
Grant <ALL| các quyền
ON 
TO 
 Ví dụ: 
GRANT INSERT, UPDATE, DELETE
ON sinhvien
TO lmn
 Cấm quyền tạo đối tượng
Deny on to [tên user] 
(hoặc dùng revoke)
 Ví dụ: Deny insert on sinhvien to lmn
- Select
- Update
- Insert
- Delete
- References
- Execute
Quyền xử lý dữ liệu (tt)
41
 Grant/ Revoke/ Deny cịn cho phép cấp quyền trên từng Field 
của table. 
 Ví dụ: cho user pvn chỉ được quyền hiệu chỉnh dữ liệu trên các 
Field: Ho, Ten, Phai, DiaChi, NgaySinh của NHANVIEN
GRANT UPDATE
(Ho, Ten, Phai, DiaChi, NgaySinh) 
ON NHANVIEN
To lmn
Nhật ký giao tác
 Mẫu tin nhật ký gồm cĩ
 
 Ghi nhận giao tác T bắt đầu hoạt động
 
 Ghi nhận giao tác T đã hồn tất 
 
 Ghi nhận giao tác T bị hủy
 
 Ghi nhận giao tác T cập nhật lên đơn vị dữ liệu X
 X cĩ giá trị trước khi cập nhật là v và sau khi cập nhật là w
42
Nhật ký giao tác (tt)
 Khi sự cố hệ thống xảy ra
DBMS sẽ tra cứu nhật ký giao tác để khơi phục những 
gì mà các giao tác đã làm
 Để sửa chữa các sự cố
Một vài giao tác sẽ phải thực hiện lại (redo)
 Những giá trị đã cập nhật xuống CSDL sẽ phải cập nhật lần 
nữa
Một vài giao tác khơng cần phải thực hiện lại (undo)
 CSDL sẽ được khơi phục về lại trạng thái trước khi thực hiện
43
Tạo điểm phục hồi hệ thống
(system check point)
 Các hành động xảy ra trước điểm phục hồi hệ thống là 
đã được ghi nhận, sau thời điểm đó là chưa được ghi 
nhận, vẫn còn nằm trong bộ nhớ trong. Trước khi kết 
thúckỳ (session) khai thác CSDL, hệ thống sẽ đóng các 
tập tin và ghi lại các bộ đệm vào CSDL, và đồng thời 
ghi vào nhật ký.
Vùng đệm dành 
cho nhật ký
Vùng đệm dành 
cho CSDL
Module quản lý 
phục hồi dữ liệu
Module quản lý 
vùng đệm
Nhật ký
CSDL
CSDL NK
Bộ nhớ trong Hệ QTCSDL Bộ nhớ ngoài
44
Điểm lưu trữ đơn giản
 Khi đến điểm lưu trữ, DBMS 
 (1) Tạm dừng tiếp nhận các giao tác mới 
 (2) Đợi các giao tác đang thực hiện
 Hoặc là hồn tất (commit)
 Hoặc là hủy bỏ (abort)
và ghi mẫu tin hay vào nhật ký
 (3) Tiến hành ghi nhật ký từ vùng đệm xuống đĩa
 (4) Tạo 1 mẫu tin và ghi xuống đĩa
 (5) Tiếp tục nhận các giao tác mới
45
Điểm lưu trữ đơn giản (tt)
 Các giao tác ở phía trước điểm lưu trữ là những giao tác đã 
kết thúc  khơng cần làm lại
 Và sau điểm lưu trữ là những giao tác chưa thực hiện xong 
 cần khơi phục
 Khơng phải duyệt hết nhật ký
 Duyệt từ cuối nhật ký đến điểm lưu trữ 
Checkpoint 
T
U
scan 
46
Điểm lưu trữ linh động
 Trong thời gian checkpoint hệ thống gần như tạm ngưng 
hoạt động
Chờ các giao tác hồn tất hoặc hủy bỏ
 Nonquiescent checkpoint
Cho phép tiếp nhận các giao tác mới trong quá trình 
checkpoint
Mẫu tin 
Mẫu tin 
Checkpoint 
T U
V
47
Điểm lưu trữ linh động (tt)
 Khi đến điểm lưu trữ, DBMS
 (1) Tạo mẫu tin và ghi xuống 
đĩa
 T1, T2, , Tk là những giao tác đang thực thi
 (2) Chờ cho đến khi T1, T2, , Tk hồn tất hay hủy bỏ,
nhưng khơng ngăn các giao tác mới bắt đầu
 (3) Khi T1, T2, , Tk thực hiện xong, tạo mẫu tin 
 và ghi xuống đĩa
48
Ví dụ
Ví dụ: Có 5 giao tác thực hiện như hình trên. Thời điểm kiểm tra hệ thống
(System Check Point) là tk. Khi đó các hành động của T
1
không cần phải
làm lại (T
1
là an toàn). T
3
chỉ bị hủy một phần hành động sau tk và làm
lại. T
5
bị hủy để làm lại. T
2
và T
4
được hệ thống tự động phục hồi (dựa
vào nhật ký và điểm phục hồi).
Hai chiến lược xác nhận và hủy giao tác:
o Ghi chồng lên dữ liệu cũ (Chiến lược đảm bảo an toàn lôgic). Thông tin
cũ bị mất.
o Ghi dữ liệu mới vào chỗ khác (Chiến lược đảm bảo an toàn vật lý). Thông
tin cũ chỉ bị đánh dấu là hết hiệu lực, các thông tin mới được ghi vào một
nơi khác
T1
T2
T3
t1 t2 t4 t3
T4
T5
tk
 Thời điểm xảy ra sự cố Check point
49
An tịan logic dựa trên các nhật ký
Undo-Logging (immediate modification)
Redo-Logging (deferred modification)
Undo/Redo Logging
50
Undo-Logging
 Qui tắc
 (1) Một thao tác phát sinh ra 1 mẫu tin nhật ký
 Mẫu tin của thao tác cập nhật chỉ ghi nhận lại giá trị cũ
 
 (2) Trước khi X được cập nhật xuống đĩa, mẫu tin <T, X, 
v> đã phải cĩ trên đĩa 
 (3) Trước khi mẫu tin được ghi xuống đĩa, 
tất cả các cập nhật của T đã được phản ánh lên đĩa
 Flush-log: chỉ chép những block mẫu tin nhật ký mới chưa 
được chép trước đĩ51
Ví dụ
Hành động
Read(A,t)
t:=t*2
Write(A,t)
Read(B,t)
t:=t*2
Write(B,t)
Output(A)
Output(B)
t
8
16
16
8
16
16
16
16
Mem A Mem B Disk BDisk A
8
8
16
16
16
16
16
16
8
8
16
16
16
8
8
8
8
8
8
16
16
8
8
8
8
8
8
8
16
Bước
1
2
3
4
5
Mem Log
6
7
8
9
10
11
12
Flush log
Flush log52
Undo-Logging (tt) 
 Khơi phục
 (1) Gọi S là tập các giao tác chưa kết thúc
 Cĩ trong nhật ký nhưng 
 Khơng cĩ hay trong nhật ký
 (2) Với mỗi mẫu tin trong nhật ký 
(theo thứ tự cuối tập tin đến đầu tập tin)
 Nếu Ti  S thì -Write(X, v) 
- Output(X)
 (3) Với mỗi Ti  S
 Ghi mẫu tin lên nhật ký53
Undo-Logging (tt) 
 Khi cĩ sự cố
 T1 và T3 đã hồn tất
 T2 và T4 chưa kết thúc
T3
T4
T1
Sự cố
T2
Bỏ qua
Khơi phục dữ
liệu 
54
Ví dụ
Hành động
Read(A,t)
t:=t*2
Write(A,t)
Read(B,t)
t:=t*2
Write(B,t)
Output(A)
Output(B)
t
8
16
16
8
16
16
16
16
Mem A Mem B Disk BDisk A
8
8
16
16
16
16
16
16
8
8
16
16
16
8
8
8
8
8
8
16
16
8
8
8
8
8
8
8
16
Bước
1
2
3
4
5
Mem Log
6
7
8
9
10
11
12
Flush log
Flush log Khơng cần khơi phục 
A và B
Khơi phục A=8 và
B=8
A và B khơng thay 
đổi nên khơng cần 
khơi phục
55
Phương pháp Redo-Logging 
 Qui tắc
 (1) Một thao tác phát sinh ra 1 mẫu tin nhật ký
 Mẫu tin của thao tác cập nhật chỉ ghi nhận lại giá trị mới
 
 (2) Trước khi X được cập nhật xuống đĩa, tất cả các 
mẫu tin nhật ký của giao tác cập nhật X đã phải cĩ trên 
đĩa
 Bao gồm mẫu tin cập nhật và 
 (3) Khi T hồn tất, tiến hành ghi nhật ký xuống đĩa
 Flush-log: chỉ chép những block mẫu tin nhật ký mới chưa 
được chép trước đĩ56
Ví dụ
Hành động
Read(A,t)
t:=t*2
Write(A,t)
Read(B,t)
t:=t*2
Write(B,t)
Output(A)
Output(B)
t
8
16
16
8
16
16
16
16
Mem A Mem B Disk BDisk A
8
8
16
16
16
16
16
16
8
8
16
16
16
8
8
8
8
8
8
16
16
8
8
8
8
8
8
8
16
Bước
1
2
3
4
5
Mem Log
6
7
8
9
10
11
Flush log
57
Phương pháp Redo-Logging (tt)
 Khơi phục
 (1) Gọi S là tập các giao tác hồn tất
 Cĩ mẫu tin trong nhật ký
 (2) Với mỗi mẫu tin trong nhật ký 
(theo thứ tự cuối tập tin đến đầu tập tin)
 Nếu Ti  S thì - Write(X, w) 
- Output(X)
 (3) Với mỗi Tj  S
 Ghi mẫu tin lên nhật ký
58
Phương pháp Redo-Logging (tt)
 Khi cĩ sự cố 
 T1 và T3 đã hồn tất 
 T2 và T4 chưa kết thúc
59
T3
T4
T1
Sự cố
T2 Bỏ qua
Thực hiện lại 
Ví dụ
Hành động
Read(A,t)
t:=t*2
Write(A,t)
Read(B,t)
t:=t*2
Write(B,t)
Output(A)
Output(B)
t
8
16
16
8
16
16
16
16
Mem A Mem B Disk BDisk A
8
8
16
16
16
16
16
16
8
8
16
16
16
8
8
8
8
8
8
16
16
8
8
8
8
8
8
8
16
Bước
1
2
3
4
5
Mem Log
6
7
8
9
10
11
Flush log
Thực hiện lại T, ghi 
A=16 và B=16
Thực hiện lại T, ghi 
A=16 và B=16
Xem nhưT chưa hồn 
tất, A và B khơng cĩ 
thay đổi
60
Phương pháp Undo/Redo-Logging 
 Qui tắc
 (1) Một thao tác phát sinh ra 1 mẫu tin nhật ký
 Mẫu tin của thao tác cập nhật ghi nhận giá trị cũ và mới của một 
đơn vị dữ liệu
 
 (2) Trước khi X được cập nhật xuống đĩa, các mẫu tin cập 
nhật đã phải cĩ trên đĩa
 (3) Khi T hồn tất, tạo mẫu tin trên nhật ký và 
ghi xuống đĩa 
61
Ví dụ
Hành động
Read(A,t)
t:=t*2
Write(A,t)
Read(B,t)
t:=t*2
Write(B,t)
Output(A)
Output(B)
t
8
16
16
8
16
16
16
16
Mem A Mem B Disk BDisk A
8
8
16
16
16
16
16
16
8
8
16
16
16
8
8
8
8
8
8
16
16
8
8
8
8
8
8
8
16
Bước
1
2
3
4
5
Mem Log
6
7
8
9
10
11
Flush log
62
Phương pháp Undo/Redo-Logging (tt) 
 Khơi phục
 (1) Khơi phục lại (undo) những giao tác chưa kết thúc 
 Theo thứ tự từ cuối nhật ký đến đầu nhật ký
 (2) Thực hiện lại (redo) những giao tác đã hồn tất
 Theo thứ tự từ đầu nhật ký đến cuối nhật ký
63
Phương pháp Undo/Redo-Logging (tt) 
Khi gặp sự cố 
T1 và T3 đã hồn tất
T2 và T4 chưa kết thúc
T3
T4
T1
Sự cố
T2 Khơi 
phụcThực hiện lại 
64
Ví dụ
Hành động
Read(A,t)
t:=t*2
Write(A,t)
Read(B,t)
t:=t*2
Write(B,t)
Output(A)
Output(B)
t
8
16
16
8
16
16
16
16
Mem A Mem B Disk BDisk A
8
8
16
16
16
16
16
16
8
8
16
16
16
8
8
8
8
8
8
16
16
8
8
8
8
8
8
8
16
Bước
1
2
3
4
5
Mem Log
6
7
8
9
10
11
Flush log
 đã được 
ghi xuống đĩa, thực 
hiện lại T, A=16 và 
B=16
T chưa kết thúc, khơi 
phục A=8
65
Khơi phục sau sự cố cĩ hệ thống
 Đó là cơ chế phục hồi bình thường sau khi ngưng 
hoạt động hệ thống. Cơ chế này dựa trên điểm phục 
hồi bình thường cuối cùng. Đối với tình huống ngưng 
hoạt động bất thường, có 2 cơ chế phục hồi: Phục hồi 
nóng và Phục hồi lạnh.
66
Khơi phục sau sự cố cĩ hệ thống (tt)
T1
T2
T3
T4
T5
 Điểm phục hồi hệ thống
 Điểm xảy ra sự cố
(a) Phục hồi nóng: Khi hệ thống đang hoạt động. Cơ
chế này dựa trên nhật ký trước, các bản sao dữ liệu
và điểm phục hồi hệ thống.
T1 đã được xác nhận. T2 đã hoàn tất việc ghi lên bộ nhớ ngoài (đã 
được ghi nhận) sau thời điểm phục hồi hệ thống.
T3 & T5 là các giao tác “thua”. T1, T2, T4 là các giao tác “được”.67
Khơi phục sau sự cố cĩ hệ thống (tt)
 Các hành động nào của các giao tác “được” xảy
ra sau điểm phục hồi thì sẽ được làm lại.
 Các hành động của T2 xảy ra sau điểm phục hồi
thì được làm lại.
 Các hành động của T3 xảy ra sau điểm phục hồi
thì phải được hủy bỏ và làm lại từ đầu.
 Các hành động nào xảy ra sau điểm phục hồi thì
được làm lại. T4 được thực hiện lại. T5 được thực
hiện sau điểm phục hồi và còn dở dang nên được
hủy và làm lại từ đầu.
68
Khơi phục sau sự cố cĩ hệ thống (tt)
 (b) Phục hồi lạnh: Xảy ra do lỗi thiết bị (thiết bị
hư, thay đĩa khác). Thông thường thì người ta sẽ
có một phiên bản của CSDL và nhật ký nằm trên
một đĩa khác. Cơ chế này dựa trên “nhật ký sau”.
 Vì CSDL bị hư nên phải dựa vào bản sao CSDL
và nhật ký sau để thực hiện lại một vài hành
động (nhật ký luôn luôn được lưu thành nhiều bản
trên nhiều đĩa cứng khác nhau). Cơ chế phục hồi
lạnh được tiến hành tùy thuộc vào người quản trị
Cơ sở dữ liệu.
69
Cài đặt trên SQL server
70
Quản lý tranh chấp sử dụng 2 cơ chế
Quản lý việc đọc dữ liệu
Khĩa
Cài đặt trên SQL server (tt)
71
Quản lý việc đọc dữ liệu cĩ 5 mức
Cài đặt trên SQL server (tt)
72
Cài đặt trên SQL server (tt)
73
Cài đặt trên SQL server (tt)
74
Cài đặt trên SQL server (tt)
75
Xác định chiến lược sử dụng Lock và 
Isolation Level. Một số gợi ý sau: 
76
 Nếu khơng cần đọc chính xác dữ liệu mà chỉ cần 1 cái 
nhìn tổng quan về thơng tin trong CSDL thì nên sử dụng 
READ UNCOMMITTED hay NOLOCK. 
 Thơng thường, sử dụng chế độ mặc định của SQL Server 
là READ COMMITTED. 
 Nếu khơng muốn nội dung của 1 đơn vị dữ liệu bị thay đổi 
trong suốt quá trình diễn ra giao tác thì sử dụng 
REPEATABLE READ 
Xác định chiến lược sử dụng Lock và 
Isolation Level. Một số gợi ý sau:
77
 Nếu khơng muốn xuất hiện những dịng dữ liệu 
phantoms thì sử dụng SERIALIZABLE. 
 Nếu dự kiến khĩa trên rất nhiều dịng dữ liệu trong 1 
bảng thì nên sử dụng TABLOCK hay TABLOCKX. 
 Nếu dự kiến cập nhật 1 đơn vị dữ liệu sau khi đọc nội 
dung đơn vị dữ liệu này thì nên sử dụng UPDLOCK. 
Bài tập
78
 Giả sử sau khi sự cố hệ thống xảy ra, DBMS được khởi động lại 
với tập tin nhật ký như sau:
Hãy mơ tả tiến trình khơi phục của DBMS dựa trên tập tin nhật ký
này theo phương pháp:
- Undo logging
- Redo logging
79
 Giả sử sự cố hệ thống xảy ra ngay sau các bước trên thì tiến trình 
khơi phục của DBMS như thế nào khi dùng phương pháp
i. Undo logging
ii. Redo logging
Bài tập
80
 Giả sử sau khi sự cố hệ thống xảy ra, DBMS được khởi 
động lại với tập tin nhật ký như sau:
 Hãy mơ tả tiến trình khơi phục của DBMS dựa trên tập 
tin nhật ký này theo phương pháp Undo/Redo logging.

File đính kèm:

  • pdfbai_giang_he_quan_tri_co_so_du_lieu_chuong_iv_an_toan_du_lie.pdf