CÁC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU CHƯƠNG 4 CÁC KỸ THUẬT PHỤC HỒI CSDL KHOA CÔNG NGHỆ THÔNG TIN Giảng viên Đỗ Ngọc Như Loan Biên soạn Nguyễn Thị Uyên Nhi NỘI DUNG Các loại sự cố Lịch trình khả phục hồi[.]
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 LỊCH TRÌNH CASCADELESS Hiện tượng giao dịch thất bại kéo theo loạt giao dịch khác phải rollback gọi cuộn lại hàng loạt (cascading rollback) Việc dẫn đến việc hủy bỏ khối lượng cơng việc đáng kể Các lịch trình khơng xảy cascading rollback gọi lịch trình cascadeless SGU - CNTT - Hệ quản trị sở liệu 11 LỊCH TRÌNH CASCADELESS Một lịch trình cascadeless lịch trình cặp giao dịch Ti Tj: Nếu Ti đọc hạng mục liệu ghi trước Tj lệnh commit Tj phải diễn trước lệnh đọc Ti Nghĩa là: hành động commit giao dịch ghi phải diễn trước hành động đọc giao dịch đọc LỊCH TRÌNH STRICT Một lịch trình strict lịch trình giao dịch khơng thể đọc/ghi liệu X trước giao dịch ghi liệu X gần hoàn tất (commit abort) Giúp trình phục hồi đơn giản Mọi lịch trình strict lịch trình cascadeless, lịch trình cascadeless lịch trình khả phục hồi SGU - CNTT - Hệ quản trị sở liệu 13 NGUYÊN TẮC CHUNG Khơi phục/phục hồi sau cố có nghĩa CSDL khôi phục lại trạng thái quán gần trước thời điểm xảy cố Để thực điều này, hệ thống cần lưu giữ thông tin thay đổi liệu giao dịch SGU - CNTT - Hệ quản trị sở liệu 14 CƠ CHẾ PHỤC HỒI CƠ BẢN Nếu xảy cố nghiêm trọng, hệ thống khôi phục lại liệu lưu trước thực lại (redo) thao tác giao dịch bàn giao dựa vào file log lưu Nếu xảy cố nghiệm trọng, hệ thống hủy bỏ thao tác gây tính khơng qn (undo) Trong số tình huống, cần phải thực lại số thao tác (redo) SGU - CNTT - Hệ quản trị sở liệu 15 PHÂN LOẠI CƠ BẢN Về lý thuyết, ta phân biệt loại giải thuật phục hồi dựa trên: Một giải thuật phục hồi thường gồm phần: Các hành động thực suốt trình hoạt động bình thường hệ thống Các hành động thực sau lỗi phát sinh SGU - CNTT - Hệ quản trị sở liệu Trì hỗn cập nhật (Deferred update) Cập nhật (Immediate update) 16 DEFERRED UPDATE TECHNIQUES Không cập nhật CSDL đĩa giao dịch bàn giao Trước đó, thay đổi lưu vùng làm việc cục giao dịch – local transaction workspace (buffers) Trong trình bàn giao, thay đổi trước tiên lưu log sau ghi vào CSDL SGU - CNTT - Hệ quản trị sở liệu 17 DEFERRED UPDATE TECHNIQUES Nếu giao dịch lỗi trước bàn giao, khơng thay đổi CSDL UNDO khơng cần thực Có thể cần thực lại (REDO) số tác động giao dịch hoàn tất dựa log xảy cố chưa kịp ghi vào CSDL Giải thuật NO-UNDO/REDO SGU - CNTT - Hệ quản trị sở liệu 18 IMMEDIATE UPDATE TECHNIQUES CSDL cập nhật số thao tác giao dịch chưa bàn giao Việc cập nhật thường lưu vào log đĩa trước cập nhật vào CSDL Nếu cố xảy sau thay đổi CSDL trước thời điểm bàn giao, giao dịch phải rollback Thông thường UNDO REDO cần Giải thuật UNDO/REDO biến thể UNDO/NOREDO SGU - CNTT - Hệ quản trị sở liệu 19 CACHING OF DISK BLOCKS Cơ chế phục hồi liên quan chặt chẽ đến hệ điều hành cụ thể việc đọc liệu vào nhớ (caching/buffering) Một hay nhiều disk page có chứa liệu cần thay đổi đọc vào nhớ sau thay đổi ghi ngược lại CSDL Đây công việc hệ điều hành, nhiên quan trọng với quy trình phục hồi điều khiển HQT CSDL SGU - CNTT - Hệ quản trị sở liệu 20 ... 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... 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)... thống cần lưu giữ thông tin thay đổi liệu giao dịch SGU - CNTT - Hệ quản trị sở liệu 14 CƠ CHẾ PHỤC HỒI CƠ BẢN Nếu xảy cố nghiêm trọng, hệ thống khôi phục lại liệu lưu trước thực lại (redo) thao