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í

pdf82 trang | Chia sẻ: huyhoang44 | Lượt xem: 704 | Lượt tải: 0download
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:

  • pdfchuong_3_ktdbms_5198.pdf