<< Chapter < Page Chapter >> Page >

Đ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 để quyết định những giao dịch nào cần được làm lại và những giao dịch nào cần được huỷ bỏ. Theo nguyên lý thì cần phải tìm kiếm toàn bộ nội dung của sổ ghi để có được quyết định trên.

Hướng tiếp cận trên sẽ gặp phải hai khó khăn lớn:

  1. Quá trình tìm kiếm mất nhiều thời gian.
  2. Theo các giải thuật vừa nêu, hầu hết các giao dịch cần được làm lại đã ghi những dữ liệu được cập nhật ra cơ sở dữ liệu rồi. Việc làm lại chúng tuy không có hại gì, nhưng lại làm cho tiến trình khôi phục trở nên lâu hơn.

Công cụ “điểm kiểm soát” (checkpoint) được sử dụng để cải thiện hiệu năng của quá trình khôi phục. Trong quá trình hoạt động của mình, hệ thống sẽ duy trì một sổ ghi lộ trình bằng cách sử dụng một trong hai kỹ thuật được giới thiệu trong phần V.4.1 và V.4.2. Ngoài ra, hệ thống còn phải thực hiện một cách chu kỳ các hành động đặt điểm kiểm soát. Hành động này đòi hỏi một dãy các thao tác sau:

  1. Xuất ra lưu trữ bền tất cả các mẫu tin ghi nhận lộ trình ( log record ) đang nằm trong bộ nhớ chính.
  2. Xuất ra đĩa tất cả những khối đệm đã được cập nhật.
  3. Xuất ra thiết bị lưu trữ bền một log-record<checkpoint>

Các giao dịch sẽ không được phép thực hiện bất kỳ thao tác cập nhật dữ liệu nào (ví dụ như ghi các khối đệm, ghi các mẫu tin log) khi hành động đặt điểm kiểm soát đang được thực hiện.

Sự hiện diện của điểm kiểm soát trong sổ ghi cho phép hệ thống tổ chức quá trình phục hồi tốt hơn. Xét một giao dịch Ti đã bàn giao (commit) trước một điểm kiểm soát. Ta có mẫu tin<Ti commit>xuất hiện trước mẫu tin<checkpoint>. Có nghĩa là tất cả các thay đổi mà Ti đã làm đối với cơ sở dữ liệu phải được thực hiện trước khi người ta đặt điểm kiểm soát trên. Vì vậy, trong 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 trên điểm cải tiến này, ta cải tiến lại các kỹ thuật đã được trình bày trong phần V.4.1 và V.4.2 như sau:

  1. Sau khi lỗi hệ thống xuất hiện, hệ thống phục hồi sẽ kiểm tra lại sổ lộ trình (log) để tìm ra giao dịch Ti thoả điều kiện: đó là giao dịch gần đây nhất được khởi động trước điểm kiểm soát gần đây nhất. Qui trình tìm Ti như sau: dò ngược trong sổ ghi lộ trình cho đến khi tìm thấy mẫu tin<checkpoint>đầu tiên. Từ điểm kiểm soát này, lại tiếp tục dò ngược trong sổ ghi cho đến khi tìm thấy mẫu tin<Ti start>đầu tiên. Mẫu tin này chỉ ra giao dịch Ti .
  2. Khi đã xác định được giao dịch Ti rồi, các thủ tục undo và redo chỉ được áp dụng cho giao dịch Ti và các giao dịch diễn ra sau Ti. Chúng ta ký hiệu tập những giao dịch vừa nói là T.
  3. Với kỹ thuật “Cập nhật tức thời cơ sở dữ liệu”, tiến trình phục hồi như sau:
  • Với mọi giao dịch TkT mà không có mẫu tin<Tk commit>trong sổ ghi lộ trình, thực thi undo(Tk).
  • Với mọi giao dịch TkT mà có mẫu tin<Tk commit>trong sổ ghi lộ trình, thực thi redo(Tk).
  • Không cần thực thi thao tác undo khi sử dụng kỹ thuật “Cập nhật có trì hoãn cơ sở dữ liệu”.

Phân trang bóng ( shadow paging ):

Kỹ thuật “Phân trang bóng” cũng là kỹ thuật cho phép phục hồi sau lỗi, nhưng ý tưởng thực hiện khác với các kỹ thuật dựa trên sổ ghi lộ trình vừa trình bày ở phần trên.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Hệ quản trị cơ sở dữ liệu. OpenStax CNX. Jul 31, 2009 Download for free at http://cnx.org/content/col10838/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Hệ quản trị cơ sở dữ liệu' conversation and receive update notifications?

Ask