Sự cố trên thiết bị lưu trữ (media failure).. Hệ quản trị Cơsở dữ liệu 4..[r]
Trang 1Chương 10.
Khôi phục dữ liệu
GV: Lê Thị Minh Nguyện Email: nguyenltm@huflit.edu.vn
Nội dung
1 Khái niệm
2 Phân loại các sự cố
3 Khôi phục sự cố sau một giao tác
4 Khôi phục sau sự cố hệ thống
5 Cài đặt cơ chế sao lưu và phục hồi dữ liệu
1 Khái niệm
nhất quán cuối cùng trước khi có sự cố xảy ra
người sử dụng thực hiện lại công việc (khi xảy ra sự cố)
2 Phân loại sự cố
•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 không bình thường
• Khách quan: mất điện
• Chủ quan: thao tác sai
2.1 Sự cố do nhập liệu sai 2.2 Sự cố của giao tác (transaction failure) 2.3 Sự cố liên quan đến hệ thống (system failure) 2.4 Sự cố trên thiết bị lưu trữ (media failure)
Trang 2• 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
2.1 Sự cố do nhập liệu sai
•Ví dụ
• Chia cho không
• Giao tác bị hủy
• Dữ liệu nhập sai
• Tràn số
6
2.2 Sự cố của giao tác (transaction failure)
bộ nhớ trong
• Cúp điện
• Lỗi phần mềm DBMS hoặc OS
• Hư RAM
7
2.3 Sự cố liên quan đến hệ thống (system failure)
bộ nhớ ngòai
• Đầu đọc của đĩa cứng hư
• Sector trên đĩa cứng hư
8
Sự cố trên thiết bị lưu trữ (media failure)
Trang 33 Khôi phục sự cố sau một giao tác
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)(khó???)
• 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
4 Sự cố hệ thống
4.1 Nhật ký giao tác 4.2 Nghi thức Undo log 4.3 Nghi thức Redo log 4.4 Phục hồi nóng 4.5 Phục hồi lạnh
4.1 Nhật ký giao tác
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ì
và sẽ được ghi xuống đĩa ngay khi có thể
Data
Memory
A = 816
B = 8 16
Log
Disk
4.1 Nhật ký giao tác (tt)
•Hạn chế của PP khôi phục bằng log???
•Check point dùng để cải thiện quá trình phục hồi
•Check point định kỳ xảy ra:
• Ghi tất cả log record từ bộ hớ chính xuống bộ nhớ phụ
• Ghi xuống CSDL tất cả những gì thay đổi trên Buffer
Trang 44.1 Nhật ký giao tác (tt) – check point
T2 đã ghi nhận trên đĩa nên không cần phục hồi gì cả
4.2 Nghi thức Undo
4.2 Nghi thức Undo (tt)
Khi có sự cố
T1và T3đã hoàn tất
T2và T4chưa kết thúc
T3
T4
T 1
Sự cố
T 2
Bỏ qua
Khôi phục dữ liệu
4.3 Nghi thức REDO
Trang 54.3 Nghi thức REDO (tt)
Khi có sự cố
T1và T3đã hoàn tất
T2và T4chưa kết thúc
T 3 T 4
T 1
Sự cố
Thực hiện lại
4.4 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ý , các bản sao dữ liệu và điểm phục hồi hệ thống.
4.5 Phục hồi lạnh
•Xảy ra do lỗi thiết bị (thiết bị hư, thay đĩa khác)
nằm trên một đĩa khác Cơ chế này dựa trên “nhật ký sau”
5 Cài đặt cơ chế sao lưu và phục hồi dữ liệu
1 Full Backup
2 Differential Backup
3 Log Backup
Trang 6Full Backup
21
• Cú pháp
Backup database <tên database> TO <tên logic backup>
• Ví dụ
‘C:\Backup\AdventureWorks.bak’
Differential Backup
22
• Cú pháp:
Backup database <tên database> TO <tên logic backup>
WITH DIFFERENTIAL
• Ví dụ
WITH DIFFERENTIAL
Log Backup
23
• 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)
24
• Phục hồi tòan bộ CSDL Restore database <tên database>
from <thiết bị backup>
Ví dụ:
‘C:\Backup\AdventureWorks.bak’
• Phục hồi giao tác Restore log <tên database>
from <thiết bị backup>
Trang 7Ví dụ
25
Backup tự động
26
Right Click vào Jobs chọn New Job…