You are on page 1of 12

Chương 4

BACKUP - RECOVERY

HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU

MỤC TIÊU

● Biết được các loại sự cố


● Biết cách thức phục hồi sự cố
● Vận dụng cơ chế backup-recovery trong SQL 2008

1
SỰ CỐ 1. SỰ CỐ

● Noncatastrophic failure
Nghiêm trọng Ít nghiêm trọng – Thể hiện: CSDL vẫn hoạt động nhưng ngữ
(Catastrophic
Failure)
(Noncatastrophic nghĩa bị sai lệch
Failure)
tạm thời
– Phạm vi: Mức độ ảnh hưởng cục bộ
– Chi phí: Có thể phục hồi nhanh chóng, dễ
SỰ CỐ
dàng

Theo góc nhìn của hệ thống, không phải góc nhìn của ứng dụng

1. SỰ CỐ 1. SỰ CỐ

● Catastrophic failure
● Nguyên nhân từ phần cứng (trên máy
– Thể hiện: CSDL không hoạt động trong thời gian chủ)
dài Ít nghiêm trọng Nghiêm trọng

Đĩa cứng chứa CSDL phân tán tập trung


– 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

2
1. SỰ CỐ 1. SỰ CỐ

● Nguyên nhân từ phần mềm (trên máy chủ)


● Nguyên nhân từ hạ tầng mạng viễn
thông Ít nghiêm trọng Nghiêm trọng

Ít nghiêm trọng Nghiêm trọng Hệ điều hành hư file hệ thống, transactions dở dang hư file dữ liệu vật lý
Thiết bị kết nối, đường truyền transactions dở dang
DBMS hư file hệ thống, transactions dở dang hư file dữ liệu vật lý

Application Transactions dở dang


Lỗi thao tác cập nhật dữ liệu Lỗi thao tác cập nhật dữ liệu

NỘI DUNG RECOVERY

1. Sự cố ● Phục hồi cho hệ thống hoạt động bình thường


– phần cứng thiết bị
1. Recovery – hạ tầng mạng viễn thông
– phần mềm
2. Backup-recovery trong SQL Server 2005
● Phục hồi ngữ nghĩa của CSDL
– tính nhất quán
– tính đúng đắn so với thực tế

3
RECOVERY RECOVERY

● Tác nhân
– DBMS (tự động, “kịch bản”) ● Nguyên nhân từ phần cứng (trên máy chủ)
– Admin (thủ công): hệ thống, DBMS
Ít nghiêm trọng Nghiêm trọng
– End user
Hư đĩa cứng chứa CSDL phân tán tập trung

Cách xử lý đồng bộ hóa sử dụng dữ liệu backup


(online, offline)

1
6

RECOVERY RECOVERY

● Nguyên nhân từ hạ tầng mạng viễn thông ● Nguyên nhân từ phần mềm (trên máy chủ)

Ít nghiêm trọng Nghiêm trọng Cách xử lý


Hư thiết bị kết nối, đường truyền transactions dở dang hư file hệ thống cài đặt HĐH, DBMS
Cách xử lý phục hồi transactions hư file dữ liệu vật lý sử dụng dữ liệu backup
transactions dở dang phục hồi transaction

lỗi cập nhật dữ liệu sử dụng dữ liệu backup

4
RECOVERY NỘI DUNG

Hoạt động phục hồi giao tác


1. Sự cố
Phục hồi giao tác Hành động

1 None
2. Recovery
2 Roll forward

3 Roll back

Roll forward 3. Backup-recovery trong SQL Server


4
2008
5 Roll back

Checkpoint Hệ thống gặp lỗi


cuối cùng

1
9

3. Backup-recovery trong SQL Server 2008 3.1 Backup

Các kiểu sao lưu CSDL:


