Chi n L
c Ph c H i D Li u (Data Restoration Strategy)
Có m t i u mê chúng ta ph i chú ý lê h u nh b t k database nêo c ng c n c ph c h i vêo m t lúc nêo ó trong su t chu k s ng c a nó. Lê m t ng i Database Administrator b n c n ph i 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. Ph i d phòng các bi n c có th x y ra vê b o m r ng có th nhanh chóng ph c h i d li u trong th i gian s m nh t có th c. Các d ng bi n c hay tai h a có th x y ra lê: • • • • • • • •
Ð a ch a data file hay Transaction Log File hay system file b m t Server 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 delete toên b table ch!ng h n 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. B hack (n u server có k t n i v i internet).
B n ph i t h i khi các v n trên x y ra thì b n s" lêm gì vê ph i luôn có bi n pháp phòng c th cho t#ng tr ng h p c th . Ngoêi ra b n ph i xác nh th i gian t i thi u c n ph c h i d li u vê a server tr$ l i ho t ng bình th ng. Các Lo i Backup Ð có th hi u các ki u ph c h i d li u khác nhau b n ph i bi t qua các lo i backup trong SQL Server •
• • • •
Full Database Backups : Copy t t c data files trong m t database . T t c nh ng user data vê database objects nh system tables, indexes, user-defined tables u c backup. Differential Database Backups : Copy nh ng thay %i trong t t c data files k t# l n full backup g n nh t. File or File Group Backups : Copy m t data file &n hay m t file group. Differential File or File Group Backups : 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 Backups : Ghi nh(n m t cách th t t t c các transactions ch a trong transaction log file k t# l n transaction log backup g n nh t. Lo i backup nêy cho phép ta ph c h i d li u tr$ ng c l i vêo m t th i i m nêo ó trong quá kh mê v)n m b o tênh ng nh t (consistent).
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.
[email protected]
Page 1 of 1
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 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 Tuy nhiên có th t i ây b n c m th y r t khó hi u v nh ng i u trình bêy $ trên. Chúng ta hãy dùng m t vê d sau lêm rõ v n .
Trong vê d nêy ta schedule m t Full Database Backup vêo ngêy Ch Nh(t vê Differential Backup vêo các ngêy th Ba vê Th N,m. Transaction Log Backup c schedule h ng ngêy. Vêo m t ngêy Th Sáu " en t i" m t s c x y ra ó lê a ch a data file c a database b h vê lê m t DBA b n c yêu c u ph i ph c h i d li u vê a database tr$ l i ho t ng bình th ng. B n ph i lêm sao? Tr c h t b n ph i backup ngay Transaction Log File (Trong vê d nêy Transaction Log File c ch a trong m t a khác v i a ch a Data File nên không b h vê v)n còn ho t ng). Ng i ta còn g i file backup trong tr ng h p nêy lê " the tail of the log" (cái uôi). N u Log File c ch a trên cùng m t a v i Data file thì b n có th s" không backup c "cái uôi" vê nh v(y b n ph i dùng n log file backup g n nh t. Khi backup "cái uôi" nêy b n c n ph i dùng option NO_TRUNCATE b$i vì thông th ng các Transaction Log Backup s" truncate(xoá) nh ng ph n không c n dùng n trong transaction log file, ó lê nh ng transaction ã c commited vê ã c vi t vêo database (còn g i lê inactive portion of the transaction log) gi m kêch th c c a log file. Tuy nhiên khi backup ph n uôi không c truncate m b o tênh consistent (nh t quán) c a database.
[email protected]
Page 2 of 2
K n b n ph i restore database t# Full Backup File c a ngêy Ch Nh(t. Nó s" lêm 2 chuy n : copy data, log, index... t# a backup vêo Data Files vê sau ó s" l n l t th c thi các transaction trong transaction log. L u ý ta ph i dùng option WITH NORECOVERY trong tr ng h p nêy (t c lê option th 2 "Leave database nonoperational but able to restore additional transaction logs" trong Enterprise Manager). 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 ta ch n WITH RECOVERY (hay "Leave database operational. No additional transaction logs can be restored " trong Enterprise Manager) thì cá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. Ti p theo b n ph i restore Differential Backup c a ngêy Th N,m. Sau ó l n l t restore các Transaction Log Backup k t# sau l n Differential Backup cu i cùng ngh a lê restore Transaction Log Backup c a ngêy Th N,m vê "Cái Ðuôi". Nh v(y ta có th ph c h i data tr$ v tr ng thái tr c khi bi n c x y ra. Quá trình nêy g i lê Database Recovery. C ng xin lêm rõ cách dùng t# Database Restoration vê Database Recovery trong SQL Server. Hai t# nêy n u d ch ra ti ng Vi t u có ngh a lê ph c h i c& s$ d li u nh ng khi c sách ti ng Anh ph i c-n th(n vì nó có ngh a h&i khác nhau. Nh trong vê d trên Khi ta restore database t# m t file backup ngh a lê ch' &n gi n tái t o l i database t# nh ng file backup vê th c thi l i nh ng transaction ã c commit nh ng database có th $ trong tr ng thái inconsistent vê không s. d ng c. Nh ng khi nói n recover ngh a lê ta không ch' ph c h i l i data mê còn b o m cho nó $ tr ng thái consistent vê s. d ng c (usable). Có th b n s" h i consistent lê th nêo? Ph n nêy s" c nói rõ trong bêi sau v Data Integrity. Nh ng c ng xin dùng m t vê d &n gi n gi i thêch. Trong vê d c tr# kh i account A v th nêo lê m t transaction $ bêi 3 : Gi s. s ti n $500 nh ng l i không c c ng vêo account B vê n u database không c quá trình khôi ph c d li u t ng (automatic recovery process) c a SQL rollback thì nó s" $ tr ng thái inconsistent. N u database $ tr ng thái gi ng nh tr c khi tr# ti n ho c sau khi ã c ng $500 thênh công vêo account B thì g i lê consistent. Cho nên vi c backup Transaction Log File s" giúp cho vi c recovery data t i b t k th i i m nêo trong quá kh . Ð i v i Simple Recovery Model ta ch' có th recover t i l n backup g n nh t mê thôi. Nh v(y khi restore database ta có th ch n option WITH RECOVERY roll back các transaction ch a c commited vê database có th ho t ng bình th ng nh ng ta không th restore thêm backup file nêo n a, th ng option nêy c ch n khi restore file backup cu i cùng trong chu i backup. N u ch n option WITH NORECOVERY các transaction ch a c commited s" không c roll back do ó SQL Server s" không cho phép ta s. d ng database nh ng ta có th ti p t c restore các file backup k ti p, th ng option nêy c ch n khi sau ó ta còn ph i restore các file backup khác.
[email protected]
Page 3 of 3
Không l" ch' có th ch n m t trong hai option trên mê thôi hay sao? Không hoên toên nh v(y ta có th ch n m t option trung l(p h&n lê option WITH STANDBY (t c lê option 3 "Leave database read-only and able to restore additional transaction logs" trong Enterprise Manager). 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 (SQL Server s" log các transaction c roll back trong undo log file vê khi ta restore backup file k ti p SQL Server s" tr l i tr ng thái no recovery t# nh ng gì ghi trên undo file). 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. Backup Database Trong ph n nêy chúng ta s" bên v cách backup database. Nh ng tr c h t chúng ta hãy lêm quen v i m t s thu(t ng dùng trong quá trình backup vê restore. Có nh ng t# ta s" nguyên ti ng Anh mê không d ch.
Backup: Quá trình copy toên b hay m t ph n c a database, transaction log, file hay file group hình thênh m t backup set. Backup set c ch a trên backup media (tape or disk) b ng cách s. d ng m t backup device (tape drive name hay physical filename) Backup Device: M t file v(t lý (nh C:\SQLBackups\Full.bak) hay tape drive c th (nh \\.\Tape0) dùng record m t backup vêo m t backup media. Backup File: File ch a m t backup set Backup Media: Disk hay tape c s. d ng ch a m t backup set. Backup media có th ch a nhi u backup sets (vê d nh t# nhi u SQL Server 2000 backups vê t# nhi u Windows 2000 backups). Backup Set : M t b backup t# m t l n backup &n c ch a trên backup media. Chúng ta có th t o m t backup device c nh (permanent) hay t o ra m t backup file m i cho m i l n backup. Thông th ng chúng ta s" t o m t backup device c nh có th dùng i dùng l i c bi t cho vi c t ng hóa công vi c backup. Ð t o m t backup device dùng Enterprise Manager b n ch n Management->Backup r i Right-click->New Backup Device. Ngoêi ra b n có th dùng sp_addumpdevice system stored procedure. USE MasterGoSp_addumpdevice 'disk' , 'FullBackupDevice' , 'E:\SQLBackups\Full.bak'Ð backup database b n có th dùng Backup Wizard ho c click lên trên database mu n backup sau ó Right-click->All Tasks->Backup Database...
[email protected]
Page 4 of 4
Sau ó d a tùy theo yêu c u c a database mê ch n các option thêch h p. Ta có th schedule cho SQL Server backup nh k . Restore Database Tr c khi restore database ta ph i xác nh c th t file c n restore. Các thông tin nêy c SQL Server ch a trong msdb database vê s" cho ta bi t backup device nêo, ai backup vêo th i i m nêo. Sau ó ta ti n hênh restore. Ð restore b n Right-click>All Tasks->Restore database... N u b n restore t# m t instance khác c a SQL Server hay t# m t server khác b n có ch n From device option vê ch n backup device (file backup) t &ng ng . L u ý n u b n mu n overwrite database có s/n v i data option Force restore over existing
c backup b n có th ch n
B n có th ch n leave database operational hay nonoperational tùy theo tr nh ã gi i thêch $ trên.
[email protected]
ng h p
Page 5 of 5