Cơ sở dữ liệu - Chương 3: Sao lưu và phục hồi dữ liệu
Cơ sở dữ liệu -
Chương 3: Sao lưu và phục hồi dữ liệu
Nhật kí giao dịch bảo đảm mối giao dịch có thể được khôi phục tới sát thời điểm mà server bị lỗi
Cho phép backup nhật kí giao dịch ngay trong lúc đang được xử lí
82 trang |
Chia sẻ: huyhoang44 | Lượt xem: 704 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Cơ sở dữ liệu - Chương 3: Sao lưu và phục hồi dữ liệu, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
GV Phi Loan - Khoa CNTT – HUI 1
GV Phi Loan - Khoa CNTT – HUI
Nội dung
• Mô hình recovery
• Chiến lược backup
• Chiến lược restore
2
GV Phi Loan - Khoa CNTT – HUI
Khôi phu ̣c cơ sở dữ liê ̣u
(Database Recovery)
• SQL Server bảo đảm tính lâu bền của giao
dịch (transactional durability) bằng cách
viết vào nhật k{ trước khi thực thi giao
dịch (write-ahead transaction log)
Ta ̣o thuận lợi cho kế hoạch khôi phục
dữ liệu
3
GV Phi Loan - Khoa CNTT – HUI
Nhật ký giao dịch
(Transaction log)
• Nhâ ̣t k{ giao dịch (transaction log) ba ̉o đa ̉m
môĩ giao dịch có thê ̉ được khôi phu ̣c tới sát
thời điê ̉m mà server bị lỗi.
• Cho phép backup nhâ ̣t k{ giao dịch ngay trong
lúc giao dịch đang được xử l{.
• Nhâ ̣t k{ giao dịch giảm tác ha ̣i của lỗi phần
cứng vì nhâ ̣t k{ giao dịch và file dư ̃ liê ̣u có thể
đặt trên các đĩa khác nhau.
4
GV Phi Loan - Khoa CNTT – HUI
Mô hình recovery
• Backup và restore phu ̣ thuô ̣c vào mô hình
recovery.
• Mô hình recovery là 1 đă ̣c trưng của DB dùng
để kiê ̉m soát viê ̣c hoa ̣t đô ̣ng của transaction
log
5
GV Phi Loan - Khoa CNTT – HUI
Tiêu chuả̂n RPO (Recovery Point
Objective).
• Chọn lựa mô hình recovery sao cho đáp ứng
tiêu chuâ ̉n RPO (Recovery Point Objective).
• RPO đo lường lượng dư ̃ liệu có thê ̉ bị mất khi
có sự cô.́
• Ví dụ: mô ̣t công ty có yêu cầu không thê ̉ đê ̉
mât́ dư ̃ liệu của CSDL nhiều hơn 1 giờ RPO
của công ty là 1 giờ.
6
GV Phi Loan - Khoa CNTT – HUI
Point-in-time recovery (PITR)
• Khôi phục dữ liệu về lại 1 thời điểm
trong quá khư ́.
7
GV Phi Loan - Khoa CNTT – HUI
Các mô hình recovery
• Simple Recovery Model
• Full Recovery Model
• Bulk-Logged Recovery Model
Cho ̣n lựa mô hình nào là tùy thuộc vào
yêu câù nghiệp vụ (business
requirement) của tỏ̂ chư ́c
8
GV Phi Loan - Khoa CNTT – HUI
Các mô hình recovery
• Simple: không backup nhâ ̣t k{ giao
dịch(transaction log). Mô hình này cho phép
chi ̉ khôi phu ̣c dư ̃ liê ̣u theo ba ̉n backup sau
cùng , không cho phép point-in-time
recovery.
• Bulk-logged recovery: giảm tối thiểu các hoạt
đô ̣ng ghi nhâ ̣t k{ giao dịch trong lúc thực thi
thao tác hàng loa ̣t. Mô hình này không thê ̉
thực hiện point-in-time recovery.
9
GV Phi Loan - Khoa CNTT – HUI
Các mô hình recovery
• Full: yêu cầu phải có cả backup đầy đủ và
backup của transaction log. Tùy mư ́c độ
lõ̂i, có thể khôi phục hoă ̣c ở thơ ̀i điểm
backup đầy đủ sau cùng hoặc ở thời
điểm backup của transaction log sau
cùng. Full recovery cho phép point-in-
time recovery.
10
GV Phi Loan - Khoa CNTT – HUI
Xác lập mô hình recovery
• Băǹg công cụ
– Trang Options của Properties của DB muốn
backup
• Băǹg lệnh
ALTER DATABASE DatabaseName SET Recovery Option;
Các giá trị của options là FULL, BULK_LOGGED, SIMPLE.
– Ví dụ:
ALTER DATABASE [AdventureWorks]
SET RECOVERY FULL;
11
GV Phi Loan - Khoa CNTT – HUI
Xem mô hình recovery
• Để xem mô hình recovery của mõ̂i CSDL,
SELECT name, recovery_model_desc
FROM sys.databases;
12
GV Phi Loan - Khoa CNTT – HUI
Khái niệm về backup
• Backup là sao chép dữ liệu và log cu ̉a 1
DB vào 1 thiết bị lưu trư ̃ đề có thể khôi
phục lại dữ liệu của DB khi có lõ̂i (failure )
xa ̉y ra
13
GV Phi Loan - Khoa CNTT – HUI
Phân loại backup
• Copy-only
• Database backup
• Differential backup
• Full backup
• Log backup
• File backup
• Partial backup
14
GV Phi Loan - Khoa CNTT – HUI
Các loại backup
• Full: backup đầy đủ mo ̣i dư ̃ liệu của CSDL
• Differential: Backup tất ca ̉ các trang dư ̃ liê ̣u bị
sửa đỏ̂i kể tư ̀ lần backup đầy đủ sau cùng. Ít
tôń thời gian hơn backup đầy đủ. Loa ̣i backup
này cũng ghi la ̣i các transactions đang xa ̉y ra
trong quá trình backup differential. Thường
loa ̣i backup này kêt́ hợp với backup đầy đủ để
khôi phu ̣c dư ̃ liê ̣u.
15
GV Phi Loan - Khoa CNTT – HUI
Các loại backup
• Transaction log backup: ghi la ̣i các thay đô ̉i xa ̉y
ra kể tư ̀ lần backup transaction log trước đó
và xóa đi (truncate) các transaction đã được
commit hay bị hủy bo ̉.
– Transaction log backup chỉ ra tra ̣ng thái của
transaction ở thơ ̀i điểm băt́ đầu backup chư ́
không pha ̉i là thơ ̀i điểm backup kết thúc. Khi khôi
phục transaction log backups câǹ pha ̉i khôi phục
theo đúng thứ tự được backup.
16
GV Phi Loan - Khoa CNTT – HUI
Các loại backup
• File or filegroup Backup: backup theo file hay
nhóm file cu ̉a CSDL thay vì backup đầy đủ ca ̉
CSDL.
– Thường dùng cho CSDL lớn.
–Phải back up transaction log trước khi thực
hiện việc backup file and filegroup.
17
GV Phi Loan - Khoa CNTT – HUI
Các tùy chọn khác của backup
• Copy-only backup: chư ́c năng tương tự như
backup đầy đủ hay backup transaction log
nhưng không làm a ̉nh hưởng đêń các backup
tiếp sau đó.
– Ví dụ: nếu thực hiện full backup trươ ́c, kế tiếp là
copy-only backup, và sau cùng là transaction log
backup, tât́ ca ̉ các transaction log kể tư ̀ lúc backup
đâỳ đủ đều được backup. Copy backup xem như
không tôǹ tại.
18
GV Phi Loan - Khoa CNTT – HUI
Chiêń lược backup
• Có thể sử dụng nhiều hơn 1 loại backup.
–Ví dụ: thực hiện full backup hàng ngày,
differential backup cư ́ 2 giờ 1 lần,
transaction log backup cứ 10 phút 1 lần.
• Để xác định tỏ̂ hợp backup nào phù hợp
câǹ phải xem xét dùng phương pháp nào
khôi phục dữ liệu.
19
GV Phi Loan - Khoa CNTT – HUI
Chiêń lược backup vơ ́i mô hình
simple recovery
20
GV Phi Loan - Khoa CNTT – HUI
Giảm thiê ̉u nguy cơ má̂t mát dữ liê ̣u
(work-loss exposure)
• Với mode simple recovery, nguy cơ mất dư ̃
liê ̣u sẽ tăng theo thời gian cho đêń khi thực
hiê ̣n full backup hay differential backup kế
tiêṕ.
21
GV Phi Loan - Khoa CNTT – HUI
Giảm thiê ̉u nguy cơ má̂t mát dữ liê ̣u
(work-loss exposure)
• Cùng với full backup là 3 differential backup
22
GV Phi Loan - Khoa CNTT – HUI
Chiêń lược backup vơ ́i mode full
recovery
• Mô hình Full Recovery sử dụng database
backups và transaction log backups để
bảo vệ đầy đủ DB khỏi lõ̂i thiết bị.
• Nếu 1 trong các file dữ liệu bị hư,
recovery có thể khôi phục tất ca ̉ các
transaction được commit, các
transaction đang xử l{ bị rolled back.
23
GV Phi Loan - Khoa CNTT – HUI
Chiêń lược backup vơ ́i mode full
recovery
• Full Recovery cung câṕ kha ̉ năng khôi phục database
đến thơ ̀i điểm bị lỗi hay đến thơ ̀i điểm xác định
(point in time).
• Để ba ̉o đa ̉m mức đô ̣ recovery, tât́ cả operation như
SELECT INTO, CREATE INDEX, vào thực hiện hàng loạt
dư ̃ liệu cần pha ̉i được log lại đâỳ đủ.
• Các chiến lược backup cho full recovery bao gôm̀:
– Database backups.
– Differential backups (optional).
– Transaction log backups
24
GV Phi Loan - Khoa CNTT – HUI
Tạo differential database backup
• Differential database backup chỉ ghi lại
dữ liệu bị thay đỏ̂i kể tư ̀ lần backup DB
sau cùng.
• Nên thực hiện thường xuyên các
differential DB backup vì differential DB
backup nhỏ và nhanh hơn database
backups.
25
GV Phi Loan - Khoa CNTT – HUI
Giảm thiê ̉u nguy cơ má̂t mát dữ liê ̣u
(work-loss exposure)
• Vơ ́i mode full recovery
26
GV Phi Loan - Khoa CNTT – HUI
Vai trò của transaction log
• Transaction log hỏ̂ trợ các thao tác sau:
–Recovery of individual transactions.
–Recovery of all incomplete transactions
when SQL Server is started.
–Rolling a restored database, file, filegroup,
or page forward to the point of failure.
– Supporting transactional replication.
– Supporting standby-server solutions.
27
GV Phi Loan - Khoa CNTT – HUI
Kiêǹ trúc của file transaction log
• Transaction log được dùng để khôi phục
dữ liệu.
• Transaction log ánh xạ trên 1 hay nhiều
file vật l{ khác nhau.
– Logical log file là 1 chuỗi các log records
–Về mă ̣t vâ ̣t l{: chuôĩ các log record được
lưu trư ̃ trong 1 tâ ̣p các file vâ ̣t l{ dùng riêng
cho transaction log.
28
GV Phi Loan - Khoa CNTT – HUI
Kiêǹ trúc của file transaction log
• DB Engine chia file log vâ ̣t l{ thành nhiều
file log a ̉o (virtual log file).
• Các file log a ̉o không có kích cỡ cố định
và số file ảo này cũng không cố định và
được tưực hiện tự động bởi DB engine.
–DB Engine cố duy trì số file a ̉o tối thiểu.
–DBA không thê ̉ cấu hình được kích cỡ và số
lượng file log a ̉o này.
29
GV Phi Loan - Khoa CNTT – HUI
Đặc tính của transaction file
• Là loại wrap-around file.
• Khi DB được ta ̣o, logical log file băt́ đâù
ở đâù của physical log file.
• MinLSN (minimum recovery log
sequence number) là số tuâǹ tự của log
record cũ nhất đã được yêu câù khi
rollback DB thành công.
30
GV Phi Loan - Khoa CNTT – HUI
Ví dụ
• Gia ̉ sử DB có 1 file log vâ ̣t l{ được chia thành
4 file log a ̉o. Các log record mới được thêm
vào cuối các file log a ̉o này và hướng đêń cuối
file log vâ ̣t l{. Log truncation sẽ gia ̉i phóng bất
kz log a ̉o nào mà tất ca ̉ record của nó đều
năm̀ phía trước của số MinLSN
31
GV Phi Loan - Khoa CNTT – HUI
Ví dụ (tt)
• Khi cuó̂i logical log file tiến đêń cuó̂i
physical log file, các bản ghi log mới sẽ
cuộn vòng lại đầu file log vâ ̣t l{.
32
GV Phi Loan - Khoa CNTT – HUI
Checkpoint và transaction log
• Checkpoint giảm thiểu đoa ̣n của log file cần
pha ̉i được xử l{ trong lúc full recovery.
• Checkpoint viết tá̂t cả các trang đang bị sửa
đổi hiê ̣n còn nằm trong bô ̣ nhớ (dirty page) và
thông tin cu ̉a transaction log vào đĩa rồi ghi
thông tin này vào transaction log.
33
GV Phi Loan - Khoa CNTT – HUI
Checkpoint và transaction log
• Trong lúc full recovery, hai loại action cần
được thực thi:
– Log có thể chứa các record bị sửa đỏ̂i nhưng
chưa được viết vào đĩa trước khi hệ thôńg
dừng. Các sửa đỏ̂i này cần tiếp tục (rolled
forward).
– Tất cả sửa đỏ̂i có liên quan đêń các transaction
chưa hoàn chỉnh (chưa được COMMIT hay
ROLLBACK) cần pha ̉i được roll back.
34
GV Phi Loan - Khoa CNTT – HUI
Database Checkpoint
• Database Engine quản l{ tự đô ̣ng các checkpoint.
Khoa ̉ng thơ ̀i gian giữa các checkpoint tự đô ̣ng
thay đô ̉i và phụ thuô ̣c vào lượng dữ liệu được
sửa đỏ̂i.
35
GV Phi Loan - Khoa CNTT – HUI
Database Checkpoint
• Checkpoint xa ̉y ra do 1 trong các điều kiện sau:
– Khi lệnh ALTER DATABASE được dùng.
– Khi SQL Server dừng
– Thao tác ghi nhâ ̣t k{ được thực thi trong CSDL
– Backup CSDL được thực hiện
– Khi 1 hoạt động yêu cầu dừng hay khởi động
la ̣i
– Khi thực thi backup CSDL
36
GV Phi Loan - Khoa CNTT – HUI
Database Checkpoint (tt)
• Checkpoint xa ̉y ra do 1 trong các điều kiê ̣n sau:
– Khi mô ̣t hoạt đô ̣ng yêu câù CSDL dư ̀ng hay khởi
đô ̣ng la ̣i
– Khi số lượng nhâ ̣p vào nhâ ̣t k{ vượt quá lượng
công việc đã ươ ́c tính theo tùy cho ̣n của SQL
Server’s recovery interval configuration
– Nếu CSDL có mô hình recovery là simple và nhâ ̣t
k{ transaction > 70%
37
GV Phi Loan - Khoa CNTT – HUI
Database checkpoint
• DB Engine quản l{ các checkpoints một cách tự
đô ̣ng, thường cư ́ 1 phút là mô ̣t checkpoint.
• Để thay đô ̉i tâǹ số cu ̉a DB checkpoint ở mư ́c
instance:
– Trang Database Settings của Properties của SQL
Server instance, xác đi ̣nh recovery interval (tính
bằng phút)
– Hoă ̣c dùng thủ tục sp_configure
• Hoă ̣c thay đô ̉i tâǹ số xa ̉y ra checkpoint ở mư ́c
database băǹg lệnh ALTER DATABASE
38
GV Phi Loan - Khoa CNTT – HUI
sp_configure
EXEC sp_configure 'recovery interval','seconds'
• Ví dụ:
EXEC sp_configure 'recovery interval', '3';
39
GV Phi Loan - Khoa CNTT – HUI
ALTER DATABASE
• Với tùy cho ̣n SET TARGET_RECOVERY_TIME
TARGET_RECOVERY_TIME =target_recovery_time {
SECONDS | MINUTES }
• Ví du ̣:
ALTER DATABASE AdventureWorks2012 SET
TARGET_RECOVERY_TIME = 90 SECONDS;
40
GV Phi Loan - Khoa CNTT – HUI
Transaction Log Truncation
• Nếu các ba ̉n ghi log không bị xóa kho ̉i file
transaction log thì đêń 1 lúc nào đó toàn bô ̣
không gian đĩa dành cho file log này sẽ bị đầy.
• Log truncation sẽ tự động gia ̉i phóng đĩa bên
trong file log
– Nếu mode simple recovery: được tự đô ̣ng thực
hiện sau checkpoint.
– Nếu mode full hay bulk-logged recovery model:
được thực hiện tự đô ̣ng sau log backup, nếu
checkpoint xa ̉y ra kể tư ̀ lần backup trươ ́c đó.
41
GV Phi Loan - Khoa CNTT – HUI
Backup device
• Khi thực hiê ̣n backup, dữ liệu được viết vào
physical backup device.
• Physical backup device có thê ̉ là:
– Tape drive
– Disk file
• Mô ̣t dư ̃ liê ̣u backup có thể được viết vào tư ̀
1 đến 64 backup devices, các thiết bị này
pha ̉i cùng 1 loại (hoă ̣c đĩa hoă ̣c tape)
42
GV Phi Loan - Khoa CNTT – HUI
Sử dụng backup device dạng disk
• Disk backup device là đĩa cứng hay bất kz
thiết bị lưu trư ̃ đĩa nào chứa 1 hay nhiều file
backup. Mỗi file backup đêù là 1 file OS thông
thường
• Nêú đang lúc backup mà disk file bị đầy thì
thao tác backup bị lôĩ. Kích cỡ tôí đa của file
backup được xác định bằng không gian còn
trôńg của đĩa.
43
GV Phi Loan - Khoa CNTT – HUI
Tạo backup device
• Trong Server Management Studio, mở
folder Server Objects.
• Nhâṕ phải vào Backup Devices node,
cho ̣n New Backup Device.
• Xác định tên thiết bị (device), tên file và
path.
44
GV Phi Loan - Khoa CNTT – HUI
Các thuật ngư ̃ về backup và media
• Media set:
– Mô ̣t tập hợp có thứ tự các thiết bị backup, các
file trên tape hay trên đĩa được tạo ra bởi
cùng 1 loa ̣i thiết bị (hoă ̣c tape drive hoă ̣c disk
drive nhưng không thể cả hai loa ̣i)
• Media family:
– Các Backups được ta ̣o ra trong cùng 1 media
set
• Backup set:
– Nô ̣i dung backup được thêm vào media set
45
GV Phi Loan - Khoa CNTT – HUI
Ví dụ
• Ta ̣o 1 media set có tên MediaSet_1 cho
DB AdventureWorks bằng cách dùng 3 ỏ̂
tape như backup devices:
BACKUP DATABASE AdventureWorks
TO TAPE = '\\.\tape0', TAPE = '\\.\tape1', TAPE =
'\\.\tape2'
WITH FORMAT, MEDIANAME = ‘MediaSet_1'
Nếu thành công, lệnh backup trên ta ̣o 1 media set mơ ́i
trên ca ̉ 3 tape
46
GV Phi Loan - Khoa CNTT – HUI
Ví dụ
47
Thực hiê ̣n một lệnh backup thư ́ hai
BACKUP DATABASE AdventureWorks
TO TAPE = '\\.\tape0', TAPE = '\\.\tape1', TAPE = '\\.\tape2'
WITH NOINIT, MEDIANAME = 'AdWorksMediaSet1', DIFFERENTIAL
GV Phi Loan - Khoa CNTT – HUI
Ví dụ
48
Nếu thành công , mô ̣t backup set thư ́ hai được viết vào
media set
GV Phi Loan - Khoa CNTT – HUI
Thực thi backup
• Backup đầu tiên phải là full backup để
băt́ đâù chu kz backup sau đó.
• Ba cách thực thi backup
– Từ Management Studio
–Bằng lệnh BACKUP DATABASE
–PowerShell
49
GV Phi Loan - Khoa CNTT – HUI
Thực thi backup từ Management
Studio
• Cho ̣n CSDL câǹ backup
• Nhâṕ phải, chọn lệnh Tasks\Back Up
xuất hiện form Back Up Database vơ ́i
nhiều page.
–Chọn các thông số thích hợp về backup cho
CSDL
• Có thể backup trực tiếp ra file hay vào
thiết bị backup (backup device)
50
GV Phi Loan - Khoa CNTT – HUI
Thực thi Full backup bằng lệnh
BACKUP DATABASE database
TO backup_device [ ,...n ]
[ WITH with_options [ ,...o ] ] ;
51
GV Phi Loan - Khoa CNTT – HUI
Một vài tùy chọn WITH
• { COMPRESSION | NO_COMPRESSION }
• DESCRIPTION = { 'text' | @text_variable }
: xác định text tùy { mô ta ̉ backup set.
Chuõ̂i có thể dài 255 k{ tự
• NAME = { backup_set_name |
@backup_set_name_var }: xác định tên của
backup set (dài tơ ́i 128 k{ tự)
52
GV Phi Loan - Khoa CNTT – HUI
Một vài tùy chọn WITH
• FORMAT [ , MEDIANAME= { media_name |
@media_name_variable } ] [ , MEDIADESCRIPTION
= { text | @text_variable } ]
• Mă ̣c định lệnh BACKUP thêm 1 backup set mơ ́i vào 1
media set có săñ và vâñ giư ̃ nguyên các backup set
trươ ́c đó
• Sử dụng mệnh đề FORMAT khi sử dụng media lâǹ
đâù hay muốn overwrite lên tât́ cả dư ̃ liê ̣u hiện có.
53
GV Phi Loan - Khoa CNTT – HUI
Ví dụ
USE AdventureWorks;
GO
BACKUP DATABASE AdventureWorks
TO DISK = 'Z:\AdventureWorks.Bak'
WITH FORMAT, MEDIANAME =
'Z_SQLServerBackups', NAME = 'Full
Backup of AdventureWorks';
GO
Ta ̣o 1 full backup đồng thời ta ̣o 1 media set
mới
54
GV Phi Loan - Khoa CNTT – HUI
Quy trình thực thi differential
database backup
1. Create regular database backups.
2. Create a differential database backup
periodically between database backups,
such as every four hours or more for highly
active systems.
3. If using Full or Bulk-Logged Recovery,
create transaction log backups more
frequently than differential database
backups, such as every 30 minutes.
55
GV Phi Loan - Khoa CNTT – HUI
Tạo transaction log backup
• Lệnh BACKUP LOG với các tùy cho ̣n:
– INIT để viết chồng lên thiết bị backup và viết
backup như file đâù tiên trên thiết bị này.
– SKIP và INIT để viết chồng lên thiết bị backup
ngay cả khi đã có các backup trên thiết bị này
dù chưa hết hạn.
– FORMAT: nếu sử dụng lần đầu tùy cho ̣n này
khởi tạo thiết bị backup và viết lại bât́ kz
header nào đã có trươ ́c đó. Không được dùng
cùng lúc vơ ́i mệnh đề INIT.
56
GV Phi Loan - Khoa CNTT – HUI
Ví dụ
BACKUP LOG MyNwind TO MyNwind_log1
GO
Ta ̣o transaction log backup cho DB
MyNwind với thiết bị backup tên
MyNwind_log1 đã tao sẵn trươ ́c đó
57
GV Phi Loan - Khoa CNTT – HUI
Khôi phục dư ̃ liệu
• Việc khôi phục (restoration) luôn bắt đầu
với full backup.
• Các dạng backup Differential và
transaction log sẽ khôi phục các
transaction xảy ra sau khi full backup.
58
GV Phi Loan - Khoa CNTT – HUI 59
GV Phi Loan - Khoa CNTT – HUI
Simple recovery model
• Phù hợp với yêu câù transaction là
atomic, nhưng không câǹ durable.
• Mô hình này yêu cầu SQL Server xóa hết
nhật k{ transaction ngay ta ̣i checkpoint.
Nhật k{ chỉ ghi trong lúc thực thi
transaction cho đêń khi nó được confirm
60
GV Phi Loan - Khoa CNTT – HUI
Ví du ̣: Kế hoạch backup dành cho mô
hình restore đơn giản
• Thực thi backup đâỳ đủ một lâǹ mõ̂i tuâǹ
và differential mõ̂i đêm.
61
GV Phi Loan - Khoa CNTT – HUI
Khôi phục từ simple backup
• Phụ thuô ̣c vào việc có muó̂n restore
bản differential backup hay không.
• Có 2 mode restore:
1. Khôi phu ̣c tư ̀ backup đầy đủ sau cùng.
2. Khôi phục backup differential mới nhất
62
GV Phi Loan - Khoa CNTT – HUI
Restore Simple Recovery Mode
(Chi ̉ dùng Full Backup)
63
GV Phi Loan - Khoa CNTT – HUI
Restore Simple Recovery Mode
(Dùng Differential DB Backup)
64
GV Phi Loan - Khoa CNTT – HUI
Restore DB backup
• Execute the RESTORE DATABASE
statement to restore the database
backup
– The NORECOVERY clause if you have a
transaction log or differential database
backup to apply after restoring the
database backup.
65
GV Phi Loan - Khoa CNTT – HUI
Ví dụ
• Khôi phục database từ tape:
USE master
GO
RESTORE DATABASE MyNwind
FROM TAPE = '\\.\Tape0'
GO
66
GV Phi Loan - Khoa CNTT – HUI
Restore a differential database
backup
• Execute the RESTORE DATABASE statement,
specifying the NORECOVERY clause, to restore
the database backup preceding the
differential database backup.
• Execute the RESTORE DATABASE statement to
restore the differential database backup
– The NORECOVERY clause if you have transaction
log backups to apply after the differential
database backup is restored, otherwise specify the
RECOVERY clause.
67
GV Phi Loan - Khoa CNTT – HUI
Ví dụ 1
USE master;
--Make sure the database is using the simple recovery model.
ALTER DATABASE AdventureWorks SET RECOVERY SIMPLE;
GO
-- Back up the full AdventureWorks database.
BACKUP DATABASE AdventureWorks TO DISK =
'Z:\AdventureWorks.bak' WITH FORMAT;
GO
--Create a differential database backup.
BACKUP DATABASE AdventureWorks TO DISK =
'Z:\AdventureWorks2.bak' WITH DIFFERENTIAL;
GO
68
GV Phi Loan - Khoa CNTT – HUI
Ví dụ (tt)
--Restore the full database backup (from backup set 1).
RESTORE DATABASE AdventureWorks
FROM DISK = 'Z:\AdventureWorks2012.bak'
WITH FILE=1, NORECOVERY;
--Restore the differential backup (from backup set 2).
RESTORE DATABASE AdventureWorks
FROM DISK = 'Z:\AdventureWorks.bak'
WITH FILE=2, RECOVERY;
GO
69
GV Phi Loan - Khoa CNTT – HUI
Ví du ̣ 2
70
GV Phi Loan - Khoa CNTT – HUI
Restore to a point in time
• Execute the RESTORE DATABASE
statement using the NORECOVERY
clause.
• Execute the RESTORE LOG statement to
apply each transaction log backup
– The RECOVERY and STOPAT clauses. If the
transaction log backup does not contain the
requested time, a warning is generated and
the database remains unrecovered.
71
GV Phi Loan - Khoa CNTT – HUI
Ví du ̣: restores a database to its state
as of 10:00 A.M. on July 1, 1998
72
GV Phi Loan - Khoa CNTT – HUI
Ví du ̣: Kế hoạch backup dùng cho mô
hình khôi phu ̣c đà̂y đu ̉
• Kế hoạch backup thường là backup đâỳ
đủ 2 lâǹ mõ̂i tuâǹ, differential cư ́ 2 đêm
1 lần. Nhật k{ transaction thì backup suó̂t
ngày, ít thì 2 lâǹ một ngày, nhiếu thì cứ
15 phút 1 lâǹ.
73
GV Phi Loan - Khoa CNTT – HUI
Ví dụ mô hình khôi phục đà̂y đủ
74
GV Phi Loan - Khoa CNTT – HUI
Kế hoạch khôi phục đà̂y đủ
1. Backup la ̣i nhâ ̣t k{ transaction hiện hành giữ
được tât́ cả các ba ̉n ghi log kể tư ̀ lâǹ backup nhâ ̣t
k{ sau cùng.
2. Khôi phục backup đâỳ đủ mơ ́i nhât́.
3. Khôi phục backup differential mơ ́i nhất nếu có kể
tư ̀ lâǹ backup đâỳ đủ sau cùng.
4. Khôi phục theo thư ́ tự tất ca ̉ các backup dạng
transaction-log kể từ lâǹ backup đâỳ đủ hay
differential sau cùng. Nếu là backup đầy đủ thì
khôi phục đã đâỳ đủ. Nếu là backup differential
thì cần khôi phục backup đầu đủ mơ ́i nhât́ trươ ́c
khi khôi phục differential sau cùng.
75
GV Phi Loan - Khoa CNTT – HUI
Ví dụ chiến lược restore
• A mission-critical database system requires
that a database backup is created each night
at midnight, a differential database backup is
created on the hour, Monday through
Saturday, and transaction log backups are
created every 10 minutes throughout the
day. If the database needs to be restored to
its state at 5:19 A.M. on Wednesday??
76
GV Phi Loan - Khoa CNTT – HUI
Ví dụ (tt)
• Restore the database backup created on Tuesday
night.
• Restore the differential database backup created at
5:00 A.M. on Wednesday.
• Apply the transaction log backup created at 5:10
A.M. on Wednesday.
• Apply the transaction log backup created at 5:20
A.M. on Wednesday, specifying that the recovery
process only applies transactions that occurred
before 5:19 A.M.
77
GV Phi Loan - Khoa CNTT – HUI
Ví dụ 2
• If the database needs to be restored to
its state at 3:04 A.M. on Thursday, but
the differential database backup created
at 3:00 A.M. on Thursday is unavailable
78
GV Phi Loan - Khoa CNTT – HUI
Ví dụ 2 (tt)
• Restore the database backup created on
Wednesday night.
• Restore the differential database backup
created at 2:00 A.M. on Thursday.
• Apply all the transaction log backups created
from 2:10 A.M. to 3:00 A.M. on Thursday.
• Apply the transaction log backup created at
3:10 A.M. on Thursday, specifying that the
recovery process only applies transactions that
occurred before 3:04 A.M.
79
GV Phi Loan - Khoa CNTT – HUI 80
GV Phi Loan - Khoa CNTT – HUI
Thay đổi mô hình recovery
• Vì mô hình recovery đơn giản không thường
xuyên ghi la ̣i transaction, nên đê ̉ { viê ̣c
chuyê ̉n qua la ̣i giư ̃a các mô hình recovery
– Nếu chuyển sang mô hình đơn giản, nên backup
la ̣i nhâ ̣t k{ transaction trươ ́c khi chuyê ̉n.
– Nếu chuyển khỏi mô hình đơn giản, nên backup
đâỳ đủ ngay sau khi chuyển.
– Lên lịch backup nhâ ̣t k{ transaction và câ ̣p nhâ ̣t kế
hoạch recovery thươ ̀ng xuyên
81
GV Phi Loan - Khoa CNTT – HUI
Xem nhật ký lỗi
• Trong Management Studio, để xem nhâ ̣t
k{ chọn folder Management ➪ SQL
Server Logs.
• SQL Server viết lõ̂i và sự kiện vào file
nhật k{ lõ̂i (error log file) trong thư mục
MSSQL\Log.
• SQL Server ta ̣o 1 file mơ ́i mõ̂i lần server
khởi động lại.
82
Các file đính kèm theo tài liệu này:
- chuong_3_ktdbms_5198.pdf