1. Trang chủ
  2. » Công Nghệ Thông Tin

CHƯƠNG VI: HỆ THỐNG PHỤC HỒI

16 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Một hệ thống máy tính, cũng giống như các thiết bị cơ - điện khác, luôn có nguy cơ bị hỏng hóc do nhiều nguyên nhân hư đĩa, mất nguồn, lỗi phần mềm v..v... Điều này dẫn đến hậu quả là sự mất thông tin. Vì vậy, hệ quản trị cơ sở dữ liệu phải có các cơ chế đáp ứng lại nguy cơ hệ thống bị hỏng hóc, nhằm đảm bảo tính nguyên tử và tính lâu bền của các giao dịch.

HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU CHƯƠNG VI HỆ THỐNG PHỤC HỒI (Recovery system) MỤC ĐÍCH Một hệ thống máy tính, giống thiết bị - điện khác, ln có nguy bị hỏng hóc nhiều nguyên nhân hư đĩa, nguồn, lỗi phần mềm v v Điều dẫn đến hậu thơng tin Vì vậy, hệ quản trị sở liệu phải có chế đáp ứng lại nguy hệ thống bị hỏng hóc, nhằm đảm bảo tính nguyên tử tính lâu bền giao dịch Chương trình bày nguyên lý hệ thống phục hồi nhằm khôi phục CSDL đến trạng thái quán trước xảy cố YÊU CẦU Hiểu rõ cố xảy đời sống sở liệu, nguyên nhân không quán liệu Hiểu kỹ thuật phục hồi, ưu nhược điểm kỹ thuật CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 118 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU PHÂN LỚP HỎNG HĨC: Có nhiều kiểu hỏng hóc xảy đến với hệ thống, chúng cần ứng xử cách riêng biệt Trong chương ta xét kiểu hỏng hóc sau: • Hỏng hóc giao dịch: Có hai loại lỗi làm cho giao dịch bị hỏng hóc: Lỗi luận lý: Giao dịch khơng thể tiếp tục thực bình thường số điều kiện bên không thoả ví dụ như: liệu đầu vào khơng đúng, khơng tìm thấy liệu, trào liệu việc sử dụng tài nguyên vượt hạn định Lỗi hệ thống: Hệ thống rơi vào trạng thái không mong muốn ví dụ trạng thái deadlock • Hệ thống bị hư hỏng: Có phần cứng sai chức có sai sót phần mềm sở liệu hay hệ điều hành • Đĩa bị hư hỏng: Một khối đĩa bị nội dung Để hệ thống đề chiến lược phục hồi lỗi phù hợp, trước tiên cần phải xác định loại hỏng hóc thiết bị lưu trữ liệu Sau đó, cần xác định hỏng hóc ảnh hưởng đến nội dung sở liệu Nhiệm vụ quan trọng sau đề giải pháp nhằm đảm bảo tính quán sở liệu tính nguyên tử giao dịch hỏng hóc phát sinh Các giải pháp thường gọi giải thuật phục hồi ( recovery algorithms ) Các giải thuật phục hồi gồm có hai phần: Các hành động thực suốt trình hoạt động bình thường giao dịch nhằm đảm bảo có đầy đủ thông tin cho việc phục hồi sau Các hành động thực sau lỗi phát sinh Nhằm khôi phục nội dung sở liệu trở trạng thái trước đó, trạng thái thỗ mãn u cầu tính quán sở liệu, tính bền tính nguyên tử giao dịch CẤU TRÚC LƯU TRỮ: Như xét chương II, hạng mục liệu khác sở liệu lưu nhiều phương tiện lưu trữ khác Để nắm cách thức đảm bảo tính nguyên tử tính lâu bền giao dịch, cần phải có nhìn sâu loại thiết bị lưu trữ liệu cách thức truy xuất chúng CÁC LOẠI LƯU TRỮ: • • Lưu trữ khơng ổn định ( volatile storage ): Thông tin lưu thiết bị lưu trữ không ổn định bị hệ thống bị hỏng hóc Ví dụ thiết bị lưu trữ khơng ổn định là: nhớ chính, nhớ cache Sự truy cập đến thiết bị lưu trữ không ổn định cực nhanh Lý do: là: tính chất nhớ cho phép vậy; hai là: truy xuất trực tiếp hạng mục liệu chứa Lưu trữ ổn định ( nonvolatile storage ): Thông tin lưu trữ thiết bị lưu trữ ổn định thường không bị hệ thống bị cố Tuy nhiên, nguy thân thiết bị lưu trữ ổn định bị hỏng xảy Ví dụ thiết bị lưu trữ ổn định là: đĩa từ băng từ Trong hầu hết hệ sở liệu, thiết bị lưu trữ ổn định thường dùng đĩa từ Các loại thiết bị lưu trữ ổn định khác dùng để lưu trữ phòng hờ ( back up ) liệu CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 119 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU • Lưu trữ bền ( stable storage ): Theo lý thuyết thông tin chứa thiết bị lưu trữ bền không bị hệ thống bị hư hỏng Tuy nhiên, thực tế, ta khó lịng tạo thiết bị đạt tính chất lý tưởng Chỉ có giải pháp tăng cường độ bền mà thơi THỰC THI LƯU TRỮ BỀN: Tiêu chí để thực việc lưu trữ bền nhân thông tin cần thiết vài phương tiện lưu trữ ổn địng khác với phương thức hỏng hóc độc lập cập nhật phiên thông tin cách có tổ chức, cho dù có lỗi xuất q trình chuyển liệu, thơng tin khơng bị hư hại • Các hệ thống RAID đảm bảo việc hỏng hóc đĩa không gây liệu Dạng thức đơn giản nhanh RAID dùng đĩa gương ( mirrored disk ) Các dạng thức khác giúp tiết kiệm chi phí, giá phải trả thời gian đọc ghi chậm • Tuy nhiên hệ thống RAID khơng đảm bảo tính an tồn liệu gặp phải tai họa như: cháy nổ, lụt lội Người ta đề nghị hệ thống lưu trữ an toàn hoạt động theo nguyên tắc sau: Sao lưu liệu sang vài vị trí địa lý khác thơng qua mạng máy tính Sau cách thức đảm bảo thông tin lưu trữ không bị lỗi trình đọc ghi liệu: Việc chuyển khối liệu nhớ đĩa dẫn đến kết quả: • Thành cơng hồn tồn: Thơng tin chuyển đến đích an tồn • Bị lỗi phần: Có lỗi xuất trình chuyển liệu khối đích chứa thơng tin khơng • Bị lỗi hồn tồn: Lỗi xuất giai đoạn đầu trình truyền liệu Khối đích giữ ngun ban đầu Nếu có lỗi xuất trình truyền liệu, hệ thống phải phát thực thi thủ tục phục hồi lỗi Để làm vậy, hệ thống phải trì hai khối liệu vật lý cho mỗ khối liệu luận lý (Trong tình dùng hệ thống đĩa gương hai khối vật lý địa điểm, tình dùng hệ thống lưu từ xa, hai khối hai địa điểm khác nhau) Một thao tác ghi liệu thực thi sau: Viết thông tin lên khối vật lý thứ Khi hành động ghi thứ thành công, tiếp tục ghi phần thông tin lên khối vật lý thứ hai Thao tác ghi coi thành công thao tác ghi thứ hai thành cơng Trong q trình phục hồi, cặp khối vật lý kiểm tra: Nếu nội dung hai khơng có lỗi phát hiện, khơng cần làm thêm Nếu hai khối có lỗi phát được, thay khối bị lỗi nội dung khối lại Nếu hai khối khơng có lỗi phát được, nội dung chúng khác nhau, thay khối thứ khối thứ hai Yêu cầu phải so sánh cặp khối vật lý đòi hỏi phải nhiều thời gian Người ta cải thiện tình cách lưu vết thao tác viết khối tiến trình thực thi Khi phục hồi, khối thao tác ghi tiến trình thực thi cần đem so sánh Giao thức để viết khối đến site xa tương tự viết khối hệ thống đĩa gương CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 120 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU TRUY CẬP DỮ LIỆU Như xét chương II, hệ sở liệu nằm thường trực thiết bị lưu trữ ổn định (thường đĩa từ) thường phân thành đơn vị lưu trữ kích thước cố định gọi khối (blocks) Khối đơn vị truyền nhận liệu từ/ra đĩa Một khối chứa vài hạng mục liệu Ta giả thiết khơng có hạng mục liệu trải nhiều khối Các giao dịch nhập ( input ) thông tin từ đĩa vào nhớ xuất ( output ) thơng tin theo chiều ngược lại Các thao tác nhập/xuất thực theo đơn vị khối Khối nằm đĩa gọi khối vật lý (physical block), khối trữ tạm nhớ gọi khối đệm (buffer block) Vùng nhớ tạm chứa khối liệu gọi vùng đệm đĩa (disk buffer) Việc di chuyển khối đĩa nhớ thực thông qua hai thao tác: Input(B) chuyển khối vật lý B vào nhớ Output(B) chuyển khối đệm B đĩa thay cho khối vật lý tương ứng Hình mô cho hai thao tác A B Bộ nhớ input(A) output(B ) Các thao tác đọc ghi khối A B Đĩa figure VI- Mỗi giao dịch Ti có vùng làm việc riêng cùa tất hạng mục liệu truy xuất cập nhật lưu giữ Vùng làm việc tạo giao dịch khởi động Nó bị xố giao dịch bàn giao ( commit) huỷ bỏ (abort) Mỗi hạng mục liệu x trữ vùng làm việc giao dịch Ti ký hiệu xi Giao dịch Ti trao đổi với hệ sở liệu cách chuyển liệu đến/ra vùng làm việc sang vùng đệm hệ thống Hai thao tác dùng để chuyển liệu: read(X) gán giá trị hạng mục liệu X cho biến cục xi Thao tác thực sau: a Nếu khối BX chứa X khơng có nhớ thực thao tác input(BX) b Gán cho xi giá trị X khối đệm write(X) gán giá trị biến cục xi cho hạng mục liệu X khối đệm Thao tác thực sau: a Nếu khối BX chứa X khơng có nhớ thực thao tác input(BX) b Gán giá trị xi cho X vùng đệm BX Chú ý hai thao tác địi hỏi chuyển khối từ đĩa vào nhớ khơng u cầu chuyển khối từ nhớ đĩa Đơi khối đệm bị ghi bắt buộc đĩa quản lý vùng đệm cần không gian nhớ cho mục đích khác hệ sở liệu muốn phản ánh thay đổi khối CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 121 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU liệu B đĩa Khi hệ sở liệu thực thao tác Output(B) ta nói xuất bắt buộc khối đệm B đĩa Khi giao dịch cần truy xuất hạng mục liệu X lần đầu, phải thực Read(X) Khi tất cập nhật X thực xi Sau giao dịch truy xuất X lần cuối, thực Write(X) để ghi lại thay đổi X CSDL Không thiết phải thực thao tác Output(BX) sau thao tác write(X) hoàn thành Lý là: khối đệm BX cịn chứa hạng mục liệu khác truy xuất Nếu hệ thống bị hư hỏng sau thao tác write(X) hoàn thành, trước thực thao tác Output(BX), giá trị X không ghi đĩa, đó, bị mất! B PHỤC HỒI VÀ TÍNH NGUN TỬ: Trở lại với ví dụ đơn giản hệ thống ngân hàng: Giao dịch Ti thực việc chuyển $50 từ tài khoản A sang tài khoản B Giả sử giá trị ban đầu tài khoản A B $1000 $2000 Giả sử hệ thống bị hư hỏng Ti thực thi: sau thao tác output(BA) thực trước thực thao tác output(BB) (BA BB hai khối đệm chứa hai hạng mục A B) Người ta thực hai giải pháp phục hồi sau: Thực lại Ti Thủ tục dẫn đến kết quả: giá trị A $900 thay phải $950 Do đó, hệ thống trạng thái khơng quán Không thực lại Ti Kết quả: giá trị A B tương ứng $950 $2000 Hệ thống trạng thái không quán Vấn đề phát sinh chỗ: Ti thực nhiều thao tác sửa đổi nội dung sở liệu, cần nhiều thao tác xuất liệu đĩa, lỗi phát sinh không cho phép tất thao tác xuất liệu hoàn thành Giải pháp nhằm đạt tính nguyên tử là: trước thực thao tác sửa đổi sở liệu, cần ghi thiết bị lưu trữ bền thông tin mô tả sửa đổi Cụ thể giải pháp trình bày phần V.4, V.5 V.6 B B PHỤC HỒI DỰA TRÊN SỔ GHI LỘ TRÌNH (Log-based recovery) Một cấu trúc thường dùng để ghi lại thay đổi sở liệu sổ ghi lộ trình (log) Log dãy mẩu tin lộ trình (log records) Một thao tác cập nhật sở liệu ghi nhận log record Một log record kiểu mẫu chứa trường sau: • Định danh giao dịch ( transaction identifier ): định danh giao dịch thực hoạt động write • Định danh hạng mục liệu ( Data-item identifier ): định danh hạng mục liệu viết ( thường vị trí hạng mục liệu đĩa ) • Giá trị cũ ( Old value ): giá trị hạng mục liệu trước viết • Giá trị ( New value ): giá trị hạng mục liệu có sau viết Có vài log record đặc biệt mang ý nghĩa riêng Bảng sau số loại log record ý nghĩa chúng: LOẠI LOG RECORD < Ti start > < Ti, Xj, V1, V2 > < Ti commit > < Ti abort > Ý NGHĨA Giao dịch Ti khởi động Giao dịch Ti thực thao tác ghi hạng mục liệu Xj, Xj có giá trị V1 trước ghi nhận giá trị V2 sau ghi Giao dịch Ti bàn giao Giao dịch Ti huỷ bỏ CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 122 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Mỗi giao dịch thực thao tác ghi, trước tiên phải tạo log record cho thao tác ghi ( log file ), trước giao dịch thay đổi sở liệu Như vậy, hệ thống có sở để huỷ bỏ ( undo ) thay đổi làm sở liệu cách sử dụng trường Old-value log record log phải lưu thiết bị lưu trữ bền Mỗi log record ngầm định thêm vào cuối tập tin log CẬP NHẬT TRÌ HỖN CƠ SỞ DỮ LIỆU (Deferred Database Modification): Kỹ thuật cập nhật trì hỗn đảm bảo tính ngun tử giao dịch cách ghi lại tất sửa đổi sở liệu vào sổ ghi lộ trình (log), trì hỗn thực tất thao tác viết liệu đĩa giao dịch giao dịch bàn giao phần (partially commits ) Nhắc lại rằng: giao dịch gọi bàn giao phần hành động cuối thực xong Kỹ thuật cập nhật trì hỗn trình bày phần giả thiết giao dịch thực cách Khi giao dịch bàn giao phần, thông tin log kết hợp với giao dịch sử dụng việc viết trì hỗn Nếu hệ thống có cố trước giao dịch hồn thành việc thực giao dịch bị bỏ dở thơng tin log bị bỏ lơ Sự thực thi giao dịch tiến triển sau: • Trước giao dịch Ti bắt đầu thực hiện, mẫu tin < Ti start > ghi sổ lộ trình • Trước Ti thực thao tác write(X), mẫu tin < Ti, X, V2 > ghi sổ lộ trình • Cuối cùng, giao dịch Ti bàn giao phần, mẫu tin < Ti commit > ghi sổ lộ trình Khi giao dịch bàn giao phần, mẫu tin sổ lộ trình kết hợp với giao dịch sử dụng để thực việc ghi trì hỗn hạng mục liệu đĩa Nhà thiết kế phải đảm bảo rằng, trước hoạt động ghi hạng mục liệu diễn ra, mẫu tin log ghi thành công thiết bị lưu trữ bền Ngoài cần để ý: kỹ thuật cập nhật trì hỗn cần ghi lại giá trị hạng mục liệu (V2) mà Để minh hoạ, ta sử dụng ví dụ hệ thống ngân hàng đơn giản Gọi T0 giao dịch có nhiệm vụ chuyển $50 từ tài khoản A sang tài khoản B, T1 giao dịch có nhiệm vụ rút $100 từ tài khoản C Giả sử giá trị ban đầu tài khoản A, B, C $1000, $2000 $700 Hành động T0 T1 mô tả sau: T0 read(A) A:=A-50 write(A) read(B) B:=B+50 write(B) T1 Read(C) C:=C-100 write(C) Giả thiết giao dịch thực tuần tự: T0 tới T1 Một phần sổ lộ trình ghi lại thông tin liên quan đến hoạt động hai giao dịch cho bảng đây: CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 123 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU figure VI- Sau có cố xảy ra, hệ thống phục hồi tham khảo sổ lộ trình để chọn giao dịch cần làm lại (redo) Giao dịch Ti cần làm lại sổ nhật ký có chứa hai mẫu tin Thủ tục làm lại giao dịch Ti sau: • redo(Ti) đặt giá trị cho tất hạng mục liệu cập nhật giao dịch Ti Các giá trị tìm thấy sổ lộ trình (log) Hoạt động redo phải đồng hiệu lực ( idempotent ) có nghĩa việc thực nhiều lần tương đương với việc thực lần Trở lại ví dụ vừa nêu, ta có bảng mơ tả trạng thái sổ ghi lộ trình sở liệu sau: LOG CƠ SỞ DỮ LIỆU < T0 ,B, 2050> A=950 B=2050 C=600 figure VI- Sau số tình mô phỏng: Giả sử lỗi hệ thống xảy sau mẫu tin log cho hành động write(B) giao dịch T0 vừa ghi thiết bị lưu trữ bền Khi hệ thống khởi động trở lại, khơng có hành động “thực lại giao dịch” cần phải làm, khơng có mẫu tin ghi commit xuất sổ lộ trình Nghĩa giá trị A,B C giữ nguyên $1000, $2000 $700 Giả sử lỗi hệ thống xảy sau mẫu tin log cho hành động write(C) giao dịch T1 vừa ghi thiết bị lưu trữ bền Khi hệ thống hoạt động trở lại, thủ tục redo(T0) thực có xuất mẫu tin sổ lộ trình Sau thủ tục thực thi, giá trị A B $950 $2050 CẬP NHẬT TỨC THỜI CƠ SỞ DỮ LIỆU (Immediate Database Modification): Kỹ thuật cập nhật tức thời cho phép thao tác sửa đổi sở liệu có quyền xuất liệu tức thời đĩa giao dịch trạng thái hoạt động ( active state ) Hành động thay đổi nội dung liệu tức thời giao dịch hoạt động gọi “những thay đổi chưa bàn giao” ( uncommitted modifications) Sự thực thi giao dịch tiến hành sau: • Trước giao dịch Ti bắt đầu thực hiện, mẫu tin < Ti start > ghi sổ lộ trình CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 124 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU • • Trước Ti thực thao tác write(X), mẫu tin < Ti, X, V1, V2 > ghi sổ lộ trình Cuối cùng, giao dịch Ti bàn giao phần, mẫu tin < Ti commit > ghi sổ lộ trình Cần phải đảm bảo rằng, trước hoạt động ghi hạng mục liệu diễn ra, mẫu tin log ghi thành công thiết bị lưu trữ bền Ngoài ra, cần ý mẫu tin log cho hành động write(X) giao dịch Ti, tức mẫu tin có chứa hai giá trị (V2) cũ (V1) hạng mục liệu X Trở lại với ví dụ phần V.4.1, ta có phần sổ lộ trình liên quan đến hoạt động T0 T1 sau: figure VI- Bảng mô tả trạng thái sổ ghi lộ trình sở liệu sau: LOG < T0 , B, 2000, 2050> CƠ SỞ DỮ LIỆU A=950 B=2050 C=600 figure VI- Kỹ thuật cập nhật tức thời sử dụng hai thủ tục khơi phục sau lỗi: • undo(Ti) đặt lại giá trị cũ cho tất hạng mục liệu cập nhật giao dịch Ti Các giá trị cũ tìm thấy sổ lộ trình ( log ) • redo(Ti) đặt giá trị cho tất hạng mục liệu cập nhật giao dịch Ti Các giá trị tìm thấy sổ lộ trình (log) Sau lỗi xuất hiện, hệ thống phục hồi tham khảo sổ ghi để định giao dịch cần làm lại (redo) giao dịch cần huỷ bỏ (undo) • Giao dịch Ti cần huỷ bỏ sổ ghi chứa mẫu tin khơng có mẫu tin • Giao dịch Ti cần làm lại sổ ghi có chứa mẫu tin lẫn mẫu tin Sau số tình mơ phỏng: CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 125 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Giả sử lỗi hệ thống xảy sau mẫu tin log cho hành động write(B) giao dịch T0 vừa ghi thiết bị lưu trữ bền Khi hệ thống khởi động trở lại, tìm thấy mẫu tin sổ ghi, khơng có mẫu tin tương ứng Do giao dịch T0 cần phải huỷ bỏ Nghĩa thủ tục undo(T0) gọi giá trị A,B C giữ nguyên $1000, $2000 $700 Giả sử lỗi hệ thống xảy sau mẫu tin log cho hành động write(C) giao dịch T1 vừa ghi thiết bị lưu trữ bền Khi hệ thống hoạt động trở lại, hai thủ tục redo(T0) undo(T1) thực Do có xuất mẫu tin , , sổ lộ trình Sau hai thủ tục thực thi, giá trị A, B, C $950,ì $2050 $700 ĐIỂM KIỂM SOÁT (Checkpoint): Khi lỗi hệ thống xuất hiện, hệ thống phục hồi phải tham khảo sổ ghi lộ trình để định giao dịch cần làm lại giao dịch cần huỷ bỏ Theo nguyên lý cần phải tìm kiếm tồn nội dung sổ ghi để có định Hướng tiếp cận gặp phải hai khó khăn lớn: Q trình tìm kiếm nhiều thời gian Theo giải thuật vừa nêu, hầu hết giao dịch cần làm lại ghi liệu cập nhật sở liệu Việc làm lại chúng khơng có hại gì, lại làm cho tiến trình khơi phục trở nên lâu Cơng cụ “điểm kiểm sốt” (checkpoint) sử dụng để cải thiện hiệu trình khơi phục Trong q trình hoạt động mình, hệ thống trì sổ ghi lộ trình cách sử dụng hai kỹ thuật giới thiệu phần V.4.1 V.4.2 Ngoài ra, hệ thống phải thực cách chu kỳ hành động đặt điểm kiểm sốt Hành động địi hỏi dãy thao tác sau: Xuất lưu trữ bền tất mẫu tin ghi nhận lộ trình ( log record ) nằm nhớ Xuất đĩa tất khối đệm cập nhật Xuất thiết bị lưu trữ bền log-record Các giao dịch không phép thực thao tác cập nhật liệu (ví dụ ghi khối đệm, ghi mẫu tin log) hành động đặt điểm kiểm soát thực Sự diện điểm kiểm soát sổ ghi cho phép hệ thống tổ chức trình phục hồi tốt Xét giao dịch Ti bàn giao (commit) trước điểm kiểm sốt Ta có mẫu tin xuất trước mẫu tin Có nghĩa tất thay đổi mà Ti làm sở liệu phải thực trước người ta đặt điểm kiểm sốt Vì vậy, giai đoạn phục hồi sau lỗi, người ta không cần phải làm lại (redo) giao dịch Ti Dựa điểm cải tiến này, ta cải tiến lại kỹ thuật trình bày phần V.4.1 V.4.2 sau: Sau lỗi hệ thống xuất hiện, hệ thống phục hồi kiểm tra lại sổ lộ trình (log) để tìm giao dịch Ti thoả điều kiện: giao dịch gần khởi động trước điểm kiểm sốt gần Qui trình tìm Ti sau: dị ngược sổ ghi lộ trình tìm thấy mẫu tin Từ điểm kiểm sốt này, lại tiếp tục dị ngược sổ ghi tìm thấy mẫu tin Mẫu tin giao dịch Ti Khi xác định giao dịch Ti rồi, thủ tục undo redo áp dụng cho giao dịch Ti giao dịch diễn sau Ti Chúng ta ký hiệu tập giao dịch vừa nói T Với kỹ thuật “Cập nhật tức thời sở liệu”, tiến trình phục hồi sau: CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 126 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU • Với giao dịch Tk∈T mà khơng có mẫu tin sổ ghi lộ trình, thực thi undo(Tk) Với giao dịch Tk∈T mà có mẫu tin sổ ghi lộ trình, thực thi redo(Tk) Không cần thực thi thao tác undo sử dụng kỹ thuật “Cập nhật có trì hỗn sở liệu” • PHÂN TRANG BĨNG ( Shadow Paging ): Kỹ thuật “Phân trang bóng” kỹ thuật cho phép phục hồi sau lỗi, ý tưởng thực khác với kỹ thuật dựa sổ ghi lộ trình vừa trình bày phần Sau số khái niệm cần giải trình: • Trang (page) gì? Như trình bày phần trước, sở liệu lưu vào thiết bị lưu trữ khơng phai thành nhiều khối có kích thước cố định Người ta gọi khối trang (page) • Bảng trang ý nghĩa nó: Khái niệm trang nói mượn từ lý thuyết Hệ điều hành Cách quản lý trang thừa kế từ Giả sử sở liệu phân thành n trang phân bố đĩa chúng khơng theo thứ tự cụ thể Tuy nhiên, phải có cách để tìm nhanh trang thứ i sở liệu (1 ≤ i ≤ n) Người ta dùng bảng trang (được mơ hình 5.2) cho mục đích Bảng trang có n đầu vào (entry) Mỗi đầu vào ứng với trang Một đầu vào chứa trỏ, trỏ đến trang đĩa Đầu vào đến trang sở liệu, đầu vào thứ hai đến trang thứ hai Ý tưởng then chốt kỹ thuật “Phân trang bóng” người ta trì hai bảng trang suốt chu kỳ sống giao dịch, bảng trang gọi “bảng trang hành” (current page table), bảng trang lại gọi “bảng trang bóng” (shadow page table) Khi giao dịch khởi động, hai bảng trang giống Bảng trang bóng khơng thay đổi suốt q trình hoạt động giao dịch Bảng trang hành bị thay đổi giao dịch thực tác vụ write Tất tác vụ input output sử dụng bảng trang hành để định vị trang đĩa Điểm quan trọng khác nên lưu bảng trang bóng vào thiết bị lưu trữ bền n Bảng trang CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang đĩa Trang 127 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU figure VI- Giả sử giao dịch thực tác vụ write(X) hạng mục liệu X chứa trang thứ i Tác vụ write thực thi sau: n thứ i chưa có nhớ chính, thực input(X) Nếu trang Nếu lệnh ghi thực lần trang thứ i giao dịch, sửa đổi bảng trang hành sau: a Tìm trang chưa dùng đĩa b Xố trang vừa tìm xong bước 2.a khỏi danh sách khung trang tự c Sửa lại bảng trang hành cho đầu vào thứ i trỏ đến trang vừa tìm bước 2.a Gán giá trị xi cho X trang đệm (buffer page) Để bàn giao giao dịch, cần làm bước sau: Đảm bảo tất trang đệm nhớ giao dịch sửa đổi phải xuất đĩa Xuất bảng trang hành đĩa ý khơng viết đè lên trang bóng Xuất địa đĩa bảng trang hành vị trí cố định thiết bị lưu trữ bền Vị trí nơi chứa địa bảng trang bóng Hành động ghi đè lên địa bảng trang bóng cũ Như vậy, bảng trang hành trở thành bảng trang bóng giao dịch bàn giao Nếu cố xảy trước hoàn thành bước thứ 3, hệ thống trở trạng thái trước giao dịch thực Nếu cố xảy sau bước thứ hoàn thành, hiệu giao dịch bảo tồn; không cần thực thao tác redo Ví dụ hình 5.3 mơ lại trạng thái bảng trang hành bảng trang bóng giao dịch thực thao tác ghi lên trang thứ tư sở liệu có 10 trang 1 2 3 4 5 6 7 8 9 10 10 Bảng trang hành Bảng trang bóng Các trang đĩa figure VI- Ví dụ bảng trang bóng bảng trang hành CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 128 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU • • • • Kỹ thuật phân trang bóng có số điểm lợi so với kỹ thuật dựa sổ ghi: Không thời gian ghi log record Khôi phục sau cố nhanh hơn, không cần thao tác undo redo Tuy nhiên kỹ thuật phân trang bóng lại có nhiều nhược điểm: Tổng phí bàn giao Xuất nhiều khối đĩa: khối liệu tại, bảng trang hành, địa bảng trang hành Trong kỹ thuật dựa vào sổ ghi, cần xuất log record, mà thông thường, log record vừa đủ chứa khối Sự phân mảnh liệu Trong chương II có trình bày chiến lược gom cụm vật lý trang liệu có liên quan với Sự gom cụm cho phép việc vận chuyển liệu nhanh Kỹ thuật phân trang bóng lại đổi vị trí trang trang bị sửa đổi Điều dẫn đến tính gom cụm liệu khơng cịn, phải dùng giải pháp gom cụm lại thời gian Phải thu nhặt rác Mỗi giao dịch bàn giao, trang chứa giá trị liệu cũ bị sửa đổi giao dịch trở thành không truy xuất Vì chúng khơng thuộc danh sách trang tự không chứa liệu hữu dụng Ta gọi chúng “rác” Cần thiết phải định kỳ tìm kiếm thêm trang rác vào danh sách trang tự Hành động gọi “thu nhặt rác” Ngồi ra, kỹ thuật phân trang bóng gặp nhiều khó khăn kỹ thuật dựa vào sổ ghi cần tinh chỉnh để đáp ứng cho yêu cầu phục vụ song song cho nhiều giao dịch Vì lý trên, kỹ thuật phân trang bóng khơng sử dụng rộng rãi PHỤC HỒI VỚI CÁC GIAO DỊCH CẠNH TRANH Cho dến bây giờ, ta xét kỹ thuật phục hồi áp dụng cho giao dịch thực thi Bây tìm cách cải tiến kỹ thuật dựa vào sổ ghi nhằm đáp ứng yêu cầu phục vụ đồng thời cho nhiều giao dịch cạnh tranh Ý tưởng thực là: Không quan tâm đến số lượng giao dịch cạnh tranh, hệ thống sử dụng vùng đệm đĩa sổ ghi lộ trình Các khối đệm chia sẻ tất giao dịch Chúng ta cho phép việc cập nhật tức thời sở liệu cho phép khối đệm có nhiều hạng mục liệu cập nhật nhiều giao dịch TRAO ĐỔI VỚI ĐIỀU KHIỂN CẠNH TRANH Cơ chế phục hồi phụ thuộc nhiều vào chế điều khiển cạnh tranh sử dụng Để cuộn lại giao dịch thất bại ( failed transaction ), người ta phải huỷ bỏ ( undo) cập nhật thực giao dịch Giả sử giao dịch T0 phải bị cuộn lại hạng mục liệu Q bị T0 thay đổi giá trị cần phải đặt lại giá trị cũ Bằng cách sử dụng kỹ thuật dựa vào sổ ghi lộ trình, ta trả lại giá trị cũ cho Q cách sử dụng log record Giả thiết lại có giao dịch thứ hai T1 vừa cập nhật Q xong, trước T0 bị cuộn lại Như vậy, cập nhật thực T1 bị T0 bị cuộn lại Biện pháp khắc phục là: giao dịch T cập nhật hạng mục liệu Q, khơng giao dịch khác có quyền cập nhật lên hạng mục liệu T chưa bàn giao chưa bị cuộn lại Chúng ta đảm bảo yêu cầu thoả cách sử dụng kỹ thuật ”chốt hai kỳ nghiêm ngặt” (strict two-phase locking) CUỘN LẠI GIAO DỊCH: Phương pháp để cuộn lại (rollback) giao dịch Ti, sử dụng sổ ghi, mơi trường cạnh tranh sau: Dị ngược sổ ghi lộ trình để tìm log record có dạng CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 129 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Hạng mục liệu Xj trả lại giá trị cũ V1 Việc dị tìm kết thúc tìm thấy mẫu tin Việc dị ngược sổ ghi lộ ¹ ý nghĩa quan trọng, giao dịch cập nhật hạng mục liệu nhiều lần Một ví dụ: Xét cặp log records sau: Cặp mẫu tin thể hai hành động cập nhật hạng mục liệu A giao dịch Ti Nếu dò ngược sổ ghi lộ trình, A trả giá trị 10 Ngược lại, A nhận giá trị sai 20 Nếu kỹ thuật strict two-phase locking sử dụng để điều khiển cạnh tranh, việc trả giá trị cũ cho hạng mục liệu khơng xố tác động giao dịch khác lên hạng mục liệu CÁC ĐIỂM KIỂM SOÁT Ở phần V.4.3, người ta sử dụng điểm kiểm soát (checkpoint) để làm giảm số lượng log record mà hệ thống phục hồi phải dị tìm sổ ghi giai đoạn phục hồi sau lỗi Nhưng, giả thiết khơng có cạnh tranh nên giải pháp V.4.3 xét đến giao dịch sau q trình khơi phục lỗi: • Những giao dịch khởi động sau điểm kiểm soát gần • Một giao dịch (nếu có) trạng thái hoạt động (active) thời điểm người ta đặt điểm kiểm sốt gần Tình phức tạp giao dịch thực thi cạnh tranh Có nghĩa thời điểm đặt điểm kiểm sốt, có nhiều giao dịch trạng thái hoạt động Trong hệ thống xử lý giao dịch cạnh tranh, ta yêu cầu rằng: mẫu tin ghi dấu kiểm sốt (checkpoint log record) phải có dạng sau: Trong L danh sách giao dịch hoạt động thời điểm đặt điểm kiểm soát Một lần nữa, ta qui ước rằng: hành động đặt điểm kiểm soát diễn ra, giao dịch không phép thực thao tác cập nhật liệu khối đệm lẫn sổ ghi lộ trình Tuy nhiên, qui ước lại gây phiền tối, giao dịch phải ngừng hoạt động đặt điểm kiểm soát Một kỹ thuật nâng cao giải điểm phiền toái “Điểm kiểm soát mờ” (fuzzy checkpoint) PHỤC HỒI KHỞI ĐỘNG LẠI ( Restart Recovery ) Khi hệ thống phục hồi sau lỗi, tạo hai danh sách: undo-list bao gồm giao dịch cần phải huỷ bỏ redo-list bao gồm danh sách giao dịch cần làm lại Qui trình tạo lập hai danh sách redo-list, undo-list thực sau: Đầu tiên, chúng rỗng Dò ngược sổ ghi lộ trình, kiểm tra mẫu tin tìm mẫu tin đầu tiên: a Với mẫu tin tìm thấy theo dạng , ta thêm Ti vào redolist b Với mẫu tin tìm thấy theo dạng , Ti khơng thuộc redo-list thêm Ti vào undo-list c Khi tất log record xem xét, ta kiểm tra danh sách L mẫu tin Với giao dịch Ti L, Ti không thuộc redo-list thêm Ti vào undo-list CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 130 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Khi hai danh sách redo-list, undo-list thiết lập xong, tiến trình phục hồi tiến hành sau: Dò ngược lại sổ ghi thực thủ tục undo log record thuộc giao dịch Ti undo-list Các log record giao dịch nằm danh sách redo-list bị bỏ qua giai đoạn Việc dò ngược ngưng mẫu tin tìm thấy cho giao dịch Ti thuộc danh sách undo-list Định vị mẫu tin gần log Dị sổ ghi theo chiều xi mẫu tin gần thực thủ tục redo log record thuộc giao dịch Ti nằm danh sách redo-list Trong giai đoạn này, bỏ qua log record giao dịch thuộc danh sách undo-list Việc xử lý ngược bước quan trọng, nhằm đảm bảo kết trả sở liệu Sau tất giao dịch danh sách undo-list bị huỷ bỏ, tất giao dịch danh sách redo-list làm lại Sau tiến trình phục hồi thành công, xử lý giao dịch tiếp tục Việc thực huỷ bỏ giao dịch undo-list trước làm lại giao dịch redo-list có ý nghĩa quan trọng Nếu làm ngược lại, vấn đề sau phát sinh: Giả sử hạng mục liệu A có giá trị khởi đầu 10 Giao dịch Ti đổi A thành 20 sau Ti bị huỷ bỏ Sau đó, giao dịch khác Tj cập nhật A thành 30 Đến hệ thống bị lỗi ngừng hoạt động Hiện trạng sổ ghi thời điểm hệ thống bị lỗi sau: Nếu thực redo trước, A đặt giá trị 30 Sau thực undo, A đặt giá trị 10, mà giá trị sai Giá trị cuối A phải 30 ĐIỂM KIỂM SOÁT MỜ (fuzzy checkpoint): Kỹ thuật fuzzy checkpoint cho phép giao dịch cập nhật liệu khối đệm checkpoint-record viết xong trước thời điểm khối đệm sửa đổi ghi đĩa Ý tưởng thực fuzzy checkpoint sau: Thay phải dị ngược sổ ghi để tìm mẫu tin checkpoint, ta lưu vị trí mẫu tin checkpoint cuối sổ ghi vào chỗ cố định đĩa gọi last_checkpoint Tuy nhiên, thông tin không cập nhật mẫu tin checkpoint ghi đĩa Thay vào đó, trước mẫu tin checkpoint ghi sổ ghi, ta tạo danh sách khối đệm bị sửa đổi Thông tin last_checkpoint cập nhật sau tất khối đệm bị sửa đổi ghi đĩa last_checkpoint dùng cho mục đích undo CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 131 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU BÀI TẬP CHƯƠNG VI VI.1 Trình bày điểm khác kiểu lưu trữ: lưu trữ không ổn định, lưu trữ ổn định lưu trữ bền theo tiêu chuẩn đánh giá chi phí cài đặt VI.2 Thực tế, lưu trữ bền khơng thể thực Giải thích sao? Hệ sở liệu giải vấn đề nào? VI.3 So sánh kỹ thuật cập nhật tức thời cập nhật có trì hỗn sơ đồ phục hồi dựa vào sổ ghi lộ trình theo tiêu chuẩn: tính dễ cài đặt tổng chi phí thực VI.4 Giả sử kỹ thuật cập nhật tức thời sử dụng hệ thống Bằng ví dụ, rằng: tình trạng khơng qn liệu xảy log record không ghi thiết bị lưu trữ bền trước giao dịch bàn giao (commit) VI.5 Giải thích mục đích chế điểm kiểm soát (checkpoint) Hành động đặt điểm kiểm soát nên thực theo chu kỳ hợp lý? VI.6 Khi hệ thống phục hồi sau lỗi, xây dựng danh sách: undo-list redo-list Giải thích log record giao dịch danh sách undo-list phải xử lý theo thứ tự ngược, log record danh sách redo-list lại xử lý theo chiều xuôi? VI.7 So sánh sơ đồ phục hồi phân trang bóng sơ đồ phục hồi sử dụng sổ ghi lộ trình theo tiêu chuẩn: tính dễ cài đặt tổng chi phí thực VI.8 Giả sử sở liệu có 10 khối đĩa liên tiếp (khối 1, 2, 3, , 10) Hãy thể trạng thái buffer thứ tự vật lý có khối sau thao tác cập nhật sau, giả sử: kỹ thuật phân trang bóng sử dụng, buffer nhớ đủ chứa khối, chiến lược quản lý buffer LRU (Least Recently Used) Đọc khối Đọc khối Đọc khối CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 132 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Đọc khối Đọc khối Sửa đổi khối Đọc khối 10 Sửa khối CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 133 ... Đọc khối Đọc khối Đọc khối CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 132 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Đọc khối Đọc khối Sửa đổi khối Đọc khối 10 Sửa khối CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 133 ... 950> CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 123 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU figure VI- Sau có cố xảy ra, hệ thống phục hồi tham khảo sổ lộ... phỏng: CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 125 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Giả sử lỗi hệ thống xảy sau mẫu tin log cho hành động write(B) giao dịch T0 vừa ghi thiết bị lưu trữ bền Khi hệ thống khởi

Ngày đăng: 20/05/2021, 08:40

Xem thêm:

Mục lục

    HỆ THỐNG PHỤC HỒI

    PHÂN LỚP HỎNG HÓC:

    CẤU TRÚC LƯU TRỮ:

    CÁC LOẠI LƯU TRỮ:

    THỰC THI LƯU TRỮ BỀN:

    TRUY CẬP DỮ LIỆU

    PHỤC HỒI VÀ TÍNH NGUYÊN TỬ:

    PHỤC HỒI DỰA TRÊN SỔ GHI LỘ TRÌNH (Log-based recovery)

    CẬP NHẬT TRÌ HOÃN CƠ SỞ DỮ LIỆU (Deferred Database Modification):

    CẬP NHẬT TỨC THỜI CƠ SỞ DỮ LIỆU (Immediate Database Modification):

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w