1. Trang chủ
  2. » Luận Văn - Báo Cáo

chuong 5 khôi phục sự cố

67 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Khôi phục sự cố
Chuyên ngành Cơ sở dữ liệu
Thể loại Bài giảng
Định dạng
Số trang 67
Dung lượng 1 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

l Nhật ký giao tác là một chuỗi các mẫu tin log record ghi nhận lại các hành động của DBMSl Một mẫu tin cho biết một giao tác nào đó đã làm những gìl Nhật ký là một tập tin tuần tự được

Trang 1

Khôi phục sự cố

Chương 5

Trang 2

l Giới thiệu

l Phân loại sự cố

l Mục tiêu của khôi phục sự cố

l Nhật ký giao tác (transaction log)

l Điểm lưu trữ (checkpoint)

l Checkpoint đơn giản

l Checkpoint linh động (nonquiescent checkpoint)

l Phương pháp khôi phục

l Undo-Logging (immediate modification)

l Redo-Logging (deferred modification)

Undo/Redo Logging

Nội dung chi tiết

Trang 3

l Tính toàn vẹn - đúng đắn, chính xác của dữ liệu

l Tính toàn vẹn - nhất quán của ràng buộc

Trang 4

l Làm thế nào mà ràng buộc bị vi phạm?

l Lỗi lập trình của các giao tác (transaction bug)

l Lỗi lập trình của DBMS (DBMS bug)

l Hư hỏng phần cứng (hardware failure)

l Chia sẻ dữ liệu (data sharing)

l Làm thế nào để sửa lỗi và khôi phục?

l Chia sẻ dữ liệu

l Sự cố

Giới thiệu

Trang 5

Sự cố

CPU

Trang 6

l Sự cố trên thiết bị lưu trữ (media failure)

l Sự cố của giao dịch (transaction failure)

l Sự cố liên quan đến hệ thống (system failure)

Trang 7

l Dữ liệu sai hiển nhiên

l Nhập thiếu 1 số trong dãy số điện thoại

l Dữ liệu sai không thể phát hiện

l Nhập sai 1 số trong dãy số điện thoại

l DBMS cung cấp các cơ chế cho phép phát hiện lỗi

l Ràng buộc khóa chính, khóa ngoại

l Ràng buộc miền giá trị

l Trigger

Sự cố do nhập liệu sai

Trang 8

l Mất dữ liệu trên thiết bị lưu trữ

l Không thể truy cập lên thiết bị lưu trữ

l Ví dụ

l Đầu đọc của đĩa cứng hư

l Sector trên đĩa cứng hư

l DBMS áp dụng

l Kỹ thuật RAID

l Duy trì CSDL trên băng từ hoặc đĩa quang (archive)

Sự cố trên thiết bị lưu trữ

Trang 9

l Sự cố làm cho 1 giao tác kết thúc không bình thường

Trang 10

l Mất dữ liệu của bộ nhớ trong

l Không thể truy cập bộ nhớ trong

l Ví dụ

l Cúp điện

l Lỗi phần mềm DBMS hoặc OS

l Hư RAM

l DBMS cần cứu chữa và phục hồi dữ liệu

l Nhật ký giao tác (transaction log)

Sự cố hệ thống

Trang 11

l Đưa CSDL về trạng thái nhất quán sau cùng nhất trước khi xảy ra sự cố

l Đảm bảo 2 tính chất của giao tác

l Nguyên tố (atomic)

l Bền vững (durability)

Mục tiêu của khôi phục sự cố

Transaction manager managerLog

Query processor

Buffer manager Recovery manager

Log Data

Trang 12

l Nhật ký giao tác là một chuỗi các mẫu tin (log record) ghi nhận lại các hành động của DBMS

l Một mẫu tin cho biết một giao tác nào đó đã làm những gì

l Nhật ký là một tập tin tuần tự được lưu trữ trên bộ nhớ chính, và sẽ được ghi xuống đĩa ngay khi có thể

Trang 13

l Ghi nhận giao tác T cập nhật lên đơn vị dữ liệu X

l X có giá trị trước khi cập nhật là v và sau khi cập nhật là w

Nhật ký giao tác (tt)

Trang 14

