Bài 1: Giới thiệu về Trình quản lý quảng cáo

🎓 BÀI GIẢNG: BACKUP & RESTORE DATABASE TRONG SQL SERVER


1️⃣ GIỚI THIỆU

  • Backup (sao lưu) là lưu dữ liệu ra file dự phòng.

  • Restore (phục hồi) là nạp dữ liệu từ file backup để khôi phục database.

✔️ Dùng để bảo vệ dữ liệu khi:

  • Lỗi phần cứng

  • Xoá nhầm

  • Tấn công virus


2️⃣ SAO LƯU (BACKUP DATABASE)

🔥 A. THỰC HIỆN BẰNG CÂU LỆNH SQL

📝 Full Backup

BACKUP DATABASE WebDaoTao
TO DISK = 'D:\Backup\WebDaoTao_Full.bak'
WITH FORMAT, INIT;

📝 Differential Backup

BACKUP DATABASE WebDaoTao
TO DISK = 'D:\Backup\WebDaoTao_Diff.bak'
WITH DIFFERENTIAL;

📝 Transaction Log Backup

(chỉ thực hiện được khi database ở FULL RECOVERY)

BACKUP LOG WebDaoTao
TO DISK = 'D:\Backup\WebDaoTao_Log.trn';

🔥 B. THỰC HIỆN TRÊN GIAO DIỆN SSMS

✅ Full Backup

  1. Click phải vào database → TasksBack Up...

  2. Chọn:

    • Backup type: Full

    • Destination: Add file đích (ví dụ D:\Backup\WebDaoTao_Full.bak)

  3. Nhấn OK.

✅ Differential Backup

  • Tương tự, chỉ đổi Backup type thành Differential.

✅ Transaction Log Backup

  • Vào Tasks → Back Up..., chọn:

    • Backup type: Transaction Log.

    • Nhấn OK.


3️⃣ KHÔI PHỤC (RESTORE DATABASE)

🔥 A. THỰC HIỆN BẰNG CÂU LỆNH SQL

📝 Restore Full Backup

RESTORE DATABASE WebDaoTao
FROM DISK = 'D:\Backup\WebDaoTao_Full.bak'
WITH REPLACE, RECOVERY;

📝 Restore Full + Differential

RESTORE DATABASE WebDaoTao
FROM DISK = 'D:\Backup\WebDaoTao_Full.bak'
WITH NORECOVERY;

RESTORE DATABASE WebDaoTao
FROM DISK = 'D:\Backup\WebDaoTao_Diff.bak'
WITH RECOVERY;

📝 Restore từ Transaction Log

RESTORE DATABASE WebDaoTao
FROM DISK = 'D:\Backup\WebDaoTao_Full.bak'
WITH NORECOVERY;

RESTORE LOG WebDaoTao
FROM DISK = 'D:\Backup\WebDaoTao_Log.trn'
WITH RECOVERY;

🔥 B. THỰC HIỆN TRÊN GIAO DIỆN SSMS

✅ Restore Full

  1. Click phải DatabasesRestore Database...

  2. Chọn Device, nhấn ..., thêm file .bak.

  3. Ở tab Options:

    • Check Overwrite the existing database (WITH REPLACE) nếu muốn ghi đè.

  4. Nhấn OK.

✅ Restore Full + Differential

  1. Restore Full như trên nhưng:

    • Ở tab Options, chọn RESTORE WITH NORECOVERY.

  2. Sau đó tiếp tục restore Differential:

    • Chọn file .bak diff, tab Options chọn WITH RECOVERY.

✅ Restore Transaction Log

  • Tương tự, lần lượt restore log với NORECOVERY, cuối cùng log cuối cùng chọn WITH RECOVERY.


4️⃣ SAO LƯU / KHÔI PHỤC TỪ SCRIPT (GENERATE SCRIPT)

🔥 A. BẰNG GIAO DIỆN SSMS

  • Đây là cách “backup logic”, cho phép sao lưu chỉ 1 phần table, hoặc toàn bộ schema + data thành script .sql.

✅ Các bước

  1. Click phải database → TasksGenerate Scripts...

  2. Chọn Tables, Views, Stored Procedures tuỳ ý.

  3. Nhấn Advanced:

    • Types of data to script = Schema and Data (lấy cả cấu trúc & dữ liệu).

  4. Export ra file .sql → Sau này chỉ cần Run script để restore.

🔥 B. BẰNG CÂU LỆNH (EXPORT / IMPORT DATA)

  • Nếu cần di chuyển từng phần data, có thể dùng bcp hoặc BULK INSERT (ngoài phạm vi cơ bản).


5️⃣ MỘT SỐ GỢI Ý KHI GẶP LỖI

Lỗi Nguyên nhân Cách xử lý
Database đang có kết nối Người khác đang dùng DB ALTER DATABASE WebDaoTao SET SINGLE_USER WITH ROLLBACK IMMEDIATE
Sai phiên bản SQL Server File .bak từ bản mới hơn Dùng đúng version hoặc Generate Script để migrate
Disk đầy Không đủ dung lượng ổ cứng Dọn ổ hoặc chọn ổ khác
Transaction log đầy Chưa backup log thường xuyên Thực hiện BACKUP LOG rồi DBCC SHRINKFILE

6️⃣ CHIẾN LƯỢC BACKUP HIỆU QUẢ

Hành động Tần suất
Full Backup Hàng ngày
Differential Backup Vài giờ
Transaction Log Backup 15-30 phút
Test Restore định kỳ Hàng tuần
Sao chép file backup ra cloud / ổ ngoài Hàng ngày

✅ KẾT LUẬN

  • Backup & Restore là kỹ năng không thể thiếu để bảo vệ hệ thống.

  • Hãy luôn:

    • Lên lịch backup tự động.

    • Lưu trữ backup trên nhiều thiết bị khác nhau.

    • Định kỳ test restore để tránh rủi ro.

 

 
 

1. Yêu cầu:
- Hãy tạo 1 database có tên: QuanLyHocVien

2. Thực hành:

2.1- Backup bằng lệnh sql

2.2- Backup bằng tool SQL Managment studio

2.3- Dùng tool SQL Managment studio tạo ra các lệnh backup cả cấu trúc và data 

2.4- Restore database lại thành 2 database mới: QuanLyHocVien_Backup1 , QuanLyHocVien_Backup2

3. Nộp bài

- File sql mục 2.4

- Hình ảnh 2 db QuanLyHocVien_Backup1 , QuanLyHocVien_Backup2 trên tool SQL Managment studio