SQL Server Backup & Restore best practice 2026

Chia sẻ bài viết

Mục lục
SQL Server2026-06-29·12 phút đọc

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 đề:

ModelMô tảBackup hỗ trợPhù hợp
FULLMọi transaction được log đầy đủFull + Diff + LogProduction OLTP cần RPO < 1h
BULK_LOGGEDNhư FULL, bulk operation log tối giảnFull + Diff + LogDW lớn có bulk insert / index rebuild
SIMPLELog tự truncate sau checkpointFull + 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

WorkloadRecoveryFullDiffLogRPO
OLTP critical (ERP, banking)FULLWeekly Sun 2AMDaily 2AM15 phút~15 phút
OLTP medium (CRM, internal app)FULLWeekly SunDaily 2AM1 giờ~1 giờ
DW (data warehouse)SIMPLE / BULKWeeklyDaily-~24 giờ
Dev / testSIMPLEWeekly--~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ạiRetentionRationale
Log backup7-14 ngàyĐủ point-in-time recovery cho lỗi gần
Differential2-4 tuầnCover trường hợp lỗi phát hiện chậm
Full weekly3-6 thángAudit history, regulatory
Full monthly (quarterly archive)1-7 nămCompliance, legal hold
Full yearly (long-term)7-10 nămTax, 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.

Xem giá SQL Server →

2009
15+ năm vận hành liên tục
10+
tập đoàn lớn tin dùng
100+
doanh nghiệp SMB Việt
30 ngày
đổi key lỗi miễn phí
Phần mềm bản quyền chính hãng chúng tôi cung cấp
Bản quyền chính hãng Hóa đơn VAT đầy đủ Đổi key lỗi 30 ngày Vận hành từ 2009 MST 0200994870 Hotline 0225.999.6666