l Khi sự cố hệ thống xảy ra

l DBMS sẽ tra cứu nhật ký giao tác để khôi phục những gì

mà các giao tác đã làm

l Một vài giao tác sẽ phải thực hiện lại (redo)

l Những giá trị đã cập nhật xuống CSDL sẽ phải cập nhật lần nữa

l Một vài giao tác không cần phải thực hiện lại (undo)

l CSDL sẽ được khôi phục về lại trạng thái trước khi thực hiện

Nhật ký giao tác (tt)

Trang 15

l Giới thiệu

l Nhật ký giao tác (transaction log)

l Điểm lưu trữ (checkpoint)

l Checkpoint đơn giản

l Checkpoint linh động (nonquiescent checkpoint)

l Phương pháp khôi phục

Nội dung chi tiết

Trang 16

l Quá trình tra cứu nhật ký mất nhiều thời gian

l Do phải quét hết tập tin nhật ký

l Thực hiện lại các giao tác đã được ghi xuống đĩa làm cho việc phục hồi diễn ra lâu hơn.

l Nhật ký giao tác có thêm mẫu tin <checkpoint> hay <ckpt>

l Mẫu tin <checkpoint> sẽ được ghi xuống nhật ký định kỳ

l Vào thời điểm mà DBMS ghi tất cả những gì thay đổi của CSDL

từ vùng đệm xuống đĩa

Trang 17

l Khi đến điểm lưu trữ, DBMS

l (1) Tạm dừng tiếp nhận các giao tác mới

l (2) Đợi các giao tác đang thực hiện

l Hoặc là hoàn tất (commit)

l Hoặc là hủy bỏ (abort)

và ghi mẫu tin <commit T> hay <abort T> vào nhật ký

l (3) Tiến hành ghi nhật ký từ vùng đệm xuống đĩa

l (4) Tạo 1 mẫu tin <checkpoint> và ghi xuống đĩa

l (5) Tiếp tục nhận các giao tác mới

Điểm lưu trữ đơn giản

Trang 18

l Các giao tác ở phía trước điểm lưu trữ là những giao tác đã kết thúc  không cần làm lại

l Và sau điểm lưu trữ là những giao tác chưa thực hiện xong  cần khôi phục

l Không phải duyệt hết nhật ký

l Duyệt từ cuối nhật ký đến điểm lưu trữ

Điểm lưu trữ đơn giản (tt)

Checkpoint

T

U

scan

Trang 19

l Trong thời gian checkpoint hệ thống gần như tạm ngưng hoạt động

l Chờ các giao tác hoàn tất hoặc hủy bỏ

l Cho phép tiếp nhận các giao tác mới trong quá trình checkpoint

l Mẫu tin <start ckpt (T1, T2, …, Tk)>

l Mẫu tin <end ckpt>

Điểm lưu trữ linh động

(Nonquiescent checkpoint)

Checkpoint

V

Trang 20

l Khi đến điểm lưu trữ, DBMS

l (1) Tạo mẫu tin <start ckpt (T1, T2,…, Tk)> và ghi xuống đĩa

l T1, T2, …, Tk là những giao tác đang thực thi

l (2) Chờ cho đến khi T1, T2, …, Tk hoàn tất hay hủy bỏ,

nhưng không ngăn các giao tác mới bắt đầu

l (3) Khi T1, T2, …, Tk thực hiện xong, tạo mẫu tin

<end ckpt> và ghi xuống đĩa

Điểm lưu trữ linh động (tt)

Trang 21

l Giới thiệu

l Phương pháp khôi phục

l Undo-Logging (immediate modification)

l Redo-Logging (deferred modification)

l Undo/Redo Logging

Nội dung chi tiết

Trang 22

l Qui tắc

l (1) Một thao tác phát sinh ra 1 mẫu tin nhật ký

l Mẫu tin của thao tác cập nhật chỉ ghi nhận lại giá trị cũ

l <T, X, v>

l (2) Trước khi X được cập nhật xuống đĩa, mẫu tin <T,

X, v> đã phải có trên đĩa

l (3) Trước khi mẫu tin <commit, T> được ghi xuống đĩa, tất cả các cập nhật của T đã được phản ánh lên đĩa

