Backup engine sẽ extract tất cả các vùng không gian của cơ sở dữ liệu và được phân bổ tới một đối tượng Phương thức sao lưu luôn sẵn có bất kể hình thức khôi phục của bạn trong datab
Trang 1SEMINAR
:
Backup
And Restore
Trang 2Q u
n T
r C S
Trang 3NỘI DUNG SEMINAR
Cấu trúc Log và Data Files
Sơ lược về nội dung Backup
Một số phương pháp Backup
Thực hiện Restore Database
Trang 4Cấu trúc Log và Data Files
Trang 5DATA FILES
The primary data file : tự động phát sinh khi khởi tạo 1 database Chứa đối tượng
và dữ liệu người dùng Extension là *mdf.
The secondary date file : do người dùng
định nghĩa, cũng chứa đối tượng và dữ liệu người dùng Extension là *ndf.
Trang 6LOG FILES
Bất kỳ database nào cũng phải có 1 Log
File Log File chứa những thông tin được sử dụng để recover database.
Extension là *ldf.
Trang 7Filegroup là cấu trúc logic được phát triền giúp cho tối ưu hệ thống cũng quản lý các database
A primary filegroup : những primary data files và secondary data files chưa được định nghĩa trong các file filegroup khác thì sẽ
được xếp ở primary filegroup Những table
Trang 9Sơ lược về Backup
Trang 10BACKUP A DATABASE
Phục hồi dữ liệu bị mất
Cung cấp nhiều kiểu backup khách nhau giúp cho người dùng linh hoạt trong quá trình backup and restore data
Perform a full backup
Perform a differential backup
Perform a transaction log backup
Perform a filegroup backup
Initialize a media set by using the format option
Append or overwrite an existing media set
Create a backup divice
Trang 11PERFORMING A FULL BACKUP
Mục đích của việc tạo một full backup là giữ lại những dữ liệu
đã được lưu trữ trong database
Backup engine sẽ extract tất cả các vùng không gian của cơ sở
dữ liệu và được phân bổ tới một đối tượng
Phương thức sao lưu luôn sẵn có bất kể hình thức khôi phục của bạn trong database
Trang 12PERFORMING A FULL BACKUP(TT)
Backup engine cấu hình việc tạo một backup nhanh nhất
có thể mà việc sử dụng tài nguyên vẫn được tối ưu
Khi bạn bắt đầu backup, backup engine sẽ tạo một trang các thiệt bị sao lưu mà không quan tâm tới thứ tự của trang
Việc backup thì không tức thời và có thể diễn ra trong khi người dùng đã liên kết và thực hiện truy vấn
Trang 13PERFORMING A FULL BACKUP(TT)
Steps during a full backup
Lock the database, blocking all transactions
Place a mark in the transaction log
Release the database lock
Backup all pages in the database
Lock the database, blocking all transactions
Place a mark in the transaction log
Release the database lock
Extract all transactions between the two log marks and append to the backup
Lệnh căn bản để thực hiện backup
BACKUP DATABASE <databasename> TO DISK = ‘<directory>\
<filename>’ WITH INIT
Trang 14PERFORMING DIFFERENTIAL BACKUP
Differential backup lứu trữ tất cả vùng không gian đã được thay đổi của một full backup sau cùng
Mục đích chính là giảm số lượng transaction backup cần để restore
Việc sử dụng differential backup là song song với full backup
Nếu full backup không tồn tại thì không thể tạo differential backup
Differential backup không phải là incremental backup
Incremental backup lưu trữ toàn bộ những thay đổi từ
incremental backup trước
Trang 15PERFORMING DIFFERENTIAL BACKUP(TT)
Nên việc khổi phục đòi hỏi phải yêu cầu tất cả các
incremental backup khác
Differential backup là một lưu trữ từ full backup cuối cùng
Để xác định những vùng không gian cần được sao lưu bởi differential backup thì SQL Server duy trì một extent map
Một extent map chỉ là một trang dữ liệu trong database, với mỗi bit trên trang thể hiện một vùng không gian
Khi SQL Server thay đổi một vùng không gian thì bit tượng trưng cho vùng không gian đó sẽ thay đổi từ 0 sang 1
Khi tạo một full backup, SQL Server reset tất cả các bit thành 0
Trang 16PERFORMING DIFFERENTIAL BACKUP(TT)
Lúc này, SQL Server chỉ hỏi trang extent map để xác định các vùng không gian cần để backup
Vì database có thể không giới hạn về kích thước nhưng data page chỉ có kích thước là 8KB
Câu lệnh đơn giản để tạo một differential backup
BACKUP DATABASE <database name> TO DISK =
‘<directory>\<filename>’ WITH DIFFERENTIAL
Trang 17TRANSACTION LOG BACKUPS
Transaction log backup chỉ được sử dụng cho những database mà đã được cấu hình trong chế độ recovery Full hoặc Bulk-Logged và nó chưa có bất cứ logged transaction được thực thi
Transaction log backup cũng chỉ cho phép tạo ra sau khi có một full backup
Một transaction log backup chỉ bao gồm một tập con của dữ liệu và đòi hỏi bạn phải có ít nhất một full
backup để phục hồi database
Trang 18TRANSACTION LOG BACKUPS(TT)
Một log backup backs up the active log
Nó bắt đầu tại Log Sequence Number khi
previous log backup hoàn thành
SQL Server backs up toàn bộ những transaction tiếp theo cho đến khi việc backup gặp phải một transaction mở và lúc này Log Backup hoàn tất
Cú pháp:
Trang 19Một số phương pháp Backup
Trang 20FILEGROUP BACKUPS
Trang 21 Filegroup backup cung cấp một chiến lược backup thay thế full backup.
Thay vì sao lưu toàn bộ database, filegroup backup sao lưu những nhóm file riêng biệt trong database
Một chiến lược filegroup backup phải gồm có một bản sao lưu của tất cả các nhóm file trong database để có thể tập hợp lại tất cả các nhóm file trong database đó
Trang 22 Filegroup backup cho phép sao lưu những phần của một database, vì thế phải cấu hình database trong chế
độ phục hồi Full hoặc Bulk-Logged
Để khôi phục lại database, có thể sử dụng filegroup
backup, differential backup, transaction log backup.
Trang 23 Cấu trúc để thực hiện filegroup backup:
Cấu trúc để thực hiện filegroup differential backup
BACKUP DATABASE <database name>
FILEGROUP = ‘<filegroup name>’
TO DISK = ‘<directory>\<filename>’
BACKUP DATABASE <database name>
FILEGROUP = ‘<filegroup name>’
TO DISK = ‘<directory>\<filename>’
WITH DIFFERENTIAL
Trang 24MIRRORED BACKUPS
Trang 25 SQL Server 2005 cho phép tạo những bản sao thay thế được gọi là mirror trong suốt hoạt động sao lưu.
Để tạo ra các mirror, ta thêm vào mệnh đề sau vào sau câu lệnh BACKUP:
[[MIRROR TO <backup_device> [ , …n ]][
…next-mirror]]
Có thể tạo đến 4 mirror Lưu ý Các thiết bị media lưu trữ mirror phải là cùng loại cũng như có cùng số thiết bị Mỗi thiết bị phải có những thuộc tính tương
tự nhau
VD: Nếu như sao lưu vào disk thì tất cả mirror cũng phải được sao lưu trên disk
Trang 26 Khi sử dụng mirrored backup, SQL Server sẽ đọc các trang từ những file data một lần và tạo những bản
copy phức tạp khi trang đó được ghi vào disk hoặc
Trang 27Ví dụ về việc sao lưu database PUBS đến một tập thiết
bị media two-disk và tạo 3 mirror của bản sao lưu
Trang 28PARTIAL BACKUPS
Trang 29 Trong database có một vài nhóm file có thể ghi, nhưng cũng có vài nhóm file chỉ được đọc.
Trong những phiên bản trước của SQL Server, full
backup sẽ sao lưu lại toàn bộ không gian lưu trữ được cấp phát trong database, ngay cả những nhóm file được đánh dấu là chỉ đọc Điều này có nghĩa không có sự
thay đổi trong dữ liệu
Trang 30 SQL Server 2005 giới thiệu một tham số được thêm vào trong câu lệnh BACKUP để xử lý tình huống này.
Tham số READ_WRITE_FILEGROUPS sẽ bỏ qua
bất cứ những nhóm file nào được đánh dấu chỉ đọc khi sao lưu dữ liệu
Giúp tiết kiệm thời gian và không gian lưu trữ
Ví dụ:
Trang 31Thực hiện restore database
Trang 32Restore là quá trình khôi phục lại cơ sở dữ liệu sau
khi đã backup thành công
Có thể lên kế hoạch restore dựa vào tình trạng các file backup hiện có.Chúng ta có thể chia ra các loại restore sau đây:
• Restore a Full Backup
• Restore Differential Backup
• Restore Transaction Log Backup
Trang 33RESTORE A FULL BACKUP
Hầu hết quá trình restore cho một cơ sở dữ liệu đều bắt đầu từ việc tạo lại csdl ở một điểm thời gian xác định và thực hiện thêm các thao các restore khác nhằm khôi phục lại tình trạng mong muốn của csdl
Bước restore đầu tiên chính là Restore Full Backup.
Trang 34Như đã nói ở phần backup , 1 file Full Backup sẽ bao gồm toàn bộ nội dung của cơ sở dữ liệu
Restore full backup sẽ ghi đè lên csdl nếu đã tồn
tại csdl cùng tên, nếu không nó sẽ tự động tạo các
file và filegroup tương ứng trước khi restore
RESTORE A FULL BACKUP(TT)
Trang 36DATABASE :
Chỉ định khôi phục đầy đủ của cơ sở dữ liệu từ bản sao lưu. Nếu một danh sách các tập tin và filegroups được quy định cụ thể, chỉ những tập tin và filegroups được phục hồi.
FROM:
Chỉ định các thiết bị sao lưu để khôi phục
lại bản sao lưu. Nếu mệnh đề FROM là khôngxác định, khôi phục
lại một bản sao lưu không xảy ra. Nếu mệnh đề FROM là bỏ
qua, NORECOVERY, RECOVERY, hoặc STANDBY phải được xác
Trang 37Các incomplete transaction sẽ được roll back và database ở trạng
thái consistent nhưng ta không thể nào restore các transaction
log backup được nữa.
NORECOVERY
Nghĩa là các transaction chưa hoàn tất (incomplete transaction)
sẽ không được roll back Như vậy database lúc này sẽ ở trong tình trạng inconsistent và không thể dùng được
Nếu không NORECOVERY, RECOVERY, hoặcSTANDBY được chỉ định, RECOVERY là mặc định.
Trang 38STANDBY : (sự kết hợp giữa RECOVERY và NORECOVERY)
Với option này ta sẽ có luôn đặc tính của hai option trên : các
incomplete transaction sẽ được roll back để đảm bảo database
consistent và có thể sử dụng được nhưng chỉ dưới dạng Read-only
mà thôi, đồng thời sau đó ta có thể tiếp tục restore các file backup còn lại Người ta dùng option này khi muốn restore database trở lại một thời điểm nào đó (a point in time) nhưng không rõ là đó có phải
là thời điểm mà họ muốn không, cho nên họ sẽ restore từng backup file ở dạng Standby và kiểm chứng một số data xem đó có phải là thời điểm mà họ muốn restore hay không (chẳng hạn như trước khi
bị delete hay trước khi một transaction nào đó được thực thi) trước khi chuyển sang Recovery option.
Trang 39DIFFERENTIAL RESTORE
Để thực hiện restore từ differential backup trước tiên bạn phải thực hiện restore từ full backup và đảm bảo tình trạng csdl không ở trạng thái Recovered Sau đó tất cả differential backup gần nhất sẽ được cập nhật vào database.
VD:
RESTORE DATABASE PUBS FROM DISK =‘C:\DEMO\BACKUP\
PUBSFULL.BAK’ WITH NORECOVERY
RESTORE DATABASE PUBS FROM DISK =‘C:\DEMO\BACKUP\
PUBSDIFF.BAK’ WITH RECOVERY
o Dòng đầu tiên store full backup , nhưng vẫn giữ tình trạng database là Unrecovered.
o Dòng thứ hai cập nhật differential backup và recovered database.
Trang 40Sơ đồ quá trình restore database
Trang 41Restore Transaction Log Backup
• RESTORE TRANSACTION LOG BACKUP được sử dụng để đưa trạng thái database đến một điểm thời gian xác định, thường là lần thao tác cuối cùng lên database, nhưng bạn vẫn có quyền lựa chọn thời
điểm khác nếu muốn
• Thường thì TRANSACTION LOG sẽ được cập nhật sau khi restore full backup và differential backup đã được thực hiện
Trang 42Restore sequence using a full, differential and transaction log backup
Full
RESTORE DATABASE AdvantureWords FILEGROUP
=‘FG1’ FROM DISK =‘C:\TEST\FULL.BAK’ WITH
NORECOVERY
Differential
RESTORE DATABASE AdvantureWords FROM DISK
=‘C:\TEST\DIFF.BAK’ WITH NORECOVERY
Transaction Log
RESTORE LOG AdvantureWords FROM DISK =‘C:\
TEST\LOGFILE.TRN’ WITH RECOVERY
Trang 43Tóm lại để tiến hành restore một cách hiệu quả
chúng ta nên nắm rõ kế hoạch backup để có thể lựu chọn các hình thức backup phù hợp nhằm đưa
database về trạng thái mong muốn
Trang 44CÁM ƠN CÔ VÀ CÁC BẠN ĐÃ
LẮNG NGHE!
Kết Thúc