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: 995 | 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