- 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ở
113đĩ kích Backup Database
đĩ kích Backup Database.
Hình 9.5 Cửa sổ SQL Server Backup
B3. Trong hộp danh sách Database chọn CSDL bạn muốn sao lưu ví dụ dư BookStore. Trong
Name box, tên sao lưu dựa vào tên CSDL và được điền tự động, cũng cĩ thể nhập tên khác.. Trong Description, cĩ thể soạn chú thích cho backup set này.
B4. Dưới mục Backup chỉ ra kiểu sao lưu.Những tùy chọn này cĩ sẵn tùy theo CSDL. + Database - Complete: Thực hiện sao lưu đầy đủ CSDL.
+ Database – Differential: Thực hiện sao lưu phần thay đổi. + Transaction Log: thực hiện sao lưu tập tin log giao dịch. + file and filegroup: thực hiện sao lưu tập tin và nhĩm tập tin. Trong hình 9.3 ta chọn Database - complete.
B5. Dưới mục Destination, kích Tape hoặc Disk (tuỳ thuộc bạn muốn backup vào loại thiết bị nào: tape cho ổ băng từ., disk cho ổ đĩa cứng). Sau đĩ chỉ ra đường dẫn chứa tập tin backup ví dụ như là D:\bs_backup_tran. (Bấm Add hộp thoại Select Backup Destination xuất hiện)
114
Hình 9.6 Cửa sổ Select Backup Destination
Bấm kích Add hộp thoại Select Backup Destination xuất hiện. Chọn tùy chọn Backup Device, trong danh sách chọn thietbi_saoluu_1 chẳng hạn.. Bấm OK để trở về hộp thoại SQL Server Backup. Nút Remove để loại bỏ thiết bị khỏi Destination.
Lưu ý: Nếu bạn khơng muốn lưu vào thiết bị logic mà bạn muốn lưu trực tiếp thành một tập tin xuống hệ điều hành ( thiết bị vật lý). Chọn tùy chọn File Name, bấm nút […], hộp thoại Backup Device Location xuất hiện, chọn thư mục bạn muốn sao lưu, trong hộp File Name: nhập tên tập tin sao lưu rồi bấm OK. Ví dụ chọn thư mục C:\Backup\và tên tập tin.
B6. Dưới Overwite, thực hiện như sau:
- Kích Append to media để thêm một tệp backup mới
- Kích Overwrite existing media để ghi đè lên tệp đang tồn tại.
B7. [Chức năng khơng bắt buộc] Chọn Schedule check box để xếp lịch cho việc
backup (backup operation). Ví dụ bạn muốn tự động backup hàng tuần vào 12h00 ngày chủ nhật, hoặc… thì bạn cĩ thể sử dụng chức năng này.
Hình 9.7 cửa sổ Edit Schedule
B8: Sau khi hồn tất các thiết lập, bấm OK để thực hiện sao lưu.
(Cách tạo transaction log backup bằng EM: Cách làm tương tự như đối với tạo Full Database backup, tuy nhiên ở bước 4 ta phải chọn Transaction log.
Lưu ý: Nếu lựa chọn Transaction Log khơng được phép thì ta phải kiểm tra lại recovery model
để thiết đặt là Full hoặc Bulk-Logged. Bởi vì chỉ những model này mới hỗ trợ transaction log backup.)
Sao lưu dùng T-SQL
115
BACKUP DATABASE: dùng để sao lưu tồn bộ CSDL hoặc tập tin hay nhĩm tập tin.
BACKUP LOG: dùng để sao lưu tập tin log giao dịch.
Ví dụ: Sao lưu cơ sở dữ liệu Northwind vào thietbi_saoluu_1 bạn thực hiện như sau:
BACKUP DATABASE Northwind to thietbi_saoluu_1
Lệnh trên sao lưu dữ liệu nối tiếp vào thiết bị, vì vậy kích thước tập tin thietbi_saoluu_1.BAK lớn dần lên mỗi khi bạn thực hiện lệnh trên.
Để sao lưu ghi đè, bạn dùng với tham số WITH INIT thực hiện như sau:
BACKUP DATABASE Northwind to thietbi_saoluu_1 WITH INIT
Ví dụ sao lưu CSDL MyDB trực tiếp vào đĩa (thiết bị vật lý) với tên tập tin là MyDB_020809 bạn thực hiện như sau:
BACKUP DATABASE MyDB
TO DISK = N’C:\Backup\MyDB_020809’ WITH INIT
Ví dụ: sao lưu tập tin log giao dịch của CSDL MyDB vào thietbi_saoluu_2 thực hiện như sau:
BACKUP LOG MyDB to thietbi_saoluu_2
9.3.2 Khơi phụ dữ liệu
Trong khi khơi phụ, dữ liệu sao lưu được sao chép trở lại CSDL, khơng giống như quá trình sao lưu, quá trình khơi phục khơng thể được thực hiện trong khi SQL Server đang thực thi. Ngồi ra bảng khơng thể được khơi phục riêng biệt. Nếu một người dùng bị mất dữ liệu, dữ liệu bị mất khơng dễ dàng được khơi phục bởi vì hoạt động khơi phục sẽ khơi phục tồn bộ CSDL hoặc một phần của nĩ. Sự phân biệt dữ liệu của người dùng đơn với tất cả dữ liệu trong CSDL cĩ thể rất khĩ.
Việc khơi phục một bản sao lưu CSDL sẽ trả về CSDL cùng trạng thái của CSDL khi ta thực hiện việc sao lưu. Giao dịch (transaction) nào khơng hồn thành trong khi sao lưu (backup) CSDL được roll back để đảm bảo tính nhất quán CSDL.
Khơi phục một bản sao lưu transaction log là áp dụng lại tất cả giao dịch (transaction) hồn thành trong transaction log đối với CSDL. Khi áp dụng bản sao lưu transaction log, SQL Server đọc trước transaction log, roll forward tất cả các transaction . Khi đến cuối bản sao lưu transaction log, SQL Server roll back tất cả transaction mà khơng hồn thành khi ta bắt đầu thực hiện sao lưu, tạo lại trạng thái
chính xác của CSDL tại thời điểm bắt đầu thực hiện sao lưu.
Ví dụ minh họa sao lưu (backup) và khơi phục (restore) một CSDL cĩ xảy ra giao dịch (transaction) khi thực hiện sao lưu:
1. Bắt đầu backup: Giả sử CSDL gồm cĩ các dữ liệu ABC, DEF, GHI, JKL, transaction log file khơng cĩ dữ liệu vì khơng cĩ giao dịch nào xảy ra. Khi đang thực hiện sao lưu (backup) được
116
một phần dữ liệu thì xảy ra giao dịch, SQL Server 2000 sẽ ưu tiên cho việc giao dịch trước, việc sao lưu (backup) tạm thời dừng lại.
2. Xảy ra giao dịch (transaction), dữ liệu ABC được thay bằng 123, GHI được thay bằng 456.
3. Khi thực hiện giao dịch (transaction) xong, SQL Server thực hiện tiếp việc sao lưu (backup), sẽ chép phần cịn lại của dữ liệu nhưng dữ liệu đã thay đổi do xảy ra giao dịch.
117
4. Khi sao lưu xong phần dữ liệu thì sẽ chép tiếp phần transaction log
5. Khi cĩ yêu cầu khơi phục (restore) CSDL , CSDL được khơi phục trước, chép lại tồn bộ CSDL của bản sao lưu CSDL đĩ.
6. Sau đĩ SQL Server sẽ khơi phục tiếp phần transaction log. Trước tiên sẽ roll forward nhưng khi đọc đến dữ liệu thứ ba thì nĩ thấy dữ liệu này đã được thay đổi rồi do đĩ nĩ sẽ roll back ( trả về dữ liệu ban đầu khi chưa thực hiện giao dịch) để nhất quán dữ liệu.