8/25/2017<br />
<br />
Nội dung<br />
1. Khái niệm<br />
<br />
Chương 10.<br />
Khôi phục dữ liệu<br />
<br />
2. Phân loại các sự cố<br />
3. Khôi phục sự cố sau một giao tác<br />
4. Khôi phục sau sự cố hệ thống<br />
<br />
GV: Lê Thị Minh Nguyện<br />
Email: nguyenltm@huflit.edu.vn<br />
<br />
5. Cài đặt cơ chế sao lưu và phục hồi dữ liệu<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
2<br />
<br />
1. Khái niệm<br />
<br />
2. Phân loại sự cố<br />
<br />
• Khôi phục CSDL là tiến trình phục hồi CSDL về trạng thái<br />
nhất quán cuối cùng trước khi có sự cố xảy ra.<br />
• Khôi phục dữ liệu tự động giúp giảm thiểu việc yêu cầu<br />
người sử dụng thực hiện lại công việc (khi xảy ra sự cố).<br />
• Giao tác là đơn vị cơ bản khi khôi phục CSDL.<br />
<br />
• Sự cố giao tác: là các sự cố gây nên việc một giao tác kết thúc<br />
không bình thường<br />
• Một số sự cố có thể xảy ra do:<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
3<br />
<br />
• Khách quan: mất điện<br />
• Chủ quan: thao tác sai<br />
<br />
2.1. Sự cố do nhập liệu sai<br />
2.2. Sự cố của giao tác (transaction failure)<br />
2.3. Sự cố liên quan đến hệ thống (system failure)<br />
2.4. Sự cố trên thiết bị lưu trữ (media failure)<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
4<br />
<br />
1<br />
<br />
8/25/2017<br />
<br />
2.1. Sự cố do nhập liệu sai<br />
<br />
2.2. Sự cố của giao tác (transaction failure)<br />
• Sự cố gây nên một giao tác kết thúc không bình thường:<br />
• Ví dụ<br />
<br />
• Dữ liệu sai hiển nhiên<br />
• Dữ liệu sai không thể phát hiện<br />
<br />
• Chia cho không<br />
<br />
• DBMS cung cấp các cơ chế cho phép phát hiện lỗi<br />
<br />
• Giao tác bị hủy<br />
<br />
• Ràng buộc khóa chính, khóa ngoại<br />
<br />
• Dữ liệu nhập sai<br />
<br />
• Ràng buộc miền giá trị<br />
<br />
• Tràn số<br />
<br />
• Trigger<br />
5<br />
<br />
2.3. Sự cố liên quan đến hệ thống (system failure)<br />
• Sự cố gây nên bị mất hoặc không thể truy xuất được dữ liệu ở<br />
bộ nhớ trong.<br />
• Ví dụ<br />
• Cúp điện<br />
<br />
6<br />
<br />
Sự cố trên thiết bị lưu trữ (media failure)<br />
• Sự cố gây nên việc mất hay không thể truy cập được dữ liệu ở<br />
bộ nhớ ngòai<br />
• Ví dụ<br />
<br />
• Lỗi phần mềm DBMS hoặc OS<br />
<br />
• Đầu đọc của đĩa cứng hư<br />
<br />
• Hư RAM<br />
<br />
• Sector trên đĩa cứng hư<br />
<br />
7<br />
<br />
8<br />
<br />
2<br />
<br />
8/25/2017<br />
<br />
3. Khôi phục sự cố sau một giao tác<br />
T1<br />
<br />
4. Sự cố hệ thống<br />
<br />
• Nếu một giao tác T bị sự cố thì hệ<br />
thống sẽ thực hiện các việc sau:<br />
<br />
T2<br />
<br />
Lock(A)<br />
Read(A)<br />
A=A+1<br />
Write(A)<br />
Lock(B)<br />
Unlock(A)<br />
<br />
• Giải phóng các đơn vị dữ liệu đang<br />
bị khóa bởi T (UL(B))<br />
• Reset lại giá trị các đơn vị dữ liệu<br />
mà T đã làm thay đổi (A) (khó???)<br />
Lock(A)<br />
Read(A)<br />
A=A+2<br />
<br />
• Xét xem có giao tác nào(#T) đã đọc<br />
dữ liệu do T ghi không? Nếu có:<br />
<br />
4.1. Nhật ký giao tác<br />
4.2. Nghi thức Undo log<br />
4.3. Nghi thức Redo log<br />
4.4. Phục hồi nóng<br />
4.5. Phục hồi lạnh<br />
<br />
-T’ chưa commit hủy<br />
<br />
Read(B)<br />
<br />
-T’ commit rồi thực hiện lại<br />
<br />
Write(A)<br />
Unlock(A)<br />
Commit<br />
<br />
Giả sử B/A (A=0) thì hệ thệ bị đứng<br />
<br />
B=B/A<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
9<br />
<br />
4.1. Nhật ký giao tác<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
10<br />
<br />
4.1. Nhật ký giao tác (tt)<br />
<br />
• Nhật ký giao tác là một chuỗi các mẫu tin (log record) ghi<br />
nhận lại các hành động của DBMS<br />
• Một mẫu tin cho biết một giao tác nào đó đã làm những gì<br />
<br />
• Nhật ký là một tập tin tuần tự được lưu trữ trên bộ nhớ chính,<br />
và sẽ được ghi xuống đĩa ngay khi có thể<br />
A = 8 16<br />
B = 8 16<br />
Actions<br />
<br />
• Hạn chế của PP khôi phục bằng log???<br />
• Check point dùng để cải thiện quá trình phục hồi<br />
• Check point định kỳ xảy ra:<br />
<br />
Data<br />
Log<br />
<br />
Log<br />
<br />
• Ghi tất cả log record từ bộ hớ chính xuống bộ nhớ phụ<br />
• Ghi xuống CSDL tất cả những gì thay đổi trên Buffer<br />
<br />
Disk<br />
Memory<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
11<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
12<br />
<br />
3<br />
<br />
8/25/2017<br />
<br />
4.1. Nhật ký giao tác (tt) – check point<br />
<br />
4.2. Nghi thức Undo<br />
<br />
T2 đã ghi nhận trên đĩa nên không cần phục hồi gì cả<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
13<br />
<br />
4.2. Nghi thức Undo (tt)<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
14<br />
<br />
4.3. Nghi thức REDO<br />
<br />
Khi có sự cố<br />
T1 và T3 đã hoàn tất<br />
<br />
T2 và T4 chưa kết thúc<br />
<br />
T2<br />
<br />
Khôi phục dữ<br />
liệu<br />
<br />
T1<br />
<br />
Bỏ qua<br />
<br />
T4<br />
T3<br />
<br />
Sự cố<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
15<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
16<br />
<br />
4<br />
<br />
8/25/2017<br />
<br />
4.3. Nghi thức REDO (tt)<br />
<br />
4.4. Phục hồi nóng<br />
<br />
Khi có sự cố<br />
<br />
Khi hệ thống đang hoạt động. Cơ chế này dựa trên nhật ký , các bản sao dữ<br />
liệu và điểm phục hồi hệ thống.<br />
<br />
T1 và T3 đã hoàn tất<br />
<br />
T2 và T4 chưa kết thúc<br />
<br />
T1<br />
<br />
Bỏ qua<br />
<br />
T2<br />
<br />
Thực hiện lại<br />
T3<br />
<br />
T4<br />
<br />
Sự cố<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
17<br />
<br />
4.5. Phục hồi lạnh<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
18<br />
<br />
5. Cài đặt cơ chế sao lưu và phục hồi dữ liệu<br />
1. Full Backup<br />
2. Differential Backup<br />
3. Log Backup<br />
<br />
• Xảy ra do lỗi thiết bị (thiết bị hư, thay đĩa khác).<br />
• Thông thường người ta có một phiên bản CSDL và nhật ký<br />
nằm trên một đĩa khác. Cơ chế này dựa trên “nhật ký sau”<br />
<br />
• Cơ chế phục hồi lạnh tùy thuộc vào người quản trị CSDL<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
19<br />
<br />
Hệ quản trị Cơ sở dữ liệu<br />
<br />
20<br />
<br />
5<br />
<br />