Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 4 Các kỹ thuật phục hồi cơ sở dữ liệu cung cấp cho người học những kiến thức như: Các loại sự cố Lịch trình khả phục hồi; Tổng quan về phục hồi; Kĩ thuật Write-Ahead Logging; Kĩ thuật phục hồi dựa trên Deferred Update; Kĩ thuật phục hồi dựa trên Immediate Update; Kĩ thuật phục hồi dựa trên Shadow Paging.
CÁC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU CHƯƠNG CÁC KỸ THUẬT PHỤC HỒI CSDL Giảng viên: Đỗ Ngọc Như Loan Biên soạn: Nguyễn Thị Uyên Nhi KHOA CÔNG NGHỆ THÔNG TIN NỘI DUNG Các loại cố Lịch trình khả phục hồi Tổng quan phục hồi Kĩ thuật Write-Ahead Logging Kĩ thuật phục hồi dựa Deferred Update Kĩ thuật phục hồi dựa Immediate Update Kĩ thuật phục hồi dựa Shadow Paging SGU - CNTT - Hệ quản trị sở liệu SỰ CỐ Ít nghiêm trọng (Catastrophic Failure) (Noncatastrophic Failure) SGU - CNTT - Hệ quản trị sở liệu Nghiêm trọng SỰ CỐ Theo góc nhìn hệ thống, khơng phải góc nhìn ứng dụng SỰ CỐ ÍT NGHIÊM TRỌNG Noncatastrophic failure Thể hiện: CSDL hoạt động ngữ nghĩa bị sai lệch tạm thời Phạm vi: Mức độ ảnh hưởng cục Chi phí: Có thể phục hồi nhanh chóng, dễ dàng Các cố hệ thống (phần cứng, phần mềm, mạng), cố liên quan đến việc thực thi transaction SGU - CNTT - Hệ quản trị sở liệu SỰ CỐ NGHIÊM TRỌNG Catastrophic failure Thể hiện: CSDL không hoạt động thời gian dài Phạm vi: Mức độ ảnh hưởng rộng lớn Chi phí: Địi hỏi nhiều chi phí cho việc phục hồi Các cố liên quan đến ổ đĩa cố vật lý khác SGU - CNTT - Hệ quản trị sở liệu TÍNH KHẢ PHỤC HỒI CỦA LỊCH TRÌNH Trong việc tìm hiểu điều khiển song hành, ta chưa xét nhiều đến thất bại giao dịch Nếu giao dịch Ti thất bại lý (thường cố - failures), ta cần hủy bỏ giao dịch để đảm bảo tính nguyên tử giao dịch Và để đảm bảo tính quán, ta cần phải hủy bỏ tất hiệu liên quan giao dịch T SGU - CNTT - Hệ quản trị sở liệu TÍNH KHẢ PHỤC HỒI CỦA LỊCH TRÌNH Một số lịch trình dễ dàng phục hồi số khác phục hồi Lịch trình mà có giao dịch sau bàn giao (Commit) rollback lại gọi lịch trình khả phục hồi (recoverable) Với cặp giao dịch Ti Tj lịch trình khả phục hồi: Ti đọc hạng mục liệu ghi Tj lệnh commit Tj phải diễn trước lệnh commit Ti SGU - CNTT - Hệ quản trị sở liệu VÍ DỤ T1 Lịch trình S1 T2 Read(X) Read(Y) Write(X) Commit SGU - CNTT - Hệ quản trị sở liệu Read(X) Write(X) Giả sử trường hợp T1 gặp cố phải rollback T2? Lịch trình phục hồi không phép thực Abort VÍ DỤ T1 Lịch trình S2 T1 Read(X) Read(X) Write(X) Read(X) Write(X) Read(Y) T2 SGU - CNTT - Hệ quản trị sở liệu T2 Lịch trình S3 Read(X) Read(Y) Write(X) Commit Write(Y) Commit Write(X) Write(Y) Commit Commit Khả phục hồi? LỊCH TRÌNH CASCADELESS T1 Lịch trình S4 T2 Read(A) Write(A) Read(A) SGU - CNTT - Hệ quản trị sở liệu T3 Read(A) Read(B) Write(A) Abort Ngay lịch trình khả phục hồi, việc phục hồi sau thất bại giao dịch xảy vấn đề Việc rollback S4 diễn nào? 10 CẢI TIẾN RDU Nếu giao dịch bị hủy bỏ, cần thực lại mà khơng ảnh hưởng đến CSDL Hạn chế: Ưu điểm: giao dịch không cần UNDO: Không thay đổi liệu giao dịch commit Không đọc liệu giao dịch chưa commit khóa SGU - CNTT - Hệ quản trị sở liệu Giới hạn giao dịch đồng thời khóa hạng mục liệu mở giao dịch hồn tất Cần khơng gian buffer lớn để lưu liệu có chỉnh sửa giao dịch commit 56 VÍ DỤ SGU - CNTT - Hệ quản trị sở liệu 57 KĨ THUẬT PHỤC HỒI DỰA TRÊN IMMEDIATE UPDATE Khi giao dịch thay đổi giá trị, CSDL cập nhật mà khơng cần đợi cho giao dịch hồn tất Việc cập nhật thay đổi lên đĩa trước hết cần ghi lại log đĩa – chế WAL để phục hồi trường hợp xảy cố SGU - CNTT - Hệ quản trị sở liệu 58 KĨ THUẬT PHỤC HỒI DỰA TRÊN IMMEDIATE UPDATE Khi giao dịch thất bại, ta cần phải khôi phục (undo) tác động thao tác cập nhật ảnh hưởng đến CSDL giao dịch Thực hiện: rollback giao dịch, UNDO tác động thao tác Write Về lý thuyết, chia làm loại: SGU - CNTT - Hệ quản trị sở liệu Tất cập nhật ghi đĩa trước giao dịch commit: UNDO/NO-REDO Tổng quát: Cho phép giao dịch commit trước tất thay đổi ghi vào đĩa: UNDO/REDO 59 GIẢI THUẬT RIU_S Recovery using Immediate Update in a Single-user environment (RIU_S) Khi cố xảy ra, giao dịch thực cập nhật số liệu CSDL, thay đổi cần phải UNDO Giải thuật RIU_S sử dụng thủ tục REDO phần trước thủ tục UNDO SGU - CNTT - Hệ quản trị sở liệu 60 THỦ TỤC UNDO Phục hồi (UNDO) thao tác Write dựa việc xem xét entry log [write, T, X, old_value, new_value] đổi giá trị X CSDL thành old_value (BFIM) Việc phục hồi phải thực theo thứ tự ngược lại với thứ tự thao tác ghi log SGU - CNTT - Hệ quản trị sở liệu 61 GIẢI THUẬT RIU_S Sử dụng danh sách giao dịch: Danh sách giao dịch commit từ checkpoint trước Danh sách giao dịch thực (max 1) SGU - CNTT - Hệ quản trị sở liệu UNDO tất thao tác Write giao dịch thực theo thủ tục UNDO REDO thao tác Write giao dịch commit dựa log theo thứ tự ghi log theo thủ tục REDO 62 GIẢI THUẬT RIU_M Xử lý song hành: Sử dụng strict 2PL xảy deadlock hủy bỏ UNDO Sử dụng danh sách giao dịch: UNDO tất thao tác Write giao dịch thực theo thủ tục UNDO theo thứ tự ngược với thứ tự ghi log REDO thao tác Write giao dịch commit dựa log theo thứ tự ghi log theo thủ tục REDO SGU - CNTT - Hệ quản trị sở liệu Danh sách giao dịch commit từ checkpoint trước Danh sách giao dịch thực 63 KĨ THUẬT PHỤC HỒI DỰA TRÊN SHADOW PAGING Không cần đến log Single-user environment, multi-user environment, cần đến log để xử lý song hành Xem CSDL tạo thành tập hợp disk page kích thước cố định Dùng Directory lưu địa page Database đĩa quản lý nhớ khơng q lớn Khi bắt đầu giao dịch, directory lưu lại (shadow directory) lưu vào đĩa SGU - CNTT - Hệ quản trị sở liệu 64 KĨ THUẬT PHỤC HỒI DỰA TRÊN SHADOW PAGING Trong suốt trình thực giao dịch, xử lý current directory Khi thực write, page tạo không ghi đè lên page cũ Địa tương ứng page current directory thay đổi đến page tạo SGU - CNTT - Hệ quản trị sở liệu 65 MINH HỌA SHADOW PAGE KĨ THUẬT PHỤC HỒI DỰA TRÊN SHADOW PAGING Phục hồi đơn giản thực hiện: Xóa page chỉnh sửa disk (Page New) Hủy bỏ current directory SGU - CNTT - Hệ quản trị sở liệu Trạng thái liệu trước xảy cố tái lập thông qua shadow directory Khi commit giao dịch: hủy bỏ shadow directory Không cần undo hay redo liệu NO-UNDO/NOREDO 67 KĨ THUẬT PHỤC HỒI DỰA TRÊN SHADOW PAGING Với multi-user environment, log checkpoint sử dụng Hạn chế: SGU - CNTT - Hệ quản trị sở liệu Khó kiểm sốt vị trí page đĩa gần Vấn đề ghi directory xuống đĩa trường hợp directory lớn Vấn đề garbage collection giao dịch commit Phải đảm bảo tính ngun tử q trình xử lý current shadow directory 68 MỘT SỐ VẤN ĐỀ KHÁC Giải thuật phục hồi ARIES Vấn đề phục hồi hệ thống multiDB Sao lưu phục hồi cố lớn SGU - CNTT - Hệ quản trị sở liệu 69 70 Tham khảo chương 23 Fundamentals of Database System, 6th Edition SGU - CNTT - Hệ quản trị sở liệu END ... Giá trị m hay t tham số hệ thống SGU - CNTT - Hệ quản trị sở liệu 33 CHECKPOINT SGU - CNTT - Hệ quản trị sở liệu Quy trình thực checkpoint: Tạm dừng hoạt động xử lý giao dịch Force-write... liệu 38 VÍ DỤ SGU - CNTT - Hệ quản trị sở liệu 39 VÍ DỤ Chỉ thao tác Write cần UNDO Thao tác Read log cần cho việc xác định cascading rollback SGU - CNTT - Hệ quản trị sở liệu 40 VÍ DỤ Trên thực... Tj phải diễn trước lệnh commit Ti SGU - CNTT - Hệ quản trị sở liệu VÍ DỤ T1 Lịch trình S1 T2 Read(X) Read(Y) Write(X) Commit SGU - CNTT - Hệ quản trị sở liệu Read(X) Write(X) Giả sử trường hợp