ไฟล์สำรองมีค่าก็ต่อเมื่อ restore ได้จริง บทความนี้สรุปรูปแบบการสำรองหลักของ SQL Server และวิธีตรวจไฟล์ก่อนวันที่ต้องใช้
สำรองแบบ Full, Differential และ Log
-- Full backup
BACKUP DATABASE [MyDb]
TO DISK = N'D:\Backup\MyDb_FULL.bak'
WITH COMPRESSION, CHECKSUM, INIT, STATS = 10;
-- Differential backup (เฉพาะส่วนที่เปลี่ยนจาก Full ล่าสุด)
BACKUP DATABASE [MyDb]
TO DISK = N'D:\Backup\MyDb_DIFF.bak'
WITH DIFFERENTIAL, COMPRESSION, CHECKSUM, STATS = 10;
-- Transaction log backup (ใช้ได้เมื่อฐานข้อมูลเป็น Full recovery model)
BACKUP LOG [MyDb]
TO DISK = N'D:\Backup\MyDb_LOG.trn'
WITH COMPRESSION, CHECKSUM;
การสำรอง Log ใช้ได้เฉพาะฐานข้อมูลที่ตั้ง Recovery Model เป็น FULL หรือ BULK_LOGGED และต้องมี Full backup มาก่อน
ตรวจว่าไฟล์สำรองอ่านได้
RESTORE VERIFYONLY
FROM DISK = N'D:\Backup\MyDb_FULL.bak'
WITH CHECKSUM;
RESTORE VERIFYONLY ตรวจความสมบูรณ์ของไฟล์ แต่ไม่ได้พิสูจน์ว่า restore แล้วแอปใช้งานได้ ควรซ้อม restore จริงบนเครื่องทดสอบเป็นระยะ
ดูประวัติการสำรองล่าสุด
SELECT TOP 10
database_name,
type,
backup_start_date,
backup_finish_date,
CAST(backup_size / 1048576.0 AS DECIMAL(18, 1)) AS size_mb
FROM msdb.dbo.backupset
ORDER BY backup_finish_date DESC;
ในคอลัมน์ type ค่า D คือ Full, I คือ Differential และ L คือ Log
Leave a Reply