● Recovery
• Full backup:
– Simple
 Sao lưu toàn bộ dữ liệu (kể cả các stored procedure,
– Full view, hàm người dùng định nghĩa, transaction log…)
– Bulk-logged  File tạo ra có phần mở rộng .bak
● Backup • Differential backup:
– Full backup  Sao lưu các dữ liệu mới được cập nhật kể từ lần full
backup trước đó
– Transaction Log
backup  File tạo ra có phần mở rộng .bak

– Differential backup • Transaction log backup:

– File/ File Group  Sao lưu các bản ghi transaction log (các thao tác xảy ra
backup trên CSDL, không sao lưu dữ liệu)
 File tạo ra có phần mở rộng .trn

5
3.1.1 Full Backup 3.1.1 Full Backup

BACKUP DATABASE {database_name |@database_name_var}

TO <backup_device> [, ...n]
Chủ nhật Thứ hai Thứ ba
[WITH
● Backup các tập tin dữ liệu và tập tin ghi sổ giao
[FORMAT]
dịch
● Thực hiện full backup: [[,] {INIT | NOINIT}]]
– CSDL nhỏ
]
– CSDL ít có các thay đổi

3.1.2 Transaction Log Backup 3.1.2 Transaction Log Backup

BACKUP LOG {database_name |


@database_name_var}
TO <backup_device> [, …n]
Chủ nhật Thứ hai [WITH
● Backup tập tin ghi sổ: các lệnh làm thay đổi dữ liệu
[{INIT | NOINIT}]
● Thực hiện Full backup đầu tiên, sau đó mới sử dụng
các transaction log backup: ]
– CSDL thường xuyên bị thay đổi
– Thời gian thực hiện Full backup quá lâu

6
3.1.3 Differential Backup 3.1.3 Differential Backup

BACKUP DATABASE {database_name |


@database_name_var}
Thứ hai Thứ ba TO <backup_device> [, ...n]

● Backup tất cả các dữ liệu đã thay đổi kể từ lần Full [WITH

backup gần nhất [DIFFERENTIAL]

● Sử dụng Differential backup nếu: ]


– Dữ liệu thường xuyên bị thay đổi
– Muốn rút ngắn thời gian của các lần backup

3.1.3 Differential Backup 3.1 Backup

BACKUP DATABASE {database_name |


@database_name_var} [<file_or_filegroup> [, ...m]] TO
<backup_device> [, …n]]

<file_or_filegroup> :
{
FILE = {logical_file_name |@logical_file_name_var}
| FILEGROUP = {logical_filegroup_name |
@logical_filegroup_name_var}
}

7
[3
H0
Q 3.1 Backup
3.1 Backup T
C
S
D
L
-
B
a
c
k
u
p
-
R
e
c
o
v
e
r
y
]

3.2 Recovery 3.2 Recovery - Phục hồi CSDL

Mô hình Giải thích


Sử dụng được Full backup và Differential backup. Tập tin ghi sổ
Simple
sẽ bị “truncate” tự động nếu thiếu không gian lưu trữ

Full Sử dụng được tất cả các loại backup

Bulk-logged Tương tự Full nhưng chỉ ghi 1 số lệnh cập nhật (không ghi tất cả)

Quản trị CSDL 32

8
Phục hồi CSDL Phục hồi CSDL

-Click vào đây


-Chọn radio để chỉ định vị
button để trí chứa file
chọn file CSDL
CSDL trên ổ
đĩa

-Chọn phiên bản của bản


sao lưu CSDL, để khôi
phục CSDL ở đây

Quản trị CSDL 33 Quản trị CSDL 34

Phục hồi CSDL Gợi ý khi sao lưu/phục hồi CSDL

 Càng thực hiện sao lưu nhiều càng giảm rủi ro khi có sự cố.
 Với các CSDL quan trọng, thực hiện nhiều thay đổi trong ngày. Nên
thực hiện nhiều lần sao lưu trong một ngày

-Chọn radio button này


 Full Backup là phương pháp an toàn nhất, nhưng thực hiện Full
