- Dễ dàng để bảo trì ứng dụng: Chúng ta dễ dàng sốt lỗi của View hơn là sốt lỗi của những truy vấn Dị tìm lỗi trong từng bước của mỗi một quá trình trong một view là dễ dàng bở
118 Các phương pháp khơi phục dữ liệu
Các phương pháp khơi phục dữ liệu
Loại sao lưu dữ liệu được thực hiện ảnh hưởng đến cách khơi phục.
+ Khơi phục từ sao lưu đầy đủ:khơi phục từ sao lưu đầy đủ là một quá trình khá đơn giản: bạn chỉ việc khơi phục các tập tin sao lưu bằng Enterprise hoặc T-SQL.
+ Khơi phục từ sao lưu những thay đổi: Để khơi phục từ sao lưu những thay đổi, trước hết bạn phải khơi phục từ sao lưu đầy đủ, sau đĩ khơi phục tất cả những sao lưu những thay đổi đã được tạo từ lần sao lưu đầy đủ gần nhất. Nên nhớ sao lưu những thay đổi được dùng để sao lưu dữ liệu thay đổi từ lần sao lưu đầy đủ gần nhất hoặc sao lưu những thay đổi gần nhất. Phải dùng tùy chọn NORECOVERY trừ phi bạn đang thực hiện khơi phục từ sao lưu đầy đủ gần nhất. Nếu bạn đang khơi phục từ tập tin log giao dịch tiếp tục từ khi sao lưu những thay đổi, bạn cũng phải sao lưu tập tin log hiện thời và áp dụng tất cả những tập tin log thay đổi.
+ Khơi phục từ sao lưu tập tin log giao dịch
Để thực hiện phụ hồi CSDL đưa về trạng thái trước khi bị hư hỏng, trước hết bạn phải khơi phục các tập tin dữ liệu từ sao lưu đầy đủ mới nhất và sau đĩ khơi phục từ sao lưu những thay đổi từ lần sao lưu đầy đủ đĩ. Bạn sao lưu những thay đổi này bằng cách khơi phục tất cả những sao lưu tập tin log giao dịch đã xảy ra từ trước khi hư hỏng hệ thống.
Để đảm bảo bạn khơng bị mất bất kỳ giao dịch mới nhất nào khi bạn khơi phục tập tin log, bạn phải lưu log hiện thời. Nếu bạn quên sao lưu log hiện thời, bạn sẽ mất những thay đổi mới nhất đã được ghi trong log bởi vì hoạt động khơi phục sẽ ghi đè tập tin log giao dịch.
Để sử dụng tập tin log giao dịch khơi phục CSDL về trạng thái trước khi nĩ xảy ra hư hỏng, thực hiện các bước sau:
1. Sao lưu tập tin log giao dịch hiện đang hoạt dộng, sử dụng tùy chọn NO_TRUNCATE. 2. Khơi phục sao lưu đầy đủ mới nhất
3. Khơi phục từ bất kỳ sao lưu những thay đổi nào để đưa CSDL về trạng thái mà khi sao lưu mới nhất được thực hiện.
4. Khơi phục tất cả tập tin log giao dịch từ sao lưu những thay đổi mới nhất để thực hiện lại bất kỳ giao dịch đã xảy ra từ lần sao lưu gần nhất.
5. Khơi phục sao lưu log giao dịch đã thực hiện ở bước 1 để đưa CSDL về trạng thái trước khi xảy ra hư hỏng
Thực hiện khơi phục dữ liệu
Bạn cĩ thể khơi phục dữ liệu bằng cách sử dụng Enterprise Manager hoặc R-SQL, cả 2 phương pháp đều cho cùng kết quả.
Dùng Enterprise Manager
Để khơi phục dữ liệu bằng Enterprise Manager bạn thực hiện các bước sau:
Khơi phục Full database backup bằng EM Thực hiện các bước sau:
119
2. Kích Databases, kích phải chuột vào database, trỏ chuột vào All Tasks, sau đĩ kích Restore Database.
Hình 9.8 Cửa sổ Restore database
3. Trong Restore as database box, soạn thảo hoặc chọn tên database nếu muốn thay đổi tên Database mặc định khơng.
4. Kích Database.
5. Trong danh sách First backup to restore, kích vào bản sao lưu muốn được phục hồi(vì cĩ thể cĩ nhiều bản đã được Backup).
6. Trong danh sách Restore, kích vào database muốn được phục hồi.
Mơ tả quá trình thực hiện:
Khơi phục lại database backup là trả về trạng thái của CSDL khi lệnh backup được thực thi. SQL Server tạo lại CSDL theo các bước sau:
o Chép tất cả dữ liệu trong bản sao vào CSDL khơi phục.
o Bất kỳ giao dịch nào khơng hồn thành trong database backup thì được roll back để bảo đảm tính nhất quán dữ liệu.
Quá trình này bảo đảm CSDL sau khi khơi phục là một bản sao của CSDL khi thực hiện sao lưu, trừ những giao dịch khơng hồn thành được roll back. Điều này đảm bảo tính tồn vẹn dữ liệu.
120
Ngồi ra, để tránh việc cố tình viết đè lên CSDL đã tồn tại, quá trình khơi phục thực hiện kiểm tra an tồn một cách tự động. Quá trình khơi phục khơng thực hiện nếu:
- Tên CSDL khơi phục đã tồn tại trên server và tên CSDL cần khơi phục khơng tương ứng với tên CSDL ghi trong backup set.
- Tên CSDL khơi phục đã tồn tại trên server nhưng dữ liệu bên trong khơng giống với dữ liệu bản sao database backup. Ví dụ: CSDL khơi phục cĩ cùng tên với CSDL đã cĩ trong SQL Server nhưng dữ liệu thì khác ví dụ như cĩ những bảng dữ liệu khác.
- Một hoặc nhiều file yêu cầu tạo tự động bằng thao tác khơi phục (khơng để ý đến CSDL đĩ tồn tại hay chưa) nhưng những file này cĩ cùng tên với CSDL đã tồn tại rồi.
Tuy nhiên việc kiểm tra an tồn cĩ thể khơng cĩ tác dụng nếu cĩ mục đích viết đè.
Khơi phục transaction log backup bằng EM
Thực hiện tương tự như cách Khơi phục Full database backup.
Tuy nhiên, ta cĩ thể xác định được thời điểm nào đĩ muốn khơi phục dữ liệu trong quá khứ.
121
Khơi phục file hoặc filegroup backup:
File hoặc file group cĩ thể được khơi phục từ database backup hoặc file hoặc file group. Ta khơng cần thiết backup transaction log nếu khơng cĩ thay đổi từ khi sao lưu file hoặc file group. Ví dụ: Nếu filegroup_b cần khơi phục vì 1 bảng trong filegroup bị hư, ta sẽ:
- Khơi phục filegroup_b backup tạo vào ngày thứ năm. - Áp dụng transaction log backup của filegroup_b.
Dùng T-SQL
Để khơi phục CSDL dùng T-SQL, bạn dùng lệnh RESTORE, tương tự như lệnh BACKUP. Nĩ cĩ thể khĩ dùng lúc đầu nhưng bạn cĩ thể đưa các thủ tục quản trị vào các script để cĩ thể dùng lại nhiều lần sau đĩ.
Ví dụ để khơi phục CSDL Northwind từ thietbi_saoluu_1 bạn đã thực hiện ở trên, bạn thực hiện như sau:
RESTORE DATABASE Northwind FROM thietbi_saoluu_1
Nếu bạn khơi phục CSDL đang tồn tại, bạn cĩ thể dùng tùy tồn WITH REPLACE như sau:
RESTORE DATABASE Northwind FROM thietbi_saoluu_1
WITH REPLACE
Ví dụ để khơi phục CSDL MyDB từ tập tin sao lưu MyDB_010809 bạn thực hiện như sau:
RESTORE DATABASE MyDB
FROM DISK = ‘C:\Backup\MyDB_020809’
Kết chương
Trong chương này bạn đã hiểu về các thuật ngữ sao lưu và khơi phục. Bạn cũng đã học phương pháp thực hiện sao lưu và phục hồi CSDL của SQL Server. Bạn biết được sự khác nhau giữa sao lưu đầy đủ và sao lưu chỉ những thay đổi của dữ liệu. Cách sao lưu CSDL và tập tin log giao dịch. Trong quá trình đĩ bạn cũng đã học cách lập biểu thời gian cho sao lưu tự động. Ngồi ra bạn biết cách khơi phục CSDL từ tập tin sao lưu hoặc thiết bị sao lưu bằng cả hai phương pháp Enterprise Manager và T-SQL. Bạn cũng biết cách khơi phục lại CSDL với tên mới hoặc ghi đè lên CSDL đang tồn tại.