Pada postingan kali ini kami akan membahas mengenai cara membuat Cron Job untuk keperluan backup SQL Database. Cron jobs digunakan sebagai scheduling task untuk tugas tugas yang berjalan di dalam server. Biasanya cron jobs digunakan untuk otomatisasi pemeliharaan system dan administrasi. Akan tetapi cron jobs juga relevan jika digunakan untuk keperluan pengembangan aplikasi web. Ada beberapa situasi ketika aplikasi web membutuhkan berbagai task untuk berkerja secara periodik. Cron job/scheduled task merupakan tugas otomatis dalam system yang bisa di atur untuk menjalankan sebanyak apapun pada jarak tertentu. Cron/scheduled task memungkinkan anda untuk menjadwalkan perintah ataupun script untuk berjalan pada waktu tertentu di suatu hari , ataupun di hari tertentu pada suatu minggu, ataupun pada waktu tertentu dalam hari dan bulan yang lebih spesifik. Cron job juga memungkinkan untuk mengatur lebih rinci sampai ke menit ataupun lebih jauh ke acara tahunan.
Berikut ini langkah sederhana bagaimana membangun Cron Job untuk backup SQL Database
- Step 1 buat folder penyimpanan file backup di dalam FTP application
Buka ftp application dan connect ke account yang databasenya ingin anda back up. Buat folder diluar dari webcontent misalnya “backups”.
- Step 2 Atur folder permissions dalam FTP Application
Klik kanan folder dan tambahkan semua write permission. Jika ftp software anda tidak mampu melakukan hal ini cobalah gunakan FTP client free seperti FileZilla.
- Step 3 Buat sebuh prosedur penyimpanan yang melakukan backup dengan nama file sebagai input parameternya
Connect ke database menggunakan client dan jalankan query berikut. Prosedur ini dinamakan FullBackup sebagai contoh
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[FullBackup]
@FileName nvarchar(256)
AS
BEGIN
SET NOCOUNT ON;
BACKUP DATABASE [123456_YourDatabase] TO DISK = @FileName WITH NOFORMAT, NOINIT, NAME = N’Full Database Backup’, SKIP, NOREWIND, NOUNLOAD, STATS = 10
END
- Step 4 buat halaman web yang mengeksekusi prosedur penyimpanan
Anda dapat menggunakan php ataupun asp.net. untuk yang sederhana seperti ini anda dapat menggunakan classic asp. Pada hal ini tidakl ada file dll yang ditangani dan juga tidak dibutuhkan restart aplikasi. Sekarang buatlah halaman asp baru backupdb.asp. isi dari filenya akan mengikuti, jika telah selesai, upload file ini ke folder di dalam content area.
Script in akan meng-generate filename berdasarkan data yang ada. Jika backup pada hari tersebut sudah ada, maka prosedur tersebut akan manambah hitungan sampai filename terbaru ditemukan.
Script ini akan meng-generatte 1 file tiap eksekusi. modifikasi sesuai kebutuhan jika anda ingin menambah sebuah file. edit lokasi dan connection string agar dapat bekerja.
<%@LANGUAGE=”VBSCRIPT” CODEPAGE=”65001″%>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>Untitled Document</title>
</head>
<body>
<%
dim thismonth, thisday, thisyear, location, filelename, ver, extention, abolutespath
thismonth= datepart(“m”, now())
thisday=datepart(“d”, now())
thisyear=datepart(“yyyy”,now())
location=”fs1-n03stor1wc1dfw8382492382489www.yoursite.combackups”
filename=”dbBackup-” & thismonth & “-” & thisday & “-” & thisyear & “_”
ver=1
extention=”.bak”
absolutepath=location & filename & ver & extention
set fso = Server.CreateObject(“Scripting.FileSystemObject”)
while (fso.FileExists(absolutepath)=True)
ver=ver+1
absolutepath=location & filename & ver & extention
wend
Set cn = Server.CreateObject(“ADODB.Connection”)
cn.connectionString= “Provider=SQLNCLI;Server=mssql05-01.wc1;Database=123456_YourDatabase;Uid=123456_YourUsername; Pwd=Yourpassword;”
cn.open
Set cmd = Server.CreateObject(“ADODB.Command”)
Set cmd.ActiveConnection = cn
cmd.CommandText = “FullBackup”
cmd.CommandType = 4 ‘adCmdStoredProc
cmd.Parameters.Refresh
cmd.Parameters(1) = absolutepath
cmd.Execute
cn.close
%>
Execution complete: Filename=<%= filename & ver & extention%>
</body>
</html>
- Step 5. Jadwalkan cron job untuk memanggil halaman web
Akses control panel dan masuk ke tab fitur di dalam situs, dengan database. Pilih http sebagai Bahasa. Masukan url kedalam asp script dan email anda, dan jadwalkan tugas untuk berjalan setiap hari pada off hour.