Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 39 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
39
Dung lượng
507,14 KB
Nội dung
Khôi ph phụ ục sau cố Mục lục Mục tiêu Phân loại cố Khôi phục sau cố giao tác Khôi phục sau cố hệ thống Khôi phục sau cố thiết bị lưu trữ Mục tiêu Khôi phục lại trạng thái quán CSDL trước cố xãy Khôi phục tự ñộng giúp giảm thiểu việc phải thực lại cơng việc làm trước cố xãy Quả Quản lý khôi ph phụ ục (Recovery Manager) Là phận hệ quản trị sở liệu, chịu trách nhiệm ◦ Bảo đảm tính chất nguyên tố bền vững giao tác ◦ Bảo đảm tính ngun tố, nghĩa phải khơi phục liệu ban ñầu giao tác chưa commit ◦ Bảo đảm tính bền vững, nghĩa phải bảo ñảm thay ñổi giao tác ñã commit phải ñược ghi nhận Phân lo loạ ại cố Sự cố giao tác (Transaction Failure): cố làm cho giao tác kết thúc không bình thường Sự cố hệ thống (System Failure): cố làm truy xuất liệu nhớ Sự cố thiết bị lưu trữ (Media Failure): số làm khơng thể truy xuất liệu thiết bị lưu trữ Xử lý cố thi thiế ết bị lưu tr trữ ữ Các giả giải pháp Sao lưu (Backup) liệu xuống thiết bị lưu trữ Khôi phục (Restore) từ thiết bị lưu trữ Tạo khai thác song hành nhiều bảng CSDL Xử lý cố giao tác Ví dụ T1 T2 T3 Lock(A) Read(A) Lock(B) Read(B) A:= A-10 Write(A) Unlock(A) Lock(C) C:=C+10 Write(C) Unlock(C) Lock(C) Read (C) C:=C*2 Write(C) Unlock(C) Commit Lock(A) Read(A) B:=B/A Nh Nhậ ận xét thí dụ nêu Khi cố xãy ra, ta thấy T2 ñang giữ Lock(B) => chịu trách nhiệm giải phóng B ? T2 ñã làm thay ñổi ñơn vị liệu C => phải trả lại giá trị C ban ñầu ? T3 ñọc liệu C ñã ñược ghi T2 ñã commit trước cố xãy => phải xử lý với T3 T1 chưa commit cố xãy => làm hành động T1 trước cố ? Thuậ Thu ật tốn khơi ph phụ ục ARIES Gồm giai đoạn Phân tích (Analysis) : Xác ñịnh trang liệu co thay doi nhung chua duoc cap nhat (dirty page) vùng ñệm giao tác ñang hoạt ñộng cố xãy Thực lại (Redo) : lập lại hành động từ điểm nhật ký khơi phục CSDL ñến trạng thái trước bị cố Hủy (Undo) : hủy hành ñộng giao tác chưa commit Nguyên lý thu thuậ ật toán Viết nhật ký (log) trước (Write-Ahead Logging – WAL): thay ñổi ñ.v.d.l phải ñược ghi vào tập nhật ký trước nhật ký phải ñược ghi ñĩa trước ñ.v.d.l ñược ghi Tái lập lịch sử giai ñoạn thực lại : khởi ñộng lại sau cố, ARIES tiến hành lưu lại vết tất hành ñộng trước cố xãy Nguyên lý thu thuậ ật toán Ghi nhận lại thay ñổi thực giai ñoạn hủy : thay ñổi ñược làm trình hủy hành động giao tác chưa commit phải ñược ghi nhận lại ðiể ðiểm lưu tr trữ ữ ARIES Khi ñến ñiểm lưu trữ, ARIES thực bước sau viết mẫu tinh begin_checkpoint vào nhật ký Một mẫu tin end_checkpoint ñược xây dựng Một mẫu tin ñặc biệt chứa LSN mẫu tin begin_checkpoint ñược ghi vào nơi cho trước ñĩa Nh Nhậ ật ký giao tác (transaction log) Là tập tin ghi nhận lại thao tác lên CSDL Mỗi mẫu tin tập nhật ký ñược gán số thứ tự (LSN : Log Sequence Number) Cấu trúc mẫu tin nhật ký prevLSN TransID type pageID Length Offset Beforeimage Afterimage Cập nh nhậ ật nh nhậ ật ký giao tác Nhật ký giao tác ñược cập nhật sau thao tác Cập nhật trang (Update) Giao tác hoàn tất (Commit) Giao tác bị hủy (Abort) Giao tác kết thúc (End) Hủy cập nhật (Undo) Các liệ liệu liên quan đến q trình khơi ph phụ ục DB Buffer DB Recovery Manager Log Buffer Log 31 Các cấu trúc khác liên quan Bảng giao tác (Transaction Table) : bảng chứa mẫu tin (entry) liên quan ñến hành ñộng giao tác ñang hoạt dộng Mỗi mục gồm hai thuộc tính ◦ ðịnh danh giao tác (Transaction ID) ◦ LastLSN : trỏ ñến LSN gần thuộc giao tác Các cấu trúc khác Bảng trang chưa cập nhật hoàn chỉnh (Dirty page table): mẫu tin bảng liên quan ñến trang liệu chưa cập nhật hoàn chỉnh Bảng gồm hai cột ◦ Page ID : ñịnh danh trang ◦ recLSN: trỏ ñến LSN ñầu tiên ñã làm cho trang thành dirty PageLSN ðể phục vụ cho mục tiêu khôi phục, trang liệu lưu trữ LSN mẫu tin nhật ký ghi nhận thay ñổi trang gần Ví dụ PageID recLSN P500 P600 P505 prevLSN TransID T1000 T2000 lastLSN TransID type pageID Length Offset Beforeimage Afterimage T1000 Update P500 21 ABC DEF T2000 Update P600 41 HIJ KLM T2000 Update P500 20 GDE QRS T1000 Update P505 21 TUV WXY Ti Tiế ến trình khơi ph phụ ục sau cố Giai đoạn phân tích nhằm xác định ðiểm bắt ñầu tiến hành thực lại Các trang chưa cập nhật Các giao tác ñang hoạt ñộng chưa commit ñể hủy Giai ño ñoạ ạn phân tích Tìm điểm checkpoint gần nhật ký Tạo hai bảng transaction page va dirty page trống Duyệt từ ñiểm checkpoint xuống cuối nhật ký ñể cập nhật hai bảng => Transaction page : chứa trang ñang chưa commit cố xảy Dirty page : chứa trang có thay đổi liệu ghi xuống ñĩa Giai ño ñoạ ạn hủy Duyệt từ cuối tập nhật ký lên ñến checkpoint gần Lấy lại giá trị cũ mẫu tin update giao tác chưa commit (xuất transaction table) Tạo mẫu tin CLR (Compensation Log Record) Giai ño ñoạ ạn th thự ực hiệ lại Duyệt trang bảng dirty page, trang xác ñịnh mẩu tin nhật ký ghi nhận hành ñộng thay ñổi ñầu tiên trang (dựa vào recLSN) Nếu hành động thực lại ◦ Thực lại ◦ pageLSN ñược gán giá trị LSN mẫu tin ñang xét ... tác T1 T2 T3 Lock(A) [Begin-Trans,T1] Read(A) [Read,T1,A] Lock(B) [Begin-Trans, T2] Read(B) [Read,T2,B] A:= A -10 Write(A) [Write,T1,A ,10 ,0] Unlock(A) Lock(C) C:=C +10 Write(C) [Write,T2,C ,10 ,20]... TransID T1000 T2000 lastLSN TransID type pageID Length Offset Beforeimage Afterimage T1000 Update P500 21 ABC DEF T2000 Update P600 41 HIJ KLM T2000 Update P500 20 GDE QRS T1000 Update P505 21 TUV... thác song hành nhiều bảng CSDL Xử lý cố giao tác Ví dụ T1 T2 T3 Lock(A) Read(A) Lock(B) Read(B) A:= A -10 Write(A) Unlock(A) Lock(C) C:=C +10 Write(C) Unlock(C) Lock(C) Read (C) C:=C*2 Write(C)