Chương IV. An tòan dữ liệu và
khôi phục sự cố
1
Nội dung
Giới thiệu
Phân loại sự cố
Mục tiêu của khôi phục sự cố
Các phương pháp phục hồi dữ liệu
An tòan logic dựa trên nhật ký
Khôi phục sau sự cố có hệ thống
2
Giới thiệu
An toàn dữ liệu: nhằm chống lại sự xâm nhập trái phép từ bên
trong và bên ngoài hệ thống. Các tác nhân tác động từ bên
ngoài gây hư hỏng hệ quản trị cơ sở dữ liệu, sai lệch, mất mát
dữ liệu, cấu trúc dữ liệu,
Trạng thái nhất quán
Thỏa các ràng buộc toàn vẹn
CSDL nhất quán
CSDL ở trạng thái nhất quán
Ràng buộc bị vi phạm do:
Lỗi lập trình của các giao tác (transaction bug)
Lỗi lập trình của DBMS (DBMS bug)
Hư hỏng phần cứng (hardware failure)
Chia sẻ dữ liệu (data sharing)
3
Phân loại sự cố
Một số sự cố có thể xảy ra do:
Khách quan: mất điện
Chủ quan: thao tác sai
Sự cố do nhập liệu sai
Sự cố của giao tác (transaction failure)
Sự cố liên quan đến hệ thống (system failure)
Sự cố trên thiết bị lưu trữ (media failure)
4
Sự cố do nhập liệu sai
Dữ liệu sai hiển nhiên
Dữ liệu sai không thể phát hiện
DBMS cung cấp các cơ chế cho phép phát hiện lỗi
Ràng buộc khóa chính, khóa ngoại
Ràng buộc miền giá trị
Trigger
5
Sự cố của giao tác (transaction failure)
Sự cố gây nên một giao tác kết thúc không bình
thường:
Ví dụ
Chia cho không
Giao tác bị hủy
Dữ liệu nhập sai
Tràn số
6
Sự cố hệ thống (system failure)
Sự cố gây nên bị mất hoặc không thể truy
xuất được dữ liệu ở bộ nhớ trong.
Ví dụ
Cúp điện
Lỗi phần mềm DBMS hoặc OS
Hư RAM
7
Sự cố trên thiết bị lưu trữ (media failure)
Sự cố gây nên việc mất hay không thể truy cập
được dữ liệu ở bộ nhớ ngòai
Ví dụ
Đầu đọc của đĩa cứng hư
Sector trên đĩa cứng hư
8
Mục tiêu của khôi phục sự cố
9
Khôi phục CSDL là tiến trình phục hồi CSDL về trạng
thái nhất quán cuối cùng trước khi có sự cố xảy ra.
Việc khôi phục dữ liệu được thực hiện bởi bộ quản lý
khôi phục dữ liệu (RM- Recovery Manager).
Khôi phục dữ liệu tự động giúp giảm thiểu việc yêu
cầu người sử dụng thiện hiện lại công việc (khi xảy ra
sự cố).
Giao tác là đơn vị cơ bản khi khôi phục CSDL.
Trong 4 tính chất của GT(ACID), RM đảm bảo 2 tính
chất: tính nguyên tố(Atomic) và tính bền vững
(Durability)
Khôi phục sự cố từ một giao tác
T1
T2
Lock(A)
Read(A)
A=A+1
Write(A)
Lock(B)
Unlock(A)
Read(B)
B=B/A
Lock(A)
Read(A)
A=A+2
Write(A)
Unlock(A)
Commit
Nếu một giao tác T bị sự cố thì hệ
thống sẽ thực hiện các việc sau:
Giải phóng các đơn vị dữ liệu đang
bị khóa bởi T (Ul(B))
Reset lại giá trị các đơn vị dữ liệu
mà T đã làm thay đổi (A)
Xét xem có giao tác nào(#T) đã đọc
dữ liệu do T ghi không? Nếu có:
-T’ chưa commit hủy
-T’ commit rồi thực hiện lại
Giả sử B/A (A=0) thì hệ thệ bị đứng
10
Các phương pháp phục hồi dữ liệu
Lưu thông tin trên đĩa cứng.
Tạo bản sao lưu (backup)
Tạo điểm phục hồi hệ thống (system check point)
An tòan logic dựa trên các nhật ký
11
Lưu thông tin trên đĩa cứng
Tạo nhật ký để ghi chép lại 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 <tên database> TO <tên logic backup>
Ví dụ
BACKUP DATABASE AdventureWorks
TO DISK = ‘C:\Backup\AdventureWorks.bak’
Differential Backup
16
Cú pháp:
Backup database <tên database> TO <tên logic backup>
WITH DIFFERENTIAL
Ví dụ
BACKUP DATABASE AdventureWorks
TO DISK = ’C:\Backup\AdventureWorks.bak’
WITH DIFFERENTIAL
Log Backup
17
Cú pháp:
Backup log <tên database> TO <tên logic backup>
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 <tên database>
from <thiết bị backup>
Ví dụ:
RESTORE DATABASE AdventureWorks
FROM DISK = ‘C:\Backup\AdventureWorks.bak’
Phục hồi giao tác
Restore log <tên database>
from <thiết bị backup>
Ví dụ
19
backup database qlsv to disk='d:\qlsv.bak'
restore database qlsv from disk ='d:\qlsv.bak'
Các cơ chế an toàn dữ liệu
20
Kiểm soá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 soát quyền truy cập CSDL
21
Kiểm soát quyền truy cập CSDL
22
User được phép truy xuất không điều kiện tới toà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 soá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 soát quyền truy cập CSDL
24
User có thể áp dụng các phép toá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 soát quyền truy cập CSDL
25
Xác nhận người dùng
Phân quyền