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

bài giảng chương iv an tòan dữ liệu và khôi phục sự cố

80 306 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

Thông tin cơ bản

Định dạng
Số trang 80
Dung lượng 782,93 KB

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

Nội dung

Nội dung Giới thiệu  Phân loại sự cố  Mục tiêu của khôi phục sự cố  Các phương pháp phục hồi dữ liệu  An tòan logic dựa trên nhật ký  Khôi phục sau sự cố có hệ thống... Khôi phục s

Trang 1

Chương IV An tòan dữ liệu và

khôi phục sự cố

Trang 2

Nội dung

 Giới thiệu

 Phân loại sự cố

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

 Các phương pháp phục hồi dữ liệu

 An tòan logic dựa trên nhật ký

 Khôi phục sau sự cố có hệ thống

Trang 3

Giới thiệu

 An toàn dữ liệu : nhằm chống lại sự xâm nhập trái phép từ bên

ngoài gây hư hỏng hệ quản trị cơ sở dữ liệu, sai lệch, mất mát

dữ liệu, cấu trúc dữ liệu,

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

Trang 4

 Sự cố của giao tác (transaction failure)

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

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

Trang 5

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

Trang 6

Sự cố của giao tác (transaction failure)

 Sự cố gây nên một giao tác kết thúc không bình

Trang 8

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

được dữ liệu ở bộ nhớ ngòai

Trang 9

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

 Khôi phục CSDL là tiến trình phục hồi CSDL về trạng thái nhất quán cuối cùng trước khi có sự cố xảy ra.

 Việc khôi phục dữ liệu được thực hiện bởi bộ quản lý khôi phục dữ liệu (RM- Recovery Manager).

 Khôi phục dữ liệu tự động giúp giảm thiểu việc yêu cầu người sử dụng thiện hiện lại công việc (khi xảy ra

sự cố).

 Giao tác là đơn vị cơ bản khi khôi phục CSDL.

 Trong 4 tính chất của GT(ACID), RM đảm bảo 2 tính chất: tính nguyên tố(Atomic) và tính bền vững

(Durability)

Trang 10

Khôi phục sự cố từ một giao tác

Lock(A) Read(A) A=A+1 Write(A) Lock(B) Unlock(A)

Read(B)

Lock(A) Read(A) A=A+2

Write(A)

 Nếu một giao tác T bị sự cố thì hệ thống sẽ thực hiện các việc sau:

 Giải phóng các đơn vị dữ liệu đang

bị khóa bởi T (Ul(B))

 Reset lại giá trị các đơn vị dữ liệu

mà T đã làm thay đổi (A)

 Xét xem có giao tác nào(#T) đã đọc

dữ liệu do T ghi không? Nếu có:

-T’ chưa commit hủy -T’ commit rồi  thực hiện lại

Trang 11

Các phương pháp phục hồi dữ liệu

Trang 12

Lưu thông tin trên đĩa cứng

ra Thông tin ghi lại trong nhật ký là trình trạng các trang vật lý của CSDL trước khi thực hiện hành

động của một giao tác

record) ghi nhận lại các hành động của DBMS

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

Nhật ký là một tập tin tuần tự được lưu trữ trên bộ

Trang 13

Tạo bản sao lưu (backup)

 CSDL sẽ được sao chép thành nhiều bản nằm trên các đĩa cứng khác nhau Có 2 phương pháp thực hiện sao lưu dữ liệu:

Thủ công : Chọn thời điểm thích hợp người quản trị CSDL thực hiện công

cụ hỗ trợ của hệ thống để tiến hành sao lưu (Backup) toàn bộ hay một

phần CSDL lên một vị trí an toàn trong hệ thống Bằng cách này, nếu có xảy ra sự cố thì người quản trị CSDL sẽ sử dụng công cụ hỗ trợ của hệ

QTCSDL thực hiện thao tác phục hồi (Restore) hiện trạng CSDL Thông

thường, cách này chỉ được tiến hành đột xuất.

Tự động : Hầu hết các hệ QTCSDL đều có cơ chế tự động sao lưu và phục

hồi dữ liệu khi có sự cố Có thể yêu cầu lưu lại mấy bản sao dữ liệu cuối cùng Có thể định kỳ cho hệ thống sẽ tự động sao lưu CSDL vào một giờ

Trang 14

Các loại Backup

Trang 17

Log Backup

 Cú pháp:

Backup log <tên database> TO <tên logic backup>

WITH NO_TRUNCATE

