· Simple Recovery Model : mode này thì Transaction Log File đỞ ược truncate thường xuyên và không c n backup... backup và th i gian backup thôi.
Trang 1TR ƯỜ NG Đ I H C L C H NG Ạ Ọ Ạ Ồ KHOA CÔNG NGH THÔNG TIN Ệ
ỆHO
30%
TRONG SQL SERVER 2005
Giáo viên hướng d nẫ : NGUY N ĐÌNH LIÊN Ễ
Sinh viên th c hi nự ệ : Đ NG DUY NH T MASV:409000181 Ặ Ậ
LÊ QUANG TÚ MASV:409000477
Đ ng Nai, ngày ồ 15 tháng 11 năm 2010
Trang 2L I M Đ U Ờ Ở Ầ
Theo s ch đ o và hự ỉ ạ ướng d n c a th y ẫ ủ ầ Nguy n Đình Liênễ , giáo viên b môn SQL,ộ nhóm chúng em g m có 2 thành viên: Đ ng Duy Nh t-MASSV 409000181 và Lê Quangồ ặ ậ Tú-MASSV 409000477 xin th c hi n đ tài trình bày ự ệ ề BACKUP/ RESTORE.
Qua báo cáo này chúng em mong nh n đậ ược nh ng l i nh n xét, đánh giá và quanữ ờ ậ
tr ng h n h t là ch ra nh ng khuy t đi m thi u sót c n c i thi n đ i v i bài này nóiọ ơ ế ỉ ữ ế ể ế ầ ả ệ ố ớ riêng và trong môn h c SQL cũng nh trong các lĩnh v c khác nói chung đ chúng emọ ư ự ể
v ng vàng h n trong ngành h c và công vi c trong tữ ơ ọ ệ ương lai
Chúng em xin chân thành c m n !ả ơ
Trang 3L I NH N XÉT C A GIÁO VIÊN: Ờ Ậ Ủ
GI I THI U Ớ Ệ
Trong su t chu kỳ s ng c a m t database (c s d li u), vi c x y ra s c làm h h ngố ố ủ ộ ơ ở ữ ệ ệ ả ự ố ư ỏ
m t mát d li u là chuy n khó tránh kh i ấ ữ ệ ệ ỏ
Các d ng bi n c hay tai h a có th x y ra nh :ạ ế ố ọ ể ả ư
- Ðĩa ch a data file hay Transaction Log File hay system file b m t, b h h ng ứ ị ấ ị ư ỏ
- Nh ng th m h a t nhiên nh bão l t, đ ng đ t, h a ho n ữ ả ọ ự ư ụ ộ ấ ỏ ạ
- Toàn b server b đánh c p ho c phá h yộ ị ắ ặ ủ
- Các thi t b dùng đ backup - restore b đánh c p hay h h ng ế ị ể ị ắ ư ỏ
- Nh ng l i do vô ý c a user nh l tay xóa, thao tác sai làm h c s d li uữ ỗ ủ ư ỡ ư ơ ở ữ ệ
- Nh ng hành vi mang tính phá ho i c a nhân viên nh c ý đ a vào nh ng thông tin sai l c ữ ạ ủ ư ố ư ữ ạ
Trang 4- B hack (n u server có k t n i v i internet) ị ế ế ố ớ
Vì v y chúng ta ph i luôn có bi n pháp b o v c s d li u m t cách an toàn nh t, bênậ ả ệ ả ệ ơ ở ữ ệ ộ ấ
c nh đó chúng ta cũng ph i t h i khi các v n đ trên x y ra thì ph i làm sao đ khôi ph c l i dạ ả ự ỏ ấ ề ả ả ể ụ ạ ữ
li u đã h , m t và ph c h i m t cách nhanh nh t đ đ a server tr l i ho t đ ng m t cách bìnhệ ư ấ ụ ồ ộ ấ ể ư ở ạ ạ ộ ộ
thường
Đ tránh và ho c ít nh t là h n ch t i đa ể ặ ấ ạ ế ố m t mát d li u do các s c nêu trên, là m tấ ữ ệ ự ố ộ
người qu n ả lý h th ng c s d li u b n c n ph i b o qu n c s d li u c a mình m t cáchệ ố ơ ở ữ ệ ạ ầ ả ả ả ơ ở ữ ệ ủ ộ
h p ợ lý nh t, gi m t i đa s l n ph i ph c h i d li u, luôn theo dõi, ki m tra thấ ả ố ố ầ ả ụ ồ ữ ệ ể ường xuyên đ phátể
hi n các tr c tr c trệ ụ ặ ước khi nó x y ra ả Và đ có th ph c h i d li u khi g p các bi n c trên b nể ể ụ ồ ữ ệ ặ ế ố ạ
ph i bi t cách backup (sao l u) và restore (khôi ph c) d li u và s p x p l ch trình backup d li uả ế ư ụ ữ ệ ắ ế ị ữ ệ
m t cách ộ hợp lý đ b o qu n c s d li u c a mình m t cách an toàn nh t Đ i v i m t th m cể ả ả ơ ở ữ ệ ủ ộ ấ ố ớ ộ ư ụ hay nh ng t p tin bình thữ ậ ường thì vi c sao l u và copy ngệ ư ược tr l i là vô cùng đ n gi n là ch c nở ạ ơ ả ỉ ầ copy vào m t thi t b l u tr khác, đ phòng khi g p s c gây m t mát d li u thì có th copyộ ế ị ư ữ ể ặ ự ố ấ ữ ệ ể
ngược tr l i Còn đ i v i database trong SQL thì vi c backup di n ra có khác h n, khi h th ngở ạ ố ớ ệ ễ ơ ệ ố đang v n hành thì b n không th đ n gi n copy các data file và log file vì chúng b khóa hoàn toàn.ậ ạ ể ơ ả ị
B n ph i d a vào c ch backup c a h QTCSDL Sau đây chúng tôi xin nói s lạ ả ự ơ ế ủ ệ ơ ược v Backề up/Restore trong SQL Server và hướng d n các b n các thao tác trong hai ch c năng này ẫ ạ ứ
a Backup (sao l u) CSDL trong SQL Server: ư
Backup là vi c sao l u d li u t c c d li u SQL Server vào m t thi t b l u tr khác.ệ ư ữ ệ ừ ơ ở ữ ệ ộ ế ị ư ữ Sau đây là các lo i Backup mà chúng tôi mu n chia s v i các b n.ạ ố ẻ ớ ạ
1> Các Lo i Backup và m t s h ạ ộ ố ướ ng d n chung ẫ
· Full backup: Là backup toàn b d li u t i th i đi m th c hi n Đây có l là lo i độ ữ ệ ạ ờ ể ự ệ ẽ ạ ược dùng
thường xuyên nh t.ấ
· Differential backup: Là backup các trang d li u m i đữ ệ ớ ượ ậc c p nh t k t l n backup full trậ ể ừ ầ ướ c đó
· File or File Group Backup: Copy m t data file đ n hay m t file group ộ ơ ộ
· Differential File or File Group Backup: Tương t nh differential database backup nh ng chự ư ư ỉ copy nh ng thay đ i trong data file đ n hay m t file group.ữ ổ ơ ộ
· Transaction log backup: Là backup các log record hi n có trong log file, nghĩa là nó sao l u cácệ ư
hành đ ng ộ (các thao tác x y ra đ i v i database) ch không sao l u d li u Đ ng th i nó cũng c tả ố ớ ứ ư ữ ệ ồ ờ ắ
b (truncate) log file, lo i b các log record v a đỏ ạ ỏ ừ ược backup ra kh i log file Vì th khi th y logỏ ế ấ file tăng quá l n, có nhi u kh năng là b n ch a t ng backup transaction log bao gi ớ ề ả ạ ư ừ ờ
đây chúng ta hãy đ c bi t chú 3 lo i backup là Full backup, Differential backup và Transaction
log backup
M t nguyên t c chung đ gi m b t lộ ắ ể ả ớ ượng d li u m t mát khi có s c là tăng t n su t backup.ữ ệ ấ ự ố ầ ấ Tuy nhiên v i m t database có dung lớ ộ ượng l n và đớ ượ ậc c p nh t liên t c, thì vi c th c hi n fullậ ụ ệ ự ệ backup v i t n su t cao là không kh thi, vì nó dùng r t nhi u CPU và I/O Nh có differentialớ ầ ấ ả ấ ề ờ backup và transaction log backup, b n có th t o l p các phạ ể ạ ậ ương án sao l u thích h p, đ m b o dư ợ ả ả ữ
li u đệ ược backup thường xuyên h n mà không chi m nhi u tài nguyên c a h th ng.ơ ế ề ủ ệ ố
Chú ý: Trong lúc backup SQL Server cũng copy t t c các ho t đ ng c a database k c ho t đ ngấ ả ạ ộ ủ ể ả ạ ộ
x y ra trong quá trình backup cho nên ta có th backup trong khi SQL đang ch y mà không c n ph iả ể ạ ầ ả
ng ng l i.ư ạ
Recovery Models
· Full Recovery Model : Ðây là model cho phép ph c h i d li u v i ít r i ro nh t N u m tụ ồ ữ ệ ớ ủ ấ ế ộ
database trong mode này thì t t c các ho t đ ng không ch insert, update, delete mà k c insertở ấ ả ạ ộ ỉ ể ả
b ng ằ Bulk Insert, hay bcp đ u đề ược log vào transaction log file Khi có s c thì ta có th ph c h iự ố ể ụ ồ
l i d li u ngạ ữ ệ ược tr l i t i m t th i đi m trong quá kh Khi data file b h n u ta có th backupở ạ ớ ộ ờ ể ứ ị ư ế ể
Trang 5được transaction log file thì ta có th ph c h i database đ n th i đi m transaction g n nh t để ụ ồ ế ờ ể ầ ấ ượ c commited
· Bulk-Logged Recovery Model : mode này các ho t đ ng mang tính hàng lo t nh Bulk Insert,Ở ạ ộ ạ ư bcp, Create Index, WriteText, UpdateText ch đỉ ược log minimum vào transaction log file đ đ choủ ể
bi t là các ho t đ ng này có di n ra mà không log toàn b chi ti t nh trong Full Recovery Mode.ế ạ ộ ễ ộ ế ư Các ho t đ ng khác nh Insert, Update, Delete v n đạ ộ ư ẫ ược log đ y đ đ dùng cho vi c ph c h i sauầ ủ ể ệ ụ ồ này
· Simple Recovery Model : mode này thì Transaction Log File đỞ ược truncate thường xuyên và không c n backup V i mode này b n ch có th ph c h i t i th i đi m backup g n nh t mà khôngầ ớ ạ ỉ ể ụ ồ ớ ờ ể ầ ấ
th ph c h i t i m t th i đi m trong quá kh ể ụ ồ ớ ộ ờ ể ứ
Mu n bi t database c a b n đang mode nào b n có th ố ế ủ ạ ở ạ ể Right-click lên m t database nào ộ
đó trong SQL Server Enterprise Manager ch n ọ Properties->Options->Recovery
Sau đây là m t ví d v l ch backup đ các b n d hi u h n:ộ ụ ề ị ể ạ ễ ể ơ
Ví d : ụ Chúng tôi xây d ng m t th i gian bi u cho vi c backup d li u c a chúng tôi nh sauự ộ ờ ể ệ ữ ệ ủ ư
· Full backup: M i tu n 2 l n vào bu i chi u th 4 và th 4 sau gi làm vi c (17h PM)ỗ ầ ầ ổ ề ứ ứ ờ ệ
· Differential backup: M i tu n 4 l n vào bu i chi u th 2,3,5,6 sau gi làm vi c (5h PM)ỗ ầ ầ ổ ề ứ ờ ệ
· Transaction log backup: M i ngày 1 l n vào bu i tr a (12 AM)ỗ ầ ổ ư
L u ý là differential backup luôn sao l u các trang đã thay đ i k t l n full backup trư ư ổ ể ừ ầ ướ c,
ch không ph i t l n differential backup trứ ả ừ ầ ước đó Ví d b n different backup lúc 5h PM ngày thụ ả ứ
5 s bao g m các thay đ i k t th i gian full backup ngày c a ngày th 4, còn b n different lúc 5hẽ ồ ổ ể ừ ờ ủ ứ ả
PM ngày th 6 thì s bao g m các thay đ i k t th i gian full backup ngày c a ngày th 4 k cứ ẽ ồ ổ ể ừ ờ ủ ứ ể ả
nh ng thay đ i đã đữ ổ ượ ưc l u trong l n different backup c a ngày th 5… Transaction log backup thìầ ủ ứ
ngượ ạc l i, ch sao l u các log record k t l n transaction log backup trỉ ư ể ừ ầ ước đó
Chú ý: L ch backup trên đây ch là m t ví d đ chúng tôi nói rõ h n v tác d ng c a các lo iị ỉ ộ ụ ể ơ ề ụ ủ ạ
Trang 6backup và th i gian backup thôi Còn s p x p th i gian sao cho h p lý đ không tiêu t n quá nhi uờ ắ ế ờ ợ ể ố ề
th i gian mà l i an toàn cho c s d li u là s linh đ ng và tính toán phù h p t phía các b n.ờ ạ ơ ở ữ ệ ự ộ ợ ừ ạ
2> H ướ ng d n các b ẫ ướ c th c hi n Backup (Sao l u) m t c s d li u trong SQL Server ự ệ ư ộ ơ ở ữ ệ
N u b n ch a m s n giao di n SQL Server Management Studio thì hãy kh i đ ng nó lên theo cácế ạ ư ở ẵ ệ ở ộ
bước sau:
Vào StartV Programs Microsoft SQL Server 2005 và ch n SQL Server Management Studio.ọ
Sau khi ch n các đ i tọ ố ượng phù h p t i các m c Server type, Server name và Authenticationợ ạ ụ
Connect
Trong giao di n SQL Server Management Studio b n ch n m t database mà b n c n backup.ệ ạ ọ ộ ạ ầ
Ví d tôi ch n database ụ ọ “Hoadon” nh dư ưới đây
Trang 7Trên c a s Backup c s d li u, b n có th đi u ch nh l i c u hình thông tin v sao l uử ổ ơ ở ữ ệ ạ ể ề ỉ ạ ấ ề ư theo ý b n N u b n không quen thu c c u hình này, b n có th đ giá tr m c đ nh ạ ế ạ ộ ấ ạ ể ể ị ặ ị
Đây là m t s mô t ng n đ cho b n d hi u v ý nghĩa c a các m c ch n và t đó b nộ ố ả ắ ể ạ ễ ể ề ủ ụ ọ ừ ạ
có th đi u ch nh theo ý c a mình.ể ề ỉ ủ
- Database: M t c s d li u mà b n mu n sao l u.ộ ơ ở ữ ệ ạ ố ư
Trang 8- Backup type: B n có th ch n 1 trong 3 l a ch n: ạ ể ọ ự ọ Full ho c ặ Differential ho c ặ Transaction log nh chúng tôi đã gi i thi u v tác d ng c a m i ki u ph n trên ư ớ ệ ề ụ ủ ỗ ể ở ầ (Chú ý: Đây là ph n r t ầ ấ quan tr ng, các b n nên đ c bi t chú ý khi ch n ki ọ ạ ặ ệ ọ eåu Back up)
- Name: Tên c a các sao l u này, b n có th đ t tên b t c đi u gì nh b n mu n.ủ ư ạ ể ặ ấ ứ ề ư ạ ố
- Backup component: Trong m c này b n có th ch n m t trong hai l a ch n sau.ụ ạ ể ọ ộ ự ọ
Database: Backup t t c các file hay nhóm file đã đấ ả ượ ạc t o c a database này Chúng tôiủ khuyên b n nên ch n m c này đ tránh vi c sao chép d li u không đ y đ ạ ọ ụ ể ệ ữ ệ ầ ủ
Files and Filegroups: N u c s d li u c a b n r t l n và khi t o c s d li u b nế ơ ở ữ ệ ủ ạ ấ ớ ạ ơ ở ữ ệ ạ
đã phân b c s d li u c a mình thành các nhóm file l u tr nh ng ổ ơ ở ữ ệ ủ ư ữ ở ữ oå đĩa/v trí khácị nhau trong h đi u hành và nay b n ch mu n ch n m t hay m t s file c n backup chệ ề ạ ỉ ố ọ ộ ộ ố ầ ứ không backup t t c các file thì b n ch n m c này và ch đ nh file c n backup (ví d nhấ ả ạ ọ ụ ỉ ị ầ ụ ư hình dưới)
Trong h p th ai này b n cũng có th ch n ch c năng backup t t c các file.ộ ọ ạ ể ọ ứ ấ ả
- Backup set will expire” Có th để ượ ử ục s d ng khi backup vào băng ho c t o các nhóm backupặ ạ
“Media Sets” Trong ví d này, chúng tôi s backup vào m t đĩa c ng vì v y m c đ nh s làụ ẽ ộ ổ ứ ậ ặ ị ẽ
“sau 0” ngày
- Destination: Đi m đ n các t p tin đó s để ế ậ ẽ ược sao l u vào B n có th đ nh m c đ nh.ư ạ ể ể ư ặ ị
M c đ nh s sao l u vào "C: \ Program Files \ Microsoft SQL Server \ MSSQL.1 \ MSSQL \ặ ị ẽ ư Backup" N u b n ch n l i v trí l u m i, thì ch n ế ạ ọ ạ ị ư ớ ọ Add sau đó s xu t hi n h p th ai m iẽ ấ ệ ộ ọ ớ
nh hình 5 T i File name b n có th t gõ đư ạ ạ ể ự ường d n t i v trí c s d li u c n sao l uẫ ớ ị ơ ở ữ ệ ầ ư
ho c nh n vào d u ba ch m “ặ ấ ấ ấ …” đ ch đ nh v trí cho nó (Trong bài này tôi ch nể ỉ ị ị ọ
G:\SQL\Backup\Hoadon.bak v trí l u là trong th m c Backup là th m c con c a thị ư ở ư ụ ư ụ ủ ư
m c SQL trong đĩa G v i tên file là Hoadon.bak).ụ ổ ớ
N u b n nh n vào d u ba ch m “ế ạ ấ ấ ấ …” đ ch đ nh v trí l u thì s th y xu t hi n h p th aiể ỉ ị ị ư ẽ ấ ấ ệ ộ ọ
nh hình 6 dư ưới đây T i đây b n ch n v trí l u sau đó gõ ạ ạ ọ ị ư tên file.bak (ví d : ụ Hoadon.bak) vào
m c File name.ụ
Trang 9Đ ki m tra các l a ch n, b n hãy ch n “ể ể ự ọ ạ ọ Options” t menu phía trên bên ph i (hình 7)ừ ả
T p các tùy ch n đ u tiên đậ ọ ầ ược dán nhãn “Overwrite Media”
T p này đậ ượ ử ục s d ng đi n hình khi backup vào băng Còn khi backup vào đĩa c ng, n u b n sể ổ ứ ế ạ ử
d ng tên duy nh t cho backup c a b n trên màn hình trụ ấ ủ ạ ước thì các tùy ch n này có th đọ ể ược b qua.ỏ
N u tên backup không duy nh t, hãy ch n nút “ế ấ ọ Overwrite All existing backup sets” Thao tác này
s t o m t file ch có backup g n nh t trong đó Khi mu n khôi ph c t file này, b n s đẽ ạ ộ ỉ ầ ấ ố ụ ừ ạ ẽ ược nh cắ
nh ch n thi t l p backup nào c trú đ khôi ph c ở ọ ế ậ ư ể ụ
Trong ph n ầ Reliability, ch n “ọ Verify backup when finished” đ b o đ m backup c a b n h p l ể ả ả ủ ạ ợ ệ
Ph n ầ Transaction Log s đẽ ược hi n th màu xám vì Full Backup s t đ ng b b t file b n ghi.ể ị ẽ ự ộ ỏ ớ ả
Kích nút OK đ b t đ u quá trình backup.ể ắ ầ
Khi backup hoàn t t, m t thông báo s xu t hi n và nói r ng quá trình đã hoàn t t Nh v yấ ộ ẽ ấ ệ ằ ấ ư ậ
là công vi c Backup c a b n đã thành công.ệ ủ ạ
Trang 10T o file Backup cũng có th th c hi n b ng cách vi t câu l nh ạ ể ự ệ ằ ế ệ
Đ th c thi m t backup b ng TSQL, b n hãy m m t Query Window m i (Đ m Query Window,ể ự ộ ằ ạ ở ộ ớ ể ở
t Management Studio, b n kích nút New Query góc trên bên ph i) ừ ạ ở ả
Đ backup d li u b n có th s d ng th t c h th ng nh sau có tên backup ể ữ ệ ạ ể ử ụ ủ ụ ệ ố ư
database nh cú pháp sau: ư
BACKUP DATABASE { database_name | @database_name_var }
TO < backup_device > [ , n ]
[ WITH
[ BLOCKSIZE = { blocksize | @blocksize_variable } ]
[ [ , ] DESCRIPTION = { 'text'| @text_variable } ]
[ [ , ] DIFFERENTIAL ]
[ [ , ] EXPIREDATE = { date | @date_var }
| RETAINDAYS = { days | @days_var } ]
[ [ , ] FORMAT | NOFORMAT ]
[ [ , ] { INIT | NOINIT } ]
[ [ , ] MEDIADESCRIPTION = { 'text'| @text_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] NAME = { backup_set_name | @backup_set_name_var } ]
[ [ , ] { NOSKIP | SKIP } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] RESTART ]
[ [ , ] STATS [ =percentage ] ]
]
Đ backup d li u vào m t t p tin ch đ nh, b n có th s d ng th t c h th ng cóể ữ ệ ộ ậ ỉ ị ạ ể ử ụ ủ ụ ệ ố tên backup database nh cú pháp sau: ư
BACKUP DATABASE { database_name | @database_name_var }
< file_or_filegroup > [ , n ]
TO < backup_device > [ , n ]
[ WITH
[ BLOCKSIZE = { blocksize | @blocksize_variable } ]
[ [ , ] DESCRIPTION = { 'text'| @text_variable } ]
[ [ , ] EXPIREDATE = { date | @date_var }
| RETAINDAYS = { days | @days_var } ]
[ [ , ] FORMAT | NOFORMAT ]
[ [ , ] { INIT | NOINIT } ]
[ [ , ] MEDIADESCRIPTION = { 'text'| @text_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] NAME = { backup_set_name | @backup_set_name_var } ]
[ [ , ] { NOSKIP | SKIP } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] RESTART ]
[ [ , ] STATS [ =percentage ] ]
Đ backup m t t p tin log, b n có th s d ng th t c h th ng có tên backup log nhể ộ ậ ạ ể ử ụ ủ ụ ệ ố ư
cú pháp sau:
BACKUP LOG { database_name | @database_name_var }
{