SQL Server Backup & Restore best practice 2026
Chiến lược backup Full + Differential + Transaction Log, backup TO URL lên Azure Blob / S3, RPO/RTO planning, retention policy, encryption, và tích hợp với Veeam / 3rd-party - bộ best practice cập nhật 2026 cho SQL Server 2022.
TL;DR
Chiến lược backup chuẩn: Full weekly + Differential daily + Log mỗi 15 phút (RPO ~15 phút). Backup compression giảm 50-70% dung lượng. SQL 2022 hỗ trợ BACKUP TO URL với S3-compatible storage (R2, MinIO, Wasabi) - không cần Azure thuần. Encrypt backup bằng cert riêng. Theo nguyên tắc 3-2-1: 3 copy, 2 media khác nhau, 1 offsite. Test restore định kỳ - chưa test = chưa có backup. License không quy định backup feature - có sẵn từ Express trở lên (Express không có SQL Agent để schedule tự động).
1. Recovery Model - nền tảng của mọi chiến lược backup
SQL Server có 3 recovery model - chọn đúng là tiền đề:
| Model | Mô tả | Backup hỗ trợ | Phù hợp |
|---|---|---|---|
| FULL | Mọi transaction được log đầy đủ | Full + Diff + Log | Production OLTP cần RPO < 1h |
| BULK_LOGGED | Như FULL, bulk operation log tối giản | Full + Diff + Log | DW lớn có bulk insert / index rebuild |
| SIMPLE | Log tự truncate sau checkpoint | Full + Diff (KHÔNG Log) | Dev/test, DW không cần point-in-time |
-- Set recovery model USE master; ALTER DATABASE [ERPDb] SET RECOVERY FULL; -- Verify SELECT name, recovery_model_desc FROM sys.databases WHERE name = 'ERPDb';
Nếu DB ở SIMPLE → BẠN CHỈ CÓ THỂ KHÔI PHỤC ĐẾN THỜI ĐIỂM FULL/DIFF GẦN NHẤT. Không có Log backup, không có point-in-time recovery. Production OLTP gần như luôn cần FULL.
2. Ba loại backup - kết hợp tạo chiến lược
Full Backup
Snapshot toàn bộ DB tại 1 thời điểm. Lớn nhất, lâu nhất, là điểm xuất phát cho mọi restore. Lý tưởng: weekly (Sunday 2:00 AM) hoặc daily nếu DB nhỏ.
BACKUP DATABASE [ERPDb] TO DISK = N'D:\Backup\ERPDb_Full.bak' WITH COMPRESSION, CHECKSUM, INIT, STATS = 10, MEDIANAME = N'ERPDb_FullBackup', NAME = N'ERPDb Full Backup', FORMAT;
Differential Backup
Chỉ chứa data thay đổi từ Full backup gần nhất. Nhỏ hơn Full, restore nhanh hơn nhiều Log backup riêng lẻ. Daily.
BACKUP DATABASE [ERPDb] TO DISK = N'D:\Backup\ERPDb_Diff.bak' WITH DIFFERENTIAL, COMPRESSION, CHECKSUM, INIT;
Transaction Log Backup
Chỉ với FULL/BULK_LOGGED recovery. Backup log từ sau backup log gần nhất. Cho phép point-in-time restore. Mỗi 15-30 phút trong giờ làm việc.
BACKUP LOG [ERPDb] TO DISK = N'D:\Backup\Log\ERPDb_Log.trn' WITH COMPRESSION, CHECKSUM, INIT;
3. Chiến lược backup chuẩn theo workload
| Workload | Recovery | Full | Diff | Log | RPO |
|---|---|---|---|---|---|
| OLTP critical (ERP, banking) | FULL | Weekly Sun 2AM | Daily 2AM | 15 phút | ~15 phút |
| OLTP medium (CRM, internal app) | FULL | Weekly Sun | Daily 2AM | 1 giờ | ~1 giờ |
| DW (data warehouse) | SIMPLE / BULK | Weekly | Daily | - | ~24 giờ |
| Dev / test | SIMPLE | Weekly | - | - | ~7 ngày |
4. Backup TO URL - lên Azure Blob / S3-compatible
SQL Server 2022 mở rộng BACKUP TO URL hỗ trợ S3-compatible (Cloudflare R2, MinIO, Wasabi, Backblaze B2) ngoài Azure Blob. Đây là feature lớn cho doanh nghiệp Việt muốn offsite backup không phụ thuộc Azure (chi phí egress thấp hơn).
-- 1. Tạo credential cho S3 CREATE CREDENTIAL [s3://r2.tnd.vn/backups] WITH IDENTITY = 'S3 Access Key ID', SECRET = 'access_key_id:secret_access_key'; -- 2. Backup TO URL (S3) BACKUP DATABASE [ERPDb] TO URL = N's3://r2.tnd.vn/backups/ERPDb_Full_2026-05-19.bak' WITH COMPRESSION, CHECKSUM, FORMAT, STATS = 10, MAXTRANSFERSIZE = 20971520; -- 20MB chunks -- 3. Backup TO URL (Azure Blob) CREATE CREDENTIAL [https://erpbackup.blob.core.windows.net/sqlbak] WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = 'sv=2024-01-04&ss=b&srt=co&sp=rwdlac&...'; BACKUP DATABASE [ERPDb] TO URL = N'https://erpbackup.blob.core.windows.net/sqlbak/ERPDb_2026-05-19.bak' WITH COMPRESSION, FORMAT;
5. Backup compression và encryption
Compression - bắt buộc
Backup compression giảm 50-70% dung lượng, đồng thời tăng tốc backup (ít IO disk). Mặc định OFF cho compatibility. Bật server-wide:
EXEC sp_configure 'backup compression default', 1; RECONFIGURE;
Encryption - sống còn với backup TO URL
Backup file lưu trên cloud / offsite phải encrypt - nếu storage credential bị leak, attacker không đọc được data. SQL Server hỗ trợ encrypt backup native:
-- 1. Tạo master key + certificate
USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MasterKeyP@ss!2026';
CREATE CERTIFICATE BackupCert
WITH SUBJECT = 'Backup Encryption Cert 2026';
-- 2. Backup encrypted
BACKUP DATABASE [ERPDb]
TO URL = N's3://r2.tnd.vn/backups/ERPDb_Encrypted.bak'
WITH
COMPRESSION,
ENCRYPTION (
ALGORITHM = AES_256,
SERVER CERTIFICATE = BackupCert
),
FORMAT;
-- 3. BACKUP CERT NGAY LẬP TỨC - mất cert là mất backup
BACKUP CERTIFICATE BackupCert
TO FILE = 'D:\BackupCert.cer'
WITH PRIVATE KEY (
FILE = 'D:\BackupCert.pvk',
ENCRYPTION BY PASSWORD = 'CertBackupP@ss!2026'
);6. Restore - quy trình full + diff + log point-in-time
-- Scenario: khôi phục đến 14:35:22 sau khi user xoá nhầm data lúc 14:36 USE master; GO -- 1. Restore Full (NORECOVERY để chờ tiếp Diff/Log) RESTORE DATABASE [ERPDb_Restore] FROM DISK = N'D:\Backup\ERPDb_Full_Sun.bak' WITH NORECOVERY, REPLACE, MOVE 'ERPDb' TO 'D:\Data\ERPDb_Restore.mdf', MOVE 'ERPDb_log' TO 'D:\Log\ERPDb_Restore.ldf', STATS = 10; -- 2. Restore Differential gần nhất trước thời điểm cần RESTORE DATABASE [ERPDb_Restore] FROM DISK = N'D:\Backup\ERPDb_Diff_Tue.bak' WITH NORECOVERY; -- 3. Restore từng Log backup theo thứ tự, cho đến log chứa 14:35 RESTORE LOG [ERPDb_Restore] FROM DISK = N'D:\Backup\Log\Log_14_15.trn' WITH NORECOVERY; RESTORE LOG [ERPDb_Restore] FROM DISK = N'D:\Backup\Log\Log_14_30.trn' WITH STOPAT = N'2026-05-19T14:35:22', RECOVERY;
7. Nguyên tắc 3-2-1 - chuẩn vàng cho backup
- 3 copy: 1 production + 2 backup
- 2 media khác nhau: local disk + NAS / tape / cloud (không cùng 1 disk)
- 1 offsite: 1 copy ở physical location khác - chống cháy nổ datacenter
Implementation cho doanh nghiệp Việt
# Lịch backup mẫu (Linux cron / SQL Agent) # Layer 1: Local disk (D:\Backup) - restore nhanh # Full Sun 2AM, Diff daily 2AM, Log mỗi 15 phút # Layer 2: NAS / file server LAN # Sync Layer 1 mỗi 30 phút qua robocopy / rsync # Layer 3: Cloud S3 / Azure Blob (offsite) # Sync nightly bản encrypted
Nếu chưa có NAS riêng, có thể dùng Dedicated Server với storage lớn làm backup target hoặc Cloud VPS với block storage attached.
8. Retention policy - giữ backup bao lâu?
| Loại | Retention | Rationale |
|---|---|---|
| Log backup | 7-14 ngày | Đủ point-in-time recovery cho lỗi gần |
| Differential | 2-4 tuần | Cover trường hợp lỗi phát hiện chậm |
| Full weekly | 3-6 tháng | Audit history, regulatory |
| Full monthly (quarterly archive) | 1-7 năm | Compliance, legal hold |
| Full yearly (long-term) | 7-10 năm | Tax, financial law |
Tại Việt Nam, Luật Kế toán yêu cầu lưu giữ chứng từ kế toán tối thiểu 10 năm - DB tài chính phải có backup yearly retention 10 năm.
9. Test restore - backup chưa test = chưa có backup
Bài học đắt giá nhất của ngành DBA: backup chạy hàng đêm, đến khi cần restore mới phát hiện file corrupt, cert mất, hoặc restore mất 12 giờ trong khi SLA chỉ 1 giờ.
Lịch test định kỳ
- Weekly: RESTORE VERIFYONLY tất cả backup mới
- Monthly: restore full + diff + log mới nhất sang test server, chạy DBCC CHECKDB
- Quarterly: full DR drill - failover hoặc rebuild từ scratch, đo RTO thực tế
- Annually: tabletop exercise - giả lập datacenter mất, team thực hiện toàn bộ recovery
-- Verify backup integrity (không restore data, chỉ check file)
RESTORE VERIFYONLY
FROM DISK = N'D:\Backup\ERPDb_Full.bak'
WITH CHECKSUM;
-- DBCC CHECKDB sau khi restore lên test server
RESTORE DATABASE [ERPDb_Test] FROM DISK = ... WITH RECOVERY;
DBCC CHECKDB ('ERPDb_Test') WITH NO_INFOMSGS, ALL_ERRORMSGS;10. Tích hợp Veeam / 3rd-party backup
Veeam Backup & Replication có agent SQL Server tích hợp tốt, thường dùng cho doanh nghiệp:
- Backup VM-level + application-aware (snapshot SQL VSS)
- Granular restore: chỉ 1 table, 1 row, point-in-time
- Repository cloud-tier Azure Blob, S3
- Encryption ở repository + transit
- Replication sang DR site
Lưu ý: Veeam là tier-2 backup tốt, nhưng vẫn nên có tier-1 native SQL backup (Full + Diff + Log) song song. Đa lớp bảo vệ.
11. Hoá đơn VAT và license - backup feature
Backup là feature có sẵn từ Express trở lên - không tốn license thêm. Tuy nhiên, automate qua SQL Agent yêu cầu Standard/Enterprise. Encryption backup có ở Standard 2014+ và Enterprise.
TND là đại lý chính thức Microsoft tại Việt Nam, cung cấp license SQL Server 2022 Standard, Enterprise, CAL genuine, xuất hoá đơn VAT điện tử Thông tư 78 đầy đủ cho doanh nghiệp. TND cũng tư vấn kết hợp SQL Server với Cloud VPS / Dedicated Server làm backup repository chi phí tối ưu.
Đọc thêm: Standard vs Enterprise, AlwaysOn AG setup, SQL cho ERP & compliance.
Xây dựng chiến lược backup chuẩn cho doanh nghiệp?
TND đại lý Microsoft SQL Server tại Việt Nam - license genuine cho Standard, Enterprise, CAL. Hoá đơn VAT điện tử TT 78 đầy đủ cho doanh nghiệp.
- SQL Server 2022 Standard vs Enterprise: khác nhau thế nào
- SQL Server 2022 vs 2019: có đáng nâng cấp 2026 không?
- SQL Server AlwaysOn Availability Group: cấu hình HA cho doanh nghiệp
- SQL Server 2022 cho ERP, SAP, Oracle migration: bảo mật + compliance
- SQL Server licensing: Server+CAL vs Core - mô hình nào rẻ hơn?