BACKUP LOG AdventureWorks

TO DISK= 'C:\SQL\Backup\ AdventureWorks.bak' WITH NO_TRUNCATE

Trang 18

Phục hồi csdl (restore databse)

Restore database <tên database>

from <thiết bị backup>

Ví dụ:

RESTORE DATABASE AdventureWorks

FROM DISK = ‘C:\Backup\AdventureWorks.bak’

 Phục hồi giao tác

Restore log <tên database>

from <thiết bị backup>

Trang 19

Ví dụ

 backup database qlsv to disk ='d:\qlsv.bak'

 restore database qlsv from disk ='d:\qlsv.bak'

Trang 20

Các cơ chế an toàn dữ liệu

 Khung nhìn (view) như các cơ chế bảo vệ

Mã hóa dữ liệu

Trang 21

Kiểm soát quyền truy cập CSDL

Trang 22

Kiểm soát quyền truy cập CSDL

 User được phép truy xuất không điều kiện tới toàn bộ CSDL và thực hiện bất kỳ thao tác nào trên CSDL đó

 User không được phép truy xuất tới bất kỳ bộ phận nào của CSDL

được thay đổi nội dung của bộ phận đó

 User có thể đọc đúng một bộ trong bảng NhanVien

nhưng không được sửa đổi bộ này

 User có thể đọc đúng một bộ trong bảng NhanVien và sửa đổi nhưng không phải tất cả giá trị của bộ này.

Trang 23

Kiểm soát quyền truy cập CSDL

nhưng trong mỗi bộ chỉ được sửa giá trị của các thuoc tính MaPB

 User có thể đọc các thuộc tính MaNV, TenNV, Luong nhưng trong mỗi bộ chỉ được sửa giá trị của các thuộc tính Luong trong khoảng thời gian từ 8h -> 11h từ một thiết bị đầu cuối đặt trong phòng tài vụ

 User có thể đọc các thuộc tính MaNV, TenNV, Luong nhưng trong mỗi bộ chỉ được sửa giá trị của các thuộc tính Lương nếu và chỉ nếu giá trị hiện tại của thuộc tính Luong < 500 USD

Trang 24

Kiểm soát quyền truy cập CSDL

 User có thể áp dụng các phép toán thống kê cho thuộc tính Lương (như tính lương trung bình của từng phòng ban) nhưng không được đọc hay sửa đổi các giá trị cá biệt.

và trong mỗi bộ có thể sửa giá trị của thuộc tính HoaHong của nhân viên nếu và chỉ nếu người đó là trưởng phòng của phòng đó.

nào đó hay xóa nhân viên khỏi một phòng nào đó.

Trang 25

Kiểm soát quyền truy cập CSDL

Trang 26

Xác nhận người dùng

 Những user khác nhau tùy theo vị trí, vai trò, trách nhiệm và quyền hạn trong hệ thống sẽ có các quyền khác nhau đối với CSDL hay các bộ phận khác nhau của CSDL như các quan hệ hay thuộc tính của các quan hệ Các quyền này bao gồm đọc, thêm, xóa hay sửa đổi các các đối tượng của CSDL.

Trang 27

Xác nhận người dùng

Các DBMS phải đảm bảo không cho phép user thựchiện bấy kỳ thao tác nào nếu không được phép Ngườiquản trị CSDL(DBA) là người có quyền cấp tài nguyên

và quyền thao tác CSDL, nghĩa là người quản trị phải:

(1) Xác nhận cho hệ thống những quyền hay cụthể những thao tác mà mỗi user được phép thực hiện

(2) Cung cấp một phương tiện cho user để hệthống nhận biết họ

Trang 28

- Sửa đổi lược đồ và tổ chức vật lý.

- Cấp quyền user để truy xuất dữ liệu.

Trang 29

Xác nhận người dùng

Nhiệm vụ của DBA:

- Thực hiện vai trò liên kết các user.

- Giám sát việc thực thu và đáp ứng các thay đổi phù hợp.

- Quản lý không gian lưu trữ, thực hiện sao lưu

dữ liệu,

- Việc xác nhận user thường được sử dụng là mật khẩu.

Trang 30

Phân quyền người dùng

dùng có thể hay không thể thực thi trên CSDL, quyền được chia thành 4 loại như sau:

 Quyền truy cập vào SQL Server

 Quyền truy cập vào CSDL

 Quyền thực hiện trên các đối tượng của CSDL

 Quyền xử lý dữ liệu

Trang 31

Nhà quản trị hệ thống

(System administrator)

 Nhà quản trị hệ thống có login là sa

 Có tòan quyền truy xuất đến tất cả đối tượng trong SQL Server

 Không thể xóa login sa

Trang 32

Người chủ CSDL

(database owner)

 Login dbo được gọi là database owner.

 dbo là thành viên của nhóm db_owner.

 Không thể xóa khỏi nhóm này.

Trang 33

Tạo login đăng nhập

 Tạo login bằng phát biểu SQL

 Ví dụ:

 Liệt kê danh sách login

 Select name, createdate

Trang 34

Khai báo database user bằng phát biểu SQL

 Cú pháp

For Login <Tên login>

 Ví dụ:

CREATE USER lmn FOR LOGIN minhnguyen

Trang 35

Cú pháp tạo tài khoản đăng nhập

 Dùng sp

EXEC sp_addlogin [@login= <‘login’>]

[,@password= <‘password’>]

[,@defdb= <‘database’>]

Ví dụ

Use QLSV

Trang 36

Thay đổi password

Cú pháp:

EXEC sp_password [@old= <‘old password’>]

[,@new= <‘new password’>]

[,@loginname= <‘login’>]

EXEC sp_password ‘123’, ‘nguyen’, ‘user1’

Trang 37

Cấp quyền truy cập vào CSDL

Trang 38

Xóa quyền truy cập vào CSDL

Trang 39

Quyền thực hiện trên các đối tượng của CSDL

 Cấp quyền tạo đối tượng

 Cú pháp

Grant <all | các quyền > to [tên user]

 Ví dụ: Cấp quyền tạo view

Use QLSV

GRANT create table, create view

To pvn

 Cấm quyền tạo đối tượng

Deny <all | các quyền > to [tên user]

Trang 40

Quyền xử lý dữ liệu

Grant <ALL| các quyền

ON <table hay view>

Deny <all | các quyền > on <bảng, view,…>to [tên user]

Trang 43

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

Trang 44

Tạo điểm phục hồi hệ thống

(system check point)

đã được ghi nhận, sau thời điểm đó là chưa được ghi

nhận, vẫn còn nằm trong bộ nhớ trong Trước khi kết thúckỳ (session) khai thác CSDL, hệ thống sẽ đóng các tập tin và ghi lại các bộ đệm vào CSDL, và đồng thời ghi vào nhật ký

Vùng đệm dành

cho nhật ký

Module quản lý phục hồi dữ liệu Nhật ký

CSDL

Trang 45

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

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

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

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

Trang 46

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

 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

 Và sau điểm lưu trữ là những giao tác chưa thực hiện xong

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

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

T

U

scan

Trang 47

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

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

 Mẫu tin <end ckpt>

V

Trang 48

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

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

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

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

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

Trang 49

Ví dụ

Ví dụ: Có 5 giao tác thực hiện như hình trên Thời điểm kiểm tra hệ thống

(System Check Point) là tk Khi đó các hành động của T1 không cần phải làm lại (T1 là an toàn) T3 chỉ bị hủy một phần hành động sau tk và làm

lại T5 bị hủy để làm lại T2 và T4 được hệ thống tự động phục hồi (dựa vào nhật ký và điểm phục hồi).

Hai chiến lược xác nhận và hủy giao tác:

o Ghi chồng lên dữ liệu cũ (Chiến lược đảm bảo an toàn lôgic) Thông tin

cũ bị mất.

T1 T2 T3

t1 t2 t4 t3

T4 T5

tk

 Thời điểm xảy ra sự cố

 Check point

Trang 50

An tòan logic dựa trên các nhật ký

Trang 51

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

 <T, X, v>

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

tất cả các cập nhật của T đã được phản ánh lên đĩa

Trang 52

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 53

Undo-Logging (tt)

 Có <start Ti> trong nhật ký nhưng

 Không có <commit Ti> hay <abort Ti> trong nhật ký

 (2) Với mỗi mẫu tin <Ti, X, v> trong nhật ký (theo thứ tự cuối tập tin đến đầu tập tin)

 Nếu Ti  S thì -Write(X, v)

- Output(X)

Trang 55

Ví dụ

Hành động

Read(A,t)

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

16 16

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 56

Phương pháp Redo-Logging

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

 <T, X, w>

mẫu tin nhật ký của giao tác cập nhật X đã phải có trên đĩa

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

Trang 57

Ví dụ

Hành động

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

t

8 16 16 8 16 16

Mem A Mem B Disk A Disk B

8 8 16 16 16 16

8 8 16

8 8 8 8 8 8

8 8 8 8 8 8

Trang 58

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

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

 Có mẫu tin <commit Ti> trong nhật ký

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

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

Trang 60

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)

t

8 16 16 8 16 16

16

Mem A Mem B Disk A Disk B

8 8 16 16 16 16

16

8 8 16

16

8 8 8 8 8 8

16

8 8 8 8 8 8

Trang 61

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

 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

 <T, X, v, w>

nhật <T, X, v, w> đã phải có trên đĩa

Trang 62

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)

t

8 16 16 8 16 16

16

Mem A Mem B Disk A Disk B

8 8 16 16 16 16

16

8 8 16

16

8 8 8 8 8 8

16

8 8 8 8 8 8

8

Bước 1 2 3 4 5

Mem Log

<start T>

6 7 8 9

Flush log

<T, A, 8, 16>

<T, B, 8, 16>

Trang 63

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

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

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

Trang 65

Ví dụ

Hành động

Read(A,t)

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

8 8 16 16 16 16 16

8 8 16 16

8 8 8 8 8 8 16

8 8 8 8 8 8 8

Trang 66

Khơi phục sau sự cố cĩ hệ thống

 Đó là cơ chế phục hồi bình thường sau khi ngưng

hoạt động hệ thống Cơ chế này dựa trên điểm phục hồi bình thường cuối cùng Đối với tình huống ngưng hoạt động bất thường, có 2 cơ chế phục hồi: Phục hồi nóng và Phục hồi lạnh.

Trang 67

Khơi phục sau sự cố cĩ hệ thống (tt)

T1 T2 T3 T4 T5

 Điểm phục hồi hệ thống

 Điểm xảy ra sự cố

chế này dựa trên nhật ký trước, các bản sao dữ liệuvà điểm phục hồi hệ thống

T1 đã được xác nhận T2 đã hoàn tất việc ghi lên bộ nhớ ngoài (đã

Trang 68

Khơi phục sau sự cố cĩ hệ thống (tt)

ra sau điểm phục hồi thì sẽ được làm lại

thì được làm lại

thì phải được hủy bỏ và làm lại từ đầu

được làm lại T4 được thực hiện lại T5 được thựchiện sau điểm phục hồi và còn dở dang nên đượchủy và làm lại từ đầu

Trang 69

Khơi phục sau sự cố cĩ hệ thống (tt)

hư, thay đĩa khác) Thông thường thì người ta sẽcó một phiên bản của CSDL và nhật ký nằm trên

một đĩa khác Cơ chế này dựa trên “nhật ký sau”.

và nhật ký sau để thực hiện lại một vài hành

động (nhật ký luôn luôn được lưu thành nhiều bản

trên nhiều đĩa cứng khác nhau) Cơ chế phục hồi

lạnh được tiến hành tùy thuộc vào người quản trị

Cơ sở dữ liệu

Trang 70

Cài đặt trên SQL server

 Khóa

Trang 71

Cài đặt trên SQL server (tt)

 Quản lý việc đọc dữ liệu có 5 mức

Trang 72

Cài đặt trên SQL server (tt)

Trang 73

Cài đặt trên SQL server (tt)

Trang 74

Cài đặt trên SQL server (tt)

Trang 75

Cài đặt trên SQL server (tt)

Trang 76

Xác định chiến lược sử dụng Lock và

Isolation Level Một số gợi ý sau:

 Nếu không cần đọc chính xác dữ liệu mà chỉ cần 1 cái

nhìn tổng quan về thông tin trong CSDL thì nên sử dụng READ UNCOMMITTED hay NOLOCK

 Thông thường, sử dụng chế độ mặc định của SQL Server

là READ COMMITTED

 Nếu không muốn nội dung của 1 đơn vị dữ liệu bị thay đổi trong suốt quá trình diễn ra giao tác thì sử dụng

REPEATABLE READ

Trang 77

Xác định chiến lược sử dụng Lock và Isolation Level Một số gợi ý sau:

 Nếu không muốn xuất hiện những dòng dữ liệu

Trang 79

 Giả sử sự cố hệ thống xảy ra ngay sau các bước trên thì tiến trình

Trang 80

Bài tập

 Giả sử sau khi sự cố hệ thống xảy ra, DBMS được khởi

động lại với tập tin nhật ký như sau:

Ngày đăng: 17/10/2014, 07:23

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w