สำรองฐานข้อมูล SQL Server ด้วย T-SQL และตรวจไฟล์สำรอง

อ่านประมาณ 1 นาที

ไฟล์สำรองมีค่าก็ต่อเมื่อ 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

Your email address will not be published. Required fields are marked *