Schedule Backup MS-SQL 2005 Express

ใน MS-SQL Express จะไม่มีฟังชั่นในการตั้ง Schedule backup ไว้ให้
แต่เราสามารถสร้าง script เพื่อทำการ Backup database ได้ด้วยตัวเอง

ขั้นตอนการทำ
1. ทำการสร้าง script ในการ backup

โดยทำการ backup ปกติแล้วใช้คำสั่ง script action to file แล้ว save ไฟล์ดังกล่าวไว้ในที่ที่ต้องการใช้งาน


2. สร้าง batch script file โดยภายในกำหนดให้ run script backup ตามข้อ 1
รูปแบบจะเป็นดังนี้
\SQLEXPRESS -E -i "Part to fil\backup_scrip.sql"

ตัวอย่าง
osql -S HR-PAYROLL\SQLEXPRESS -E -i "D:\Backup DB\backup_scrip.sql"


3. สร้าง scheduled task ตามปกติ




เพิมเติม1
เพื่อให้สามารถ backup รายวันได้โดยชื่อไฟล์ไม่ซ้ำกัน
ทำการเพิ่มเติมในส่วนของวันที่ไว้ด้านหน้า ตาม script ด้านล่าง

osql -S HR-PAYROLL\SQLEXPRESS -E -i "D:\Backup DB\backup_scrip.sql"

echo %date%
set today=%date:~-4%%date:~4,2%%date:~7,2%_
echo %today%

rename nitgenacdbsql00 %today%nitgenacdbsql00
เพิ่มเติม2
เพื่อป้องกันปัญหาพื้นที่เต็มเนื่องจากการ Backup
เราสามารถเพิ่ม script เพื่อให้ลบไฟล์ที่เก่ากว่าจำนวนวันที่กำหนดได้
รูปแบบตาม script นี้ (โดยส่วนของ "PATH" เป็นที่อยู่ของไฟล์ที่ต้องการลบ)

forfiles /p "PATH" /s /d -30 /c "cmd /c del @file : date >= 30 days >NUL"


หรือทำเป็น Command batch file ในลักษณะนี้ก็ได้
"C:\Program Files\Microsoft SQL Server\90\Tools\Binn\osql.exe" -E -Q "BACKUP DB DatabaseName TO DISK='D:\Part to Backup DB\Backup name.bak' WITH FORMAT"

d:
cd\
cd "Backup DB"

echo %date%
set today=%date:~-4%%date:~4,2%%date:~7,2%_
echo %today%

rename Backup name.bak %today%Backup name.bak

forfiles /p "D:\Part to Backup DB" /s /d -30 /c "cmd /c del @file : date >= 30 days >NUL"







ความคิดเห็น

บทความที่ได้รับความนิยม