l Flush-log: chỉ chép những block mẫu tin nhật ký mới chưa được chép trước đó

Phương pháp Undo-Logging

Trang 23

Ví dụ

Hành động

Read(A,t) t:=t*2 Write(A,t) Read(B,t) t:=t*2 Write(B,t)

Output(A) Output(B)

t

8 16 16 8 16 16

16 16

Mem A Mem B Disk A Disk B

8 8 16 16 16 16

16 16

8 8 16

16 16

8 8 8 8 8 8

16 16

8 8 8 8 8 8

8 16

Trang 24

l Khôi phục

l (1) Gọi S là tập các giao tác chưa kết thúc

l Có <start T i > trong nhật ký nhưng

l Không có <commit T i > hay <abort T i > trong nhật ký

l (2) Với mỗi mẫu tin <T i , X, v> trong nhật ký

(theo thứ tự cuối tập tin đến đầu tập tin)

Trang 26

16 16

Mem A Mem B Disk A Disk B

8 8 16 16 16 16

16 16

8 8 16

16 16

8 8 8 8 8 8

16 16

8 8 8 8 8 8

8 16

Trang 27

l Vì T1 và T2 đang thực thi nên chờ

l Sau khi T1 và T2 hoàn tất hoặc hủy bỏ

l Ghi mẫu tin <checkpoint> lên nhật ký

Undo-Logging & Checkpoint

Trang 28

Undo-Logging & Checkpoint (tt)

Trang 29

l Vì T1 và T2 đang thực thi nên tạo <start ckpt (T1,T2)>

các giao tác mới

Undo-Logging & Nonquiescent Checkpoint

Trang 30

Undo-Logging & Nonquiescent Checkpoint (tt)

Trang 31

Undo-Logging & Nonquiescent Checkpoint (tt)

Trang 32

Undo-Logging & Nonquiescent Checkpoint (tt)

Trang 33

l Qui tắc

l (1) Một thao tác phát sinh ra 1 mẫu tin nhật ký

l Mẫu tin của thao tác cập nhật chỉ ghi nhận lại giá trị mới

l <T, X, w>

l (2) Trước khi X được cập nhật xuống đĩa, tất cả các mẫu tin nhật ký của giao tác cập nhật X đã phải có trên đĩa

l Bao gồm mẫu tin cập nhật <T, X, w> và <commit T>

l (3) Khi T hoàn tất, tiến hành ghi nhật ký xuống đĩa

l Flush-log: chỉ chép những block mẫu tin nhật ký mới chưa được chép trước đó

Phương pháp Redo-Logging

Trang 34

Ví dụ

Hành động

Read(A,t) t:=t*2 Write(A,t) Read(B,t) t:=t*2 Write(B,t)

Output(A) Output(B)

t

8 16 16 8 16 16

16 16

Mem A Mem B Disk A Disk B

8 8 16 16 16 16

16 16

8 8 16

16 16

8 8 8 8 8 8

16 16

8 8 8 8 8 8

8 16

Trang 35

l Khôi phục

l (1) Gọi S là tập các giao tác hoàn tất

l Có mẫu tin <commit T i > trong nhật ký

l (2) Với mỗi mẫu tin <T i , X, w> trong nhật ký

(theo thứ tự cuối tập tin đến đầu tập tin)

Trang 37

16 16

Mem A Mem B Disk A Disk B

8 8 16 16 16 16

16 16

8 8 16

16 16

8 8 8 8 8 8

16 16

8 8 8 8 8 8

8 16

Trang 39

l Đến điểm lưu trữ, DBMS

l (1) Tạo mẫu tin <start ckpt (T1, T2,…, Tk)> và ghi xuống đĩa

l T1, T2, …, Tk là những giao tác đang thực thi

l (2) Ghi xuống đĩa những dữ liệu của các giao tác đã hoàn tất trên vùng đệm

l (3) Tạo mẫu tin <end ckpt> và ghi xuống đĩa

Redo-Logging & Checkpoint (tt)

Trang 40

Redo-Logging & Checkpoint (tt)

l Ví dụ 1

l T1 đã hoàn tất trước <start ckpt>

l Có thể đã được ghi xuống đĩa

l Nếu chưa thì trước khi <end ckpt> cũng được ghi xuống đĩa

Trang 41

Redo-Logging & Checkpoint (tt)

Trang 42

Redo-Logging & Checkpoint (tt)

Trang 43

l Undo-logging (immediate modification)

l Khi giao tác kết thúc, dữ liệu được ghi xuống đĩa ngay lập tức

l Truy xuất đĩa nhiều

l Giữ lại các cập nhật trên vùng đệm cho đến khi giao tác hoàn tất và mẫu tin nhật ký được ghi xuống đĩa

l Tốn nhiều bộ nhớ

Nhận xét

Trang 44

l Qui tắc

l (1) Một thao tác phát sinh ra 1 mẫu tin nhật ký

l Mẫu tin của thao tác cập nhật ghi nhận giá trị cũ và mới của một đơn vị dữ liệu

l <T, X, v, w>

l (2) Trước khi X được cập nhật xuống đĩa, các mẫu tin cập nhật <T, X, v, w> đã phải có trên đĩa

l (3) Khi T hoàn tất, tạo mẫu tin <commit T> trên nhật ký

và ghi xuống đĩa

Phương pháp Undo/Redo-Logging

Trang 45

Ví dụ

Hành động

Read(A,t) t:=t*2 Write(A,t) Read(B,t) t:=t*2 Write(B,t) Output(A) Output(B)

t

8 16 16 8 16 16 16 16

Mem A Mem B Disk A Disk B

8 8 16 16 16 16 16 16

8 8 16 16 16

8 8 8 8 8 8 16 16

8 8 8 8 8 8 8 16

Trang 46

l Khôi phục

l (1) Khôi phục lại (undo) những giao tác chưa kết thúc

l Theo thứ tự từ cuối nhật ký đến đầu nhật ký

l (2) Thực hiện lại (redo) những giao tác đã hoàn tất

l Theo thứ tự từ đầu nhật ký đến cuối nhật ký

Phương pháp Undo/Redo-Logging (tt)

Trang 48

Mem A Mem B Disk A Disk B

8 8 16 16 16 16 16 16

8 8 16 16 16

8 8 8 8 8 8 16 16

8 8 8 8 8 8 8 16

Trang 49

l Khi đến điểm lưu trữ, DBMS

l (1) Tạo mẫu tin <start ckpt (T1, T2,…, Tk)> và ghi xuống đĩa

l T1, T2, …, Tk là những giao tác đang thực thi

l (2) Ghi xuống đĩa những dữ liệu đang nằm trên vùng đệm

l Những đơn vị dữ liệu được cập nhật bởi các giao tác

l (3) Tạo mẫu tin <end ckpt> trong nhật ký và ghi xuống đĩa

Undo/Redo-Logging & Checkpoint

Trang 50

l T1 đã hoàn tất trước <start ckpt>

l Có thể đã được ghi xuống đĩa

l Nếu chưa thì trước khi <end ckpt> cũng được ghi xuống đĩa

l Giá trị B=10 đã được ghi xuống đĩa

Trang 54

AN TOÀN & BẢO MẬT DỮ LiỆU

Trang 55

AN TOÀN & BẢO MẬT DỮ LiỆU

Trang 56

AN TOÀN & BẢO MẬT DỮ LiỆU

Trang 57

AN TOÀN & BẢO MẬT DỮ LiỆU

Trang 58

AN TOÀN & BẢO MẬT DỮ LiỆU

Trang 59

AN TOÀN & BẢO MẬT DỮ LiỆU

Trang 60

AN TOÀN & BẢO MẬT DỮ LiỆU

Trang 61

AN TOÀN & BẢO MẬT DỮ LiỆU

Trang 62

AN TOÀN & BẢO MẬT DỮ LiỆU

Trang 63

AN TOÀN & BẢO MẬT DỮ LiỆU

Trang 64

AN TOÀN & BẢO MẬT DỮ LiỆU

Trang 65

AN TOÀN & BẢO MẬT DỮ LiỆU

Trang 66

AN TOÀN & BẢO MẬT DỮ LiỆU

Trang 67

AN TOÀN & BẢO MẬT DỮ LiỆU

Ngày đăng: 16/06/2024, 16:09

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w