khi thực hiện phục hồi Backup nhiều sẽ tốn dung lượng bộ nhớ.
CSDL từ một bản sao
full bakup và nhiều Nên:
bản sao differential
backup  Thực hiện sao lưu Full Backup một lần vào lúc bắt đầu một ngày
(chuẩn bị làm việc với CSDL)
 Thực hiện nhiều sao lưu Differential backup trong ngày (định kì
khoảng một vài tiếng một lần)
 Thực hiện nhiều sao lưu Transaction log backup trong ngày

Quản trị CSDL 35

9
Gợi ý khi sao lưu/phục hồi CSDL 4. Đặt lịch sao lưu tự động

Đặt lịch sao lưu tự động là:


Tạo một kế hoạch cho SQL Server để SQL Server tự động
 Khi có sự cố, tiến hành phục hồi như sau:
thực hiện sao lưu CSDL tại một thời điểm được ấn định sẵn.

 Phục hồi CSDL sử dụng bản sao lưu Full Backup Để tạo lịch sao lưu tự động người dùng phải đăng nhập
bằng Login ID có vai trò “sysadmin”
 Phục hồi CSDL sử dụng bản sao lưu Differential

backup ở trước và gần thời điểm xảy ra sự cố

 Phục hồi CSDL sử dụng bản sao lưu Transaction

log backup ở trước và gần thời điểm xảy ra sự cố

4. Đặt lịch sao lưu tự động 4. Đặt lịch sao lưu tự động

Nhấn chuột phải vào Maintenance Plans. Chọn New Đặt tên cho Maintenance Plan
Maintenance Plan

10
4. Đặt lịch sao lưu tự động 4. Đặt lịch sao lưu tự động

Trang cấu hình lịch sao lưu tự Ấn định thời gian thực hiện sao lưu CSDL
động

Cấu hình thời gian thực hiện


Đặt thời gian là giờ Nhấn chuột
sao lưu tự đọng
mà CSDL ít được vào đây
dùng nhất

Các nhiệm vụ
Chú ý: backup database
task & maintenance
cleanup task

4. Đặt lịch sao lưu tự động 4. Đặt lịch sao lưu tự động

Thêm Back Up Database Task Cấu hình Back Up Database Task


Back Up Database Task: thực hiện sao lưu CSDL Trong bước 4: nhấn đúp chuột vào Back Up
theo thời gian đã ấn định Database Task

-Chọn Backup Type là “Full”


-Chọn các CSDL muốn thực
hiện sao lưu trong mục
Database(s)

Kéo Back Up
Database Task
sang khung bên -Chọn đường dẫn lưu bản sao
phải CSDL
-Nhập bak vào mục Backup
File extension

Quản trị CSDL 43

11
4. Đặt lịch sao lưu tự động 4. Đặt lịch sao lưu tự động

Cấu hình cho Maintenance Cleanup Task


Thêm Maintenance Cleanup Task vì sao lưu được Trong bước 6: Nhấn đúp chuột vào Maintenance
thực hiện thường xuyên, dẫn đến đầy bộ nhớ Cleanup Task
server
Maintenance Cleanup Task: Xóa các bản sao, mà có
thời gian sao lưu cũ hơn một khoảng thời gian cho
trước.
- Chỉ định vị trí lưu File bản sao
CSDL và phần mở rộng của bản
Kéo Maintenance Cleanup Task sao.
sang khung bên phahir

-Chỉ định khoảng thời gian, mà các


bản sao được sao lưu trong khoảng
thời gian này sẽ được giữ lại.
-Ví dụ trong hình sẽ giữ lại các bản
sao được sao lưu trong vòng 4 tuần
và xóa các bản sao cũ hơn

4. Đặt lịch sao lưu tự động

Chú ý: SQL Server chỉ thực hiện sao lưu tự động thành
công khi SQL Server Agent đang chạy
Nếu SQL Server Agent bị tắt. Có thể khởi động lại
trong SQL Server Management Studio
SQL Server Configuration Management

Thank you!

12

You might also like