Senin, 28 Mei 2012

[belajar-access] SQL Server 2005 Express [9/11]

 

SQL SERVER AGENT

SQL Server Agent adalah sebuah service yang menjalankan berbagai job pada SQL Server. Namun, pada SQL Server Express ini, fasilitas SQL Server Agent tidak disertakan. SQL Server Agent dan SQL Server Agent Service hanya terdapat pada SQL Server versi standard, misalnya SQL Server 2005 dan juga pada SQL Server 7.0/2000/MSDE. Mengingat fungsinya yang sangat penting, maka kita harus mengakali sendiri bagaimana cara membuat software pengganti SQL Server Agent ini.

Diantara berbagai job yang ada, terdapat tiga job utama yang harus dikerjakan secara periodik, yakni:

1. Reindex database
3. Shrink database
2. Backup database

Saya akan coba sampaikan contoh kode SQL untuk penggunaan pada database Northwind.

1. REINDEX DATABASE

- Untuk reindex pada salah satu table:

USE Northwind;
GO
ALTER INDEX ALL ON Categories
REBUILD WITH (FILLFACTOR = 90);
GO

- Untuk reindex pada seluruh table:

DBCC DBREINDEXALL ('Northwind')

2. SHRINK DATABASE

- Shrink database Northwind dan memberikan persentase free space:

DBCC SHRINKDATABASE (Northwind, 10);
GO

- Truncate database Northwind:

DBCC SHRINKDATABASE (Northwind, TRUNCATEONLY);
GO

3. BACKUP DATABASE

- Backup database Northwind secara complete (sebelumnya harap dibuat dahulu folder "D:\SQLServerExpressBackups"):

BACKUP DATABASE Northwind
TO DISK = 'D:\SQLServerExpressBackups\Northwind_Harian.bak'
WITH FORMAT;
GO

MEMBUAT SOFTWARE PENGGANTI SQL SERVER AGENT DI DALAM MICROSOFT ACCESS UNTUK MENJALANKAN SCHEDULE KETIGA JOB DIATAS AGAR DAPAT BERJALAN SECARA OTOMATIS

Untuk membuat schedule, salah satunya dapat menggunakan bantuan file "sqlcmd.exe" yang terdapat pada folder:
"C:\Program Files\Microsoft SQL Server\90\Tools\Binn"

Silahkan ikuti langkah-langkah sbb:

1. Buatlah file database baru, save dengan nama MySQLServerAgent.mdb.

2. Buatlah sebuah form baru di dalamnya, save dengan nama MySchedule.

3. Set properties Timer Interval = 1000. Ini artinya 1000 millidetik, atau 1 detik.

4. Pada event On Timer, tambahkan procedure sbb:

Private Sub Form_Timer()
'Program untuk menjalankan beberapa job pada SQL Server Express
'Copyright (c) 2006, Sofyan Efendi, All Rights Reserved.
Dim strSQLCMD As String
Dim WaktuSekarang As Date
Dim strNamaSQLServer As String
Dim strUserName As String
Dim strPassword As String
Dim strJob1 As String, strJob2 As String, strJob3 As String
Dim RunMe1 As String, RunMe2 As String, RunMe3 As String
WaktuSekarang = TimeSerial(Hour(Now()), Minute(Now()), Second(Now()))
strSQLCMD = """C:\Program Files\Microsoft SQL Server\90\Tools\Binn\sqlcmd.exe"""
strNamaSQLServer = """MIS\SQLEXPRESS"""
strUserName = """SA"""
strPassword = """mysapassword"""
strJob1 = """DBCC DBREINDEXALL ('Northwind')"""
strJob2 = """DBCC SHRINKDATABASE (Northwind, 10);"""
strJob3 = """BACKUP DATABASE Northwind TO DISK = 'D:\SQLServerExpressBackups\Northwind_Harian.bak' WITH FORMAT;"""
RunMe1 = strSQLCMD & " -S " & strNamaSQLServer & " -U " & strUserName & " -P " & strPassword & " -Q " & strJob1
RunMe2 = strSQLCMD & " -S " & strNamaSQLServer & " -U " & strUserName & " -P " & strPassword & " -Q " & strJob2
RunMe3 = strSQLCMD & " -S " & strNamaSQLServer & " -U " & strUserName & " -P " & strPassword & " -Q " & strJob3
If WaktuSekarang = #11:00:00 PM# Then
'Jika jam 11 malam, jalankan reindex:
Shell RunMe1, vbNormalFocus
ElseIf WaktuSekarang = #12:00:00 PM# Then
'Jika jam 12 malam, jalankan shrink:
Shell RunMe2, vbNormalFocus
ElseIf WaktuSekarang = #1:00:00 AM# Then
'Jika jam 1 malam, jalankan backup:
Shell RunMe3, vbNormalFocus
End If
End Sub

5. Save, lalu jalankan form ini. Jika nanti waktu pada PC nya tepat seperti yang diset pada schedule VBA diatas, job-job tersebut akan dijalankan secara otomatis oleh Access.

Schedule dan procedure diatas hanyalah contoh. Untuk memudahkan setting jam dan tanggal, sebaiknya menggunakan table dan form, sehingga input schedule dan juga job-job lainnya dapat dilakukan secara mudah.

 
Wassalaamu'alaikum Warahmatullahi Wabarakatuh,
Sofyan Efendi
http://imopi.wordpress.com/

__._,_.___
Recent Activity:
SPAM IS PROHIBITED
.

__,_._,___

Tidak ada komentar:

Posting Komentar