|
การเขียน Stored Procedure ทำการ Backup (สำรอง) ข้อมูลทั้งก้อนบน SQL Server Database |
การเขียน Stored Procedure ทำการ Backup (สำรอง) ข้อมูลทั้งก้อนบน SQL Server Database บทความนี้เป็นเทคนิควิธีการเขียน Stored Procedure ในการ Backup ข้อมูลบน SQL Server Database โดยสามารถประยุกต์ใช้การกับตั้ง Job Schedule หรือการสั่ง Backup จากหน้า Application ได้ทั้งจาก Windows Desktop App หรือ Web Application ประโยชน์ของมันก็คือ คือในการสำรองข้อมูลแบบ Automatic ตาม Schedule ที่เรากำหนดขึ้น เช่นถ้าข้อมูลสำคัญมาก ๆ อาจจะต้องทำการ Backup ทุก ๆ วัน หรือจะใช้การ Backup แบบ Manual โดยการสั่งให้ .Net Application ทำการ Execute ตัว Stored Procedure ที่ทำหน้าที่ Backup Database
Stored Procedure and SQL Server Backup Database
สำหรับตัวอย่างนี้รองรับการทำงานบน SQL Server เกือบทุกเวอร์ชั่น เช่น 2005,2008,2012,2014 หรือจะเวอร์ชั่นล่าสุด อย่าง SQL Server 2016 ก็ใช้คำสั่งนี้ Stored Procedure นี้ได้เช่นเดียวกัน
บทความที่เกี่ยวข้อง
Backup บน SQL Server 2005 และ 2008 แบบรัน Auto Schedule Task อัตโนมัติ
Stored Procedure สำหรับการ Backup Database
-- =============================================
-- Author: ThaiCreate.Com
-- Create Date: 27-Apr-2016
-- Description: Backup Database
-- =============================================
CREATE PROCEDURE [dbo].[spBackupDB]
AS
SET DATEFORMAT DMY;
BEGIN
SET NOCOUNT ON;
DECLARE @sCmd VARCHAR(1000),
@sDb VARCHAR(30),
@sPath VARCHAR(100),
@sTime VARCHAR(20);
SELECT @sDb = DB_NAME();
SELECT @sTime = REPLACE(CONVERT(VARCHAR(30), GETDATE(), 106),' ','-') + '_' +REPLACE(CONVERT(VARCHAR(30), GETDATE(), 108), ':', '.');
SET @sPath = 'D:\BackupDB\' + @sDb +'_' + @sTime + '.bak';
SET @sCmd = 'BACKUP DATABASE ' + @sDb + ' TO DISK = ''' + @sPath + '''' + ' WITH NOFORMAT, INIT, NAME = ''' + @sDb + ''', SKIP, NOREWIND, NOUNLOAD, STATS = 10';
EXEC (@sCmd);
END
จากคำสั่ง Stored Procedure นี้อยู่ภายใต้ Database : millionaire ชื่อว่า spBackupDB โดยจะเก็บไฟล์ที่แบ็คอัพไว้ใน D:\BackupDB\
ทดสอบการ Backup เรียก Stored Procedure
EXEC spBackupDB
เมื่อ Execute ตัว Stored Procedure จะเห็นว่ามีการทำการ Backup ข้อมูลเกิดขึ้น
ไฟล์ Backup จะถูกจัดเก็บไว้ใน Path : D:\BackupDB\
จะเห็นว่าสามารถทำการ Backup ข้อมูลทั้งก่อนได้แบบง่าย ๆ ด้วยการ Execute ตัว Stored นี้เท่านั้น ซึ่งสามารถใช้เรียกจาก Application เพื่อทำการ Backup ได้เลย หรือไม่จะใช้ Job Schedule ที่อยู่บน SQL Server ก็ได้เช่นเดียวกัน
การตั้ง Job Schedule บน SQL Server เพื่อตั้งเวลาให้ทำการ Execute ตัว Stored Procedure
ในการใช้งาน Jobs จะต้องต้องรันตัว Services ที่ชื่อว่า SQL Server Agent (อย่าลืมตั้งให้ Start แบบ Automatic ด้วย)
คลิกวาที่ Jobs เลือก New Job...
ในส่วนของ General กำหนดชื่อ Jobs และเลือก User ที่มีสิทธิ์ในการ Backup ข้อมูล ปกติแล้วจะใช้ sa
ในส่วนของ Step -> New
ในแทบของ General กำหนดเชื่อ Step name และ เลือก Database พร้อมกับคำสั่งในการ Execute ตัว Stored Procedure
EXEC spBackupDB
ในส่วนของ Schedule จะเป็นการตั้งเวลาให้ทำงาน เลือก New
กำหนดชื่อ Schedule พร้อมกับกำหนดรูปแบบการทำงาน เช่น Daily พร้อมกับ เวลาที่มันจะทำงาน ในตัวอย่างนี้ทำตอน 12:30
หลังจากนั้นเราจะได้ Jobs Schedule ที่เราสร้างขึ้น
สามารถทดสอบการทำงานโดยคลิกขวา เลือก Start Job at Step
แสดงผลทดสอบการทำงาน
การทำงานเสร็จสิ้น
จะเห็นว่าไฟล์ Backup ถูกสร้างขึ้น
ในตัวอย่างนี้จะกำหนดเวลาทำงานทุกวัน 12:30 เมื่อถึงเวลาที่กำหนด ตัว Jobs นี้ก็จะทำงาน
ไฟล์ Backup ถูกสร้างขึ้น
Note!! ในการตั้ง Job Schedule เพื่อ Backup Database ครวจตรวจสอบขนาดไฟล์ที่ได้ทำการ Backup เพราะถ้ามีการตั้ง Schedule ให้ทำกงานบ่อย ๆ ปริมาณไฟล์ Backup อาจจะทำให้ Hardisk เต็มได้หรือาจจะใช้การ Backup ไปยังพวก Network Path เพื่อป้องกัน Server หลักมีปัญหาเกี่ยวกับ Harddisk เต็ม
|
|
|
By : |
TC Admin
|
|
Article : |
บทความเป็นการเขียนโดยสมาชิก หากมีปัญหาเรื่องลิขสิทธิ์ กรุณาแจ้งให้ทาง webmaster ทราบด้วยครับ |
|
Score Rating : |
|
|
Create Date : |
2016-04-27 |
|
Download : |
No files |
|
Sponsored Links |
|
|
|
|
|
|