Sự cố trên thiết bị lưu trữ (media failure).. Hệ quản trị Cơsở dữ liệu 4..[r]
(1)Chương 10.
Khôi phục liệu
GV: Lê Thị Minh Nguyện Email: nguyenltm@huflit.edu.vn
Nội dung Khái niệm
2 Phân loại cố
3 Khôi phục cố sau giao tác Khôi phục sau cố hệ thống
5 Cài đặt chế lưu phục hồi liệu
Hệ quản trị Cơsở liệu
1 Khái niệm
•Khơi phục CSDL tiến trình phục hồi CSDL trạng thái quán cuối trước có cố xảy
•Khơi phục liệu tự động giúp giảm thiểu việc yêu cầu người sử dụng thực lại công việc (khi xảy cố) •Giao tác đơn vị khôi phục CSDL
Hệ quản trị Cơsở liệu
2 Phân loại cố
•Sự cố giao tác: cố gây nên việc giao tác kết thúc khơng bình thường
•Một số cố xảy do: •Khách quan: điện
•Chủ quan: thao tác sai 2.1 Sự cố nhập liệu sai
2.2 Sự cố giao tác (transaction failure) 2.3 Sự cố liên quan đến hệ thống (system failure)
2.4 Sự cố thiết bị lưu trữ (media failure)
(2)•Dữ liệu sai hiển nhiên
•Dữ liệu sai khơng thể phát
•DBMS cung cấp chế cho phép pháthiệ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ố nhập liệu sai
•Sự cố gây nên giao tác kết thúc khơngbì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
2.2 Sự cố giao tác (transaction failure)
•Sự cố gây nên bị truyxuất liệu nhớ
•Ví dụ •Cúp điện
•Lỗi phần mềm DBMS OS •Hư RAM
7
2.3 Sự cố liên quan đến hệ thống (system failure)
•Sự cố gây nên việc hay truycập liệu nhớ ngịai
•Ví dụ
•Đầu đọc đĩa cứng hư •Sector đĩa cứng hư
(3)3 Khôi phục cố sau giao tác
Hệ quản trị Cơsở liệu
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 giao tác T bị cố hệ thống thực việc sau:
•Giải phóng đơn vị liệu bị khóa T (UL(B))
•Reset lại giá trị đơn vị liệu mà T làm thay đổi (A)(khó???) •Xét xem có giao tác nào(#T) đọc
dữ liệu T ghi khơng? Nếu có: -T’ chưa commit hủy -T’ commit rồithực lại
Giả sử B/A (A=0) hệ thệ bị đứng
4 Sự cố hệ thống
Hệ quản trị Cơsở liệu 10
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
Hệ quản trị Cơsở liệu 11
•Nhật ký giao tác chuỗi mẫu tin (log record) ghi nhận lại hành động DBMS
•Một mẫu tin cho biết giao tác làm
•Nhật ký tập tin lưu trữ nhớ chính, ghi xuống đĩa
Actions Log
Data
Memory A = 816
B = 16
Log
Disk
4.1 Nhật ký giao tác (tt)
•Hạn chế PP khơi phục log???
•Check point dùng để cải thiện trình phục hồi
•Check point định kỳ xảy ra:
•Ghi tất log record từ hớ xuống nhớ phụ
•Ghi xuống CSDL tất thay đổi Buffer
(4)4.1 Nhật ký giao tác (tt) – check point
Hệ quản trị Cơsở liệu 13
T2 ghi nhận đĩa nên khơng cần phục hồi
4.2 Nghi thức Undo
Hệ quản trị Cơsở liệu 14
4.2 Nghi thức Undo (tt)
Hệ quản trị Cơsở liệu 15
Khi có cố
T1và T3đã hoàn tất T2và T4chưa kết thúc
T3
T4
T1
Sự cố
T2
Bỏ qua
Khôi phục liệu
4.3 Nghi thức REDO
(5)4.3 Nghi thức REDO (tt)
Hệ quản trị Cơsở liệu 17
Khi có cố
T1và T3đã hồn tất T2và T4chưa kết thúc
T3 T4
T1
Sự cố
T2 Bỏ qua Thực lại
4.4 Phục hồi nóng
Hệ quản trị Cơsở liệu 18
Khihệ thống hoạt động Cơ chếnàydựatrênnhậtký , cácbảnsaodữ
liệuvàđiểm phục hồi hệ thống.
4.5 Phục hồi lạnh
•Xảy lỗi thiết bị (thiết bị hư, thay đĩa khác)
•Thơng thường người ta có phiên CSDL nhật ký nằm đĩa khác Cơchế dựa “nhật ký sau” •Cơ chế phục hồi lạnh tùy thuộc vào người quản trị CSDL
Hệ quản trị Cơsở liệu 19
5 Cài đặt chế lưu phục hồi liệu
1 Full Backup
2 Differential Backup 3 Log Backup
(6)Full Backup
21
•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
22 •Cú pháp:
Backup database <tên database> TO <tên logic backup>
WITH DIFFERENTIAL
•Ví dụ
BACKUP DATABASEAdventureWorks
TO DISK= ’C:\Backup\AdventureWorks.bak’
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 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>
(7)Ví dụ
25 •backup databaseqlsv to disk='d:\qlsv.bak'
•restore databaseqlsv from disk='d:\qlsv.bak'
Backup tự động
26
Right Click vàoJobschọnNew Job…