การ Backup ฐานข้อมูล SQL Server แบบอัตโนมัติ

ฐานข้อมูล SQL Server มาพร้อมกับโปรแกรม SQL Server Management Studio (SSMS) มีเครื่องมือหลายหลายที่ช่วยให้ผู้ดูแลฐานข้อมูลจัดการกับฐานข้อมูลได้ งานสำคัญอย่างหนึ่งที่ผู้ดูแลระบบต้องทำเป็นประจำคือการ Backup สำรองฐานข้อมูลไว้อย่างสม่ำเสมอ เพื่อป้องกันการสูญหายของข้อมูล

เราสามารถตั้งให้ SQL Server ทำการ Backup ฐานข้อมูลโดยอัตโนมัติตามความบ่อยครั้งที่เราต้องการสำรองข้อมูลได้ ไม่ว่าจะเป็นรายชั่วโมง รายวัน รายสัปดาห์ หรือรายเดือนก็ตาม โดยอาศัยการทำงานของ SQL Server Agent วิธีการสามารถทำได้ ดังนี้

  1. Log in เข้าสู่โปรแกรม SSMS => Connect ด้วย Account ที่เป็น Admin ฐานข้อมูล => เลือกเมนู SQL Server Agent

2. ที่ Jobs คลิกขวาเลือก New Job

3. ที่ Page General ตั้งชื่อการ Backup

4. ที่ Page Steps คลิก New

5. ที่หน้าต่าง Job Step Properties กำหนด ดังนี้

  • ตั้งชื่อขั้นตอน
  • เลือ Type Transact-SQL script (T-SQL)
  • เลือก Database ที่ต้องการ Backup
  • ในช่อง command ระบุ คำสั่ง Transact SQL ดังนี้
BACKUP DATABASE database_name
TO DISK = 'D:\Backup\database_name.bak'  
   WITH FORMAT,  
      MEDIANAME = 'D_Backup',  
      NAME = 'Full Backup of database_name';  
GO

โดยทำการเปลี่ยนคำว่า database_name เป็นชื่อฐานข้อมูลที่ต้องการ backup และเปลี่ยน Path D:\Backup เป็น path ที่ต้องการเก็บไฟล์ backup ฐานข้อมูล (สามารถทำการ Map Network Drive เพื่อเก็บไว้ภายนอกเครื่องได้) แล้วกด OK

ปรากฏ Step Backup ที่ได้ทำาการสร้างขึ้น

6. ที่ Page Schedule เลือก New

7. เลือกกำหนดตั้งเวลาที่ต้องการให้ SQL Server ทำการ Backup

ตัวอย่างการตั้ง Schedule ให้ run คำสั่งทุกวันเวลา 7:00 น. โดยไม่มีวันสิ้นสุด

เสร็จแล้วกด OK เพื่อสร้าง Job

ตัวอย่าง Job ที่ได้ทำการสร้างขึ้น

8. สามารคลิกขวาที่ Job เลือก Start Job at Step... เพื่อทำการทดสอบการทำงานได้

หน้าต่างแสดงการ Run Job เรียบร้อย

ไปยัง Path ที่ได้ทำการระบุไว้ตามคำสั่งจะพบกับไฟล์ .bak สำรองฐานข้อมูลตามที่ได้ตั้งไว้เรียบร้อย

ผู้เขียน

ภัทรชัย ไชยมงคล
ฝ่ายเทคโนโลยีสารสนเทศเพื่อการศึกษา
สำนักคอมพิวเตอร์
phattarachai@g.swu.ac.th