Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.22 MB, 7 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
GV: Lê Thị Minh Nguyện
Email:
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
Hệ quản trị Cơsở dữ liệu 2
•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.
•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 thực 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.
Hệ quản trị Cơsở dữ liệu 3
•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
•Một số sự cố có thể xảy ra do:
•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)
•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á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
•Sự cố gây nên một 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
•Sự cố gây nên bị mất hoặc không thể truyxuấ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ố gây nên việc mất hay không thể truycậ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ư
Hệ quản trị Cơsở dữ liệu 9
<b>T1</b> <b>T2</b>
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)<b>(khó???)</b>
•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ồithực hiện lại
Giả sử B/A (A=0) thì hệ thệ bị đứng
Hệ quản trị Cơsở dữ 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
Hệ quản trị Cơsở dữ liệu 11
•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,
Actions Log
Data
Memory
A = 8<b>16</b>
B = 8 <b>16</b>
Log
Disk
•Hạn chế của PP khơi phục bằng log???
•Check point dùng để cải thiện q 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
Hệ quản trị Cơsở dữ liệu 13
T2 đã ghi nhận trên đĩa nên khơng cần phục hồi gì cả
Hệ quản trị Cơsở dữ liệu 14
Hệ quản trị Cơsở dữ liệu 15
Khi có sự cố
T1và T3đã hồn tất
T2và T4chưa kết thúc
T3
T4
T1
Sự cố
T2
Bỏ qua
Khơi phục dữ
liệu
Hệ quản trị Cơsở dữ liệu 17
Khi có sự cố
T1và T3đã hồn tất
T2và T4chưa kết thúc
T3 T4
T1
Sự cố
T2 Bỏ qua
Thực hiện lại
Hệ quản trị Cơsở dữ liệu 18
<b>Khihệ thống đang hoạt động. Cơ chếnàydựatrênnhậtký , cácbảnsaodữ</b>
<b>liệuvàđiểm phục hồi hệ thống.</b>
•Xảy ra do lỗi thiết bị (thiết bị hư, thay đĩa khác).
•Thơng thường người ta có một phiên bản 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”
•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ở dữ liệu 19
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’
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
23
•Cú pháp:
Backup log <tên database> TO <tên logic backup>
WITH NO_TRUNCATE
•<b>BACKUP LOG </b>AdventureWorks
<b>TO DISK= 'C:\SQL\Backup\</b>AdventureWorks<b>.bak' </b>
<b>WITH NO_TRUNCATE</b>
24
•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>
25
•backup databaseqlsv to disk='d:\qlsv.bak'
•restore databaseqlsv from disk='d:\qlsv.bak'
26
Right Click vào<b>Jobs</b>chọn<b>New Job… </b>