peranan ms sql agent dalam menjaga performa - Faculty e

advertisement
PERANAN MS SQL AGENT DALAM MENJAGA PERFORMA
BASIS DATA PADA MS SQL SERVER SECARA OTOMATIS
Ibnu Gunawan1, Rudy Adipranata2
Fakultas Teknologi Industri, Jurusan Teknik Informatika
Universitas Kristen Petra
Jl. Siwalankerto 121 - 131, Surabaya
email : ibnu@ petra.ac.id1, [email protected]
Abstrak
Dalam dunia basis data dikenal adanya 2 model basis data yaitu OLTP dan
OLAP. OLTP singkatan dari OnLine Transactional Processing, merupakan fungsi basis
data untuk menangani sejumlah besar transaksi yang dilakukan oleh sejumlah besar
user secara simultan dengan cepat (real time). OLAP (OnLine Analytical Processing)
adalah fungsi basis data untuk dapat melayani permintaan penggalian informasi yang
kompleks secara cepat dan akurat sehingga dapat menghasilkan informasi yang
digunakan untuk menganalisa kinerja sebuah organisasi. OLAP biasanya juga
menggunakan basis data model OLTP sebagai tempat penggalian informasi. Sebagai
model OLTP, maka basis data dituntut untuk mempunyai perangkat lunak dan
perangkat keras yang optimal. Untuk dapat mengukur apakah sebuah sistem basis
data mempunyai kemampuan yang optimal, terdapat performance baseline yang dapat
digunakan.
Salah satu sistem perangkat lunak basis data yang mendukung model OLTP
dan OLAP adalah Microsoft SQL Server. Microsoft SQL Server mempunyai 4 fasilitas
yang berhubungan dengan perannya sebagai perangkat lunak basis data OLTP dan
OLAP yaitu MSSQLServer, MSSQLAgent, MSDistributedCoordinator serta MSSearch.
Sayangnya yang diketahui secara umum baik fungsi maupun cara penggunaannya
adalah MSSQLServer. Sedangkan ketiga fasilitas yang lain belum diketahui oleh
banyak orang. MSSQL Agent adalah layanan yang diberikan oleh SQL Server untuk
membantu bahkan bisa dikatakan menggantikan administrator basis data khususnya
untuk tugas – tugas rutin seorang administrator. Jika sebuah sistem basis data bekerja
selama 24 jam sehari dan 7 hari seminggu, maka administrator juga harus bertugas
selama periode tersebut yang tentu saja tidak mungkin. Untuk itulah fasilitas
MSSQLAgent diperlukan, dimana MSSQLAgent dapat diumpamakan sebagai
administrator virtual di dalam SQL Server.
MSSQLAgent ini dapat diatur sehingga sistem basis data dapat selalu
memenuhi standar performance baseline. Dengan terpenuhinya performance baseline,
maka dapat dikatakan sistem basis data tersebut bekerja secara optimal. Pada tulisan
ini akan dibahas secara detail point-point yang termasuk ke dalam performance base
line dan bagaimana cara menggunakan MSSQLAgent sehingga sistem selalu dapat
memenuhi performance baseline tersebut..
Kata kunci: MSSQLAgent, otomasi, optimalisasi, basis data.
1. Pendahuluan
Secara umum, penggunaan basis data pada sistem teknologi informasi
merupakan hal yang penting karena tanpa adanya suatu sistem basis data, maka
sistem teknologi informasi tidak akan bekerja dengan efisien. Sebuah sistem basis
data membutuhkan perangkat keras serta perangkat lunak yang dapat dengan efisien
memproses segala sesuatu yang berhubungan dengan penyimpanan data serta
pengambilan kembali data yang telah disimpan tersebut.
Pada sistem basis data dikenal adanya dua macam model yaitu OLTP (OnLine
Transactional Processing) dan OLAP (OnLine Analytical Processing). Sebagai OLTP,
maka sistem basis data harus mampu menangani transaksi yang dilalukan oleh
sejumlah besar pengguna secara simultan dengan cepat (real time) dan efisien.
Biasanya pada sistem OLTP ini data terorganisasi menjadi tabel yang saling
berhubungan (relational table) untuk mengurangi informasi yang kembar (redundant)
dan mempercepat proses. Sebagai contoh aplikasi yang memerlukan penggunaan
sistem basis data OLTP ini adalah sistem perbankan, pemesanan tiket penerbangan
dan lain-lain. Sedangkan sebagai OLAP, maka sistem basis data harus mampu
menyediakan fasilitas untuk mengorganisasikan serta menggali informasi dari sejumlah
besar data dengan struktur permintaan informasi yang kompleks sehingga dapat
menghasilkan suatu informasi yang dapat digunakan untuk menganalisa kinerja
organisasi secara cepat (real time) dan akurat. Sebagai contoh hasil OLAP ini adalah
analisa tentang trend penjualan yang terjadi selama periode tertentu.
Agar sebuah sistem basis data dapat dianggap sudah bekerja dengan optimal,
diperlukan sebuah tolok ukur atau disebut dengan performance baseline, dimana
performance baseline digunakan untuk membandingkan kinerja sistem saat ini dengan
standar yang telah ditetapkan. Jika kinerja sistem kurang dari performance baseline
yang ditetapkan maka kinerja sistem dikatakan tidak optimal sehingga perlu dilakukan
sesuatu sehingga menjadi optimal kembali. Untuk menjaga agar sistem tetap berada
dalam kondisi optimal, diperlukan administrator. Tugas utama administrator adalah
menjaga sistem sehingga sistem tetap bekerja dengan optimal dan jika terjadi suatu
masalah pada sistem, administrator bertugas untuk mengatasi masalah tersebut.
Tugas administrator ini penting sekali karena meskipun sistem mempunyai perangkat
keras serta perangkat lunak yang optimal, tanpa adanya administrator maka sistem
tidak akan bekerja dengan optimal. Karena dari waktu ke waktu selama bekerja, sistem
pasti akan mengalami penurunan unjuk dan jika terjadi suatu masalah, dapat terjadi
kemungkinan sistem berhenti bekerja.
2. Microsoft SQL Server
Microsoft SQL Server adalah sebuah perangkat lunak sistem basis data yang
mendukung model OLTP serta OLAP. MS SQL Server ini berjalan pada sistem operasi
Windows NT / 2000 / 2003 Server. MS SQL Server terdiri dari komponen client dan
server yang berfungsi untuk menyimpan serta menggali data (query). SQL Server
menggunakan arsitektur komunikasi yang terbagi menjadi layer-layer sehingga dapat
dibangun aplikasi yang terpisah dari masalah protokol jaringan komputer. Hal ini
memungkinkan untuk membangun sebuah aplikasi yang berjalan di lingkungan
jaringan berbeda.
Gambar 1. Arsitektur Microsoft SQL Server
Microsoft SQL Server terdiri dari empat fasilitas (service) yaitu MSSQLServer,
SQLServerAgent, Microsoft Distributed Transaction Coordinator (MS DTC) dan
Microsoft Search. MSSQLServer berfungsi sebagai database engine dan merupakan
fasilitas
utama
sistem
basis
data.
SQLServerAgent
bekerja
sama
dengan
MSSQLServer untuk membuat dan mengatur alert, tugas (job) multiserver atau lokal
serta
operator.
MS
DTC
mempunyai
fasilitas
untuk
mengijinkan
client
mengikutsertakan data yang berasal dari beberapa sumber pada satu transaksi.
Fasilitas terakhir adalah Microsoft Search yang merupakan engine guna pencarian
data full-text.
Dari keempat fasilitas Microsoft SQL Server, biasanya yang digunakan
hanyalah MSSQLServer yang merupakan engine utama sistem basis data, sedangkan
fasilitas lainnya seringkali tidak digunakan. Dari ketiga fasilitas selain MSSQLServer,
MSSQLAgent merupakan fasilitas yang dapat membantu administrator untuk
menjalankan tugas-tugas rutinnya secara otomatis.
Seperti telah dibahas pada bagian Pendahuluan, sebuah sistem basis data
pasti membutuhkan administrator yang harus selalu ada pada saat sistem bekerja. Hal
ini tentu akan menyulitkan bagi perusahaan yang bekerja 24 jam sehari 7 hari
seminggu untuk dapat mempunyai administrator yang selalu siap sedia setiap saat.
Untuk itu diperlukan adanya suatu fasilitas untuk menggantikan administrator pada
saat tidak berada di tempat. Guna menggantikan tugas administrator secara otomatis
inilah digunakan MSSQLAgent.
3. Performance Baseline
Agar sebuah sistem database dapat bekerja dengan optimal, maka dibutuhkan
sebuah standar untuk mengukur kinerja sistem yang sering disebut dengan
performance baseline. Performance baseline ini berupa suatu standar yang harus tetap
dipenuhi selama sistem bekerja. Sistem terus dimonitor sehingga jika ternyata kinerja
sistem atau status yang terukur berada di bawah standar performance baseline, maka
perlu dilakukan sesuatu untuk mengembalikan kinerja sistem menjadi optimal kembali.
Terdapat lima buah faktor yang digunakan untuk menentukan performance
baseline, yaitu : workload, throughput, system resources, optimization, contention.
Workload berhubungan dengan jumlah aktifitas yang terdapat pada sistem. Throughput
berhubungan dengan jumlah query yang terjadi pada periode tertentu. System
resources berhubungan dengan kapasitas perangkat keras yang dipunyai oleh sistem.
Optimization berhubungan dengan desain basis data serta aplikasi. Dan terakhir
contention berhubungan dengan kompetisi dari data yang berupa records.
Gambar 2. Faktor Performance Baseline
Sebelum dapat menentukan baseline performance, maka harus dilakukan
monitor terhadap unjuk kerja server dan menuliskan tujuan kinerja yang hendak
dicapai oleh sistem. Hal yang harus dilakukan contohnya adalah : mendefinisikan
parameter pada server untuk sumber daya yang dipunyai server, beban pekerjaan
yang dilakukan server serta unjuk kerja server, menentukan tujuan yang dikehendaki
untuk throughput dan waktu respon sistem, mendokumentasikan operasi yang terjadi
pada sistem serta melihat efek yang terjadi dari operasi tersebut, menganalisa
transaksi yang terdapat pada setiap basis data, mengidentifikasikan masalah-masalah
yang mempengaruhi unjuk kerja sistem.
Setelah melakukan monitor pada sistem selama beberapa waktu tertentu,
barulah dapat ditentukan performance baseline yang nantinya akan digunakan sebagai
standar kinerja sistem untuk waktu selanjutnya. Untuk melakukan monitor terhadap
kinerja sistem, terbagi menjadi tiga bagian yaitu system level monitoring, SQL Server
specific monitoring serta specific query performance. Pada system level monitoring,
pelaksanaan monitoring dilakukan pada perangkat keras, sistem operasi serta aplikasi
yang dijalankan. Sedangkan pada SQL Server specific monitoring, pelaksanaan
monitoring dilakukan pada aktivitas SQL Server serta konsistensi data.
Microsoft SQL Server yang berjalan di sistem operasi Windows NT/2000/2003
Server mempunyai beberapa fasilitas untuk melakukan monitoring. Pada system level
monitoring, terdapat Windows Event Viewer serta Windows Monitor yang dapat
digunakan untuk memonitor unjuk kerja perangkat keras, sistem operasi serta aplikasi
yang berjalan pada sistem operasi tersebut. Untuk SQL Server specific monitoring,
dapat digunakan window Current-Activity yang terdapat pada SQL Enterprise Manager,
perintah Transact-SQL dan system stored procedure serta SQL Profiler. Sedangkan
untuk specific query performance, pelaksanaan monitor dilakukan untuk setiap query
yang akan dianalisa, dan dilihat penggunaan index, waktu CPU untuk masing-masing
query serta I/O aktual yang digunakan. Untuk melakukan monitoring ini dapat
digunakan SQL Profiler, SQL Query Analyzer dan Index Tuning Wizard.
Gambar 3. Fasilitas Monitoring
Untuk masalah perangkat keras, SQL Server mempunyai fasilitas yang
berhubungan dengan Windows System Monitor yaitu dengan menambahkan counter.
Counter ini berupa suatu angka yang menyatakan unjuk kerja sistem basis data.
Berikut ini disajikan tabel yang memuat counter beserta dengan deskripsi serta nilai
yang seharusnya dicapai agar sistem bekerja dengan optimal.
Tabel 1. Definisi Counter Guna Monitoring Sistem
Jenis Counter
Memory: Available bytes
Deskripsi
Nilai Seharusnya
Memonitor jumlah byte tersedia yang
Lebih besar dari 5000 Kb. Jika lebih kecil
dapat digunakan untuk mengeksekusi
berarti memori fisik harus ditambahkan.
perintah.
Memory: Pages/sec
Memonitor jumlah page yang dibaca
Tidak boleh lebih besar dari nol terus
atau ditulis oleh harddisk untuk
menerus. Jika terjadi lebih dari nol, maka
mengatasi hard page faults.
Windows menggunakan paging file untuk
memenuhi permintaan memori.
Process: Page faults/sec/SQL
Memonitor page faults yang
Seharusnya bernilai kecil. Jika bernilai
Server instance
disebabkan oleh Windows 2000 yang
tinggi berarti terdapat proses paging dan
mengecilkan ukuran proses yang
trashing yang besar yang perlu diperiksa.
sedang dikerjakan.
Process: Working set / SQL
Memonitor jumlah memori yang
Lebih besar dari 5000 KB. Jika lebih kecil
Server instance
digunakan oleh proses yang
berarti tidak ada memori yang dapat
dilakukan SQL Server.
digunakan oleh SQL Server.
SQL Server: Buffer manager :
Memonitor persentase pages yang
Lebih besar dari 90 %, hal ini
Buffer cache hit ratio
terdapat pada buffer cache tanpa
menunjukkan jumlah page yang
membaca dari harddisk.
ditemukan di cache.
SQL Server: Buffer manager :
Memonitor jumlah pages pada buffer
Angka yang rendah menunjukkan proses
Total pages
cache termasuk database, pages
I/O yang sering dilakukan pada disk
yang bebas dan yang tercuri dari
sehingga perlu menambah ukuran
proses lain.
memori.
SQL Server: Memory manager:
Memonitor jumlah total memori
Jika bernilai tinggi terus menerus
Total server memory
dinamis yang digunakan server.
dibanding dengan jumlah memori fisik
yang tersedia, maka dibutuhkan memori
tambahan.
Processor: % Processor time
Memonitor persentase waktu yang
Lebih kecil dari 90 persen. Jika counter
dibutuhkan oleh processor untuk
menunjuk ke angka lebih tinggi, perlu
memproses non-idle thread.
melakukan pengurangan workload,
melakukan efisiensi workload atau
mengubah processor menjadi lebih baik /
menambah jumlah processor pada sistem
multiprocessor.
System: Context switches/sec
Memonitor jumlah perpindahan
Pada komputer yang mempunyai lebih
proses thread yang dilakukan
dari satu processor, jika angka menunjuk
processor dalam satu detik.
ke 8000 dan counter Processor: %
Processor time lebih dari 90%, maka
harus diaktifkan SQL Server fiber mode
scheduling.
System: Processor queue length
Memonitor jumlah thread yang
Tidak boleh lebih dari dua terus menerus.
sedang menunggu giliran processor
Jika terjadi, perlu melakukan
time.
pengurangan workload, melakukan
efisiensi workload atau mengubah
processor menjadi lebih baik / menambah
jumlah processor pada sistem
multiprocessor.
Processor: % Privileged time
Memonitor persentase waktu yang
Jika terjadi persentase yang signifikan
dibutuhkan processor untuk
dan counter harddisk juga tinggi, maka
mengeksekusi perintah kernel sistem
perlu meningkatkan unjuk kerja I/O
operasi, seperti proses permintaan
harddisk.
I/O SQL Server.
Processor: % User time
PhysicalDisk: % Disk time
Memonitor persentase waktu yang
Persentase yang tinggi menyatakan
dibutuhkan processor untuk
bahwa terdapat proses atau aplikasi yang
mengeksekusi proses user seperti
sedang dieksekusi dan menghalangi
pada SQL Server sendiri.
operasi SQL Server.
Memonitor persentase waktu yang
Lebih kecil dari 90 %.
dibutuhkan harddisk untuk melakukan
baca / tulis
PysicalDisk : Avg. disk queue
Memonitor jumlah rata-rata antrian
length
permintaan baca / tulis
PhysicalDisk: Disk reads / sec
Memonitor rata-rata operasi
Lebih kecil dari kapasitas subsystem
pembacaan disk.
harddisk.
Memonitor rata-rata operasi
Lebih kecil dari kapasitas subsystem
penulisan disk.
harddisk.
PhysicalDisk: Disk writes / sec
4. Implementasi
dan Pengujian
MSSQL
Agent
Lebih kecil dari dua kali jumlah spindle.
Guna Menjaga Baseline
Performance
Secara garis besar, tugas MSSQLAgent dapat dibagi menjadi dua yaitu
menjalankan suatu tugas (job) pada waktu yang telah ditentukan sebelumnya serta
mendeteksi adanya alert yang disebabkan oleh sesuatu kondisi pada SQL Server dan
melakukan tugas sehubungan dengan alert yang terjadi serta menginformasikan
kepada operator yang bertanggung jawab atas kondisi tersebut.
Agar dapat bekerja, terlebih dahulu MSSQLAgent harus diaktifkan, karena
secara umum pertama kali instalasi, MSSQLAgent dalam kondisi non-aktif. Untuk
mengaktifkan serta menggunakan MSSQLAgent dapat dilakukan melalui SQL
Enterprise Manager. Sebelum mendefiniskan tugas ataupun alert, sebaiknya dilakukan
pengisian operator. Operator ini akan menerima pesan dari MSSQLAgent setelah
selesai melakukan tugas pada waktu yang ditentukan atau setelah menerima alert
tertentu. Pesan dapat diterima melalui email ataupun menggunakan pengiriman Net
send jika operator berada pada komputer yang lain. Setelah membuat operator,
barulah dilakukan pendefinisian job dengan cara melakukan klik kanan pada SQL
Server Agent-New-Job.
Gambar 4. Pendefinisian Job pada MSSQLAgent
Pada pendefinisian job ini dapat ditentukan kapan sebuah job akan dijalankan yang
dapat berupa sekali waktu ataupun berulang dengan periode tertentu. Macam job yang
dapat dilakukan diantaranya adalah mengeksekusi perintah sistem, replikasi serta
menjalankan Transact-SQL.
Untuk mengimplementasikan penjagaan baseline performance, digunakan
kemampuan MSSQLAgent yaitu dapat menerima alert yang berasal dari kondisi yang
terjadi pada sistem. Agar memenuhi baseline performance, maka sistem harus selalu
dimonitor sehingga unjuk kerja selalu terjaga dan jika ada kesalahan, harus segera
diambil tindakan. Untuk inilah digunakan peran alert guna memonitor sistem dan
memberi pesan jika terjadi sesuatu seperti terjadi kesalahan, disk penuh dan lain-lain.
Setelah menerima pesan, MSSQLAgent dapat melakukan job dan/atau memberitahu
operator. Job ini berisi definisi tugas yang dapat dilakukan jika terjadi alert tersebut.
Untuk mendeteksi alert terlebih dahulu harus mendefinisikannya dengan
melakukan klik kanan pada SQL Server Agent-New-Alert. Disini dapat dipilih alert apa
saja yang ingin dideteksi atau dengan mendefinisikan nomor kesalahan yang mungkin
terjadi pada tempat yang disediakan. Setelah memilih jenis alert, dapat ditentukan job
apa yang seharusnya dilakukan serta siapa operator yang dihubungi. Dengan
mendefinisikan
sistem
alert
mengenai
kemungkinan-kemungkinan
terjadinya
kesalahan atau terjadinya performance yang lebih rendah daripada baseline
performance yang telah ditetapkan dan menentukan penanganan yang harus
dilakukan, maka tugas administrator dapat tergantikan jika administrator tidak berada
di tempat.
Berikut ini adalah pengujian dari implementasi MSSQLAgent untuk mendeteksi
adanya kekurangan stok pada sebuah sistem database perusahaan retail. Pertama kali
didefinisikan terlebih dahulu mengenai message yang akan dimonitor. Untuk
mendefinisikan message, digunakan menu Action-Manage SQL Server Messages.
Kemudian dibuat New Message. Message ini mempunyai nomor kesalahan 50001.
Gambar 5. Pendefinisian Message Guna Pengujian Alert
Setelah mendefinisikan message, kemudian dibuat alert untuk mendeteksi message
tersebut serta operator yang akan diberi informasi jika terjadi alert. Pada pendefinisian
alert ini, dimasukkan nomor kesalahan message yang telah dibuat yaitu 50001 serta
basis data yang akan dimonitor. Sedangkan operator dibuat untuk menerima informasi
dengan menggunakan Net send. Untuk dapat menggunakan email, memerlukan
Microsoft Exchange Server sebagai mail server.
Gambar 6. Pembuatan Alert Guna Menerima Message
Untuk membuat sistem menerima pesan kesalahan sehingga menimbulkan alert, dapat
digunakan stored procedure atau trigger yang mendeteksi jumlah barang tersedia serta
membandingkannya dengan minimum stok yang telah didefinisikan. Jika ternyata
jumlah barang lebih kecil dari minimum stok, maka harus dibangkitkan error dengan
perintah RAISERROR(no error, severity, state, parameter). Setelah pendefinisian,
dilakukan pengujian dengan melakukan transaksi pada kondisi jumlah stok lebih kecil
dari jumlah minimum, maka dalam waktu kurang dari 2 detik, akan muncul popup
pemberitahuan dengan menggunakan Net send pada komputer yang telah
didefinisikan sebagai administrator.
Gambar 7. Hasil Pengujian Pengiriman Net Send
5. Kesimpulan
Dalam sebuah sistem basis data haruslah ditentukan baseline performance
yang digunakan sebagai tolok ukur untuk mengetahui kinerja sistem apakah sudah
optimal. Dengan menggunakan MSSQLAgent dapat menggantikan administrator basis
data MS SQL Server jika tidak berada di tempat. Hal ini dimungkinkan karena adanya
fasilitas MSSQLAgent untuk mendeteksi kesalahan atau menurunnya unjuk kerja
sistem dan mengambil tindakan jika hal tersebut terjadi secara otomatis. Dari
pengujian, pesan yang diterima oleh operator setelah terjadi sesuatu alert hanya
beberapa detik dengan menggunakan Net send. Kelemahan MSSQLAgent adalah
tidak adanya kemampuan untuk mengirimkan pesan ke operator menggunakan mail
server selain Microsoft Exchange Server.
Daftar Pustaka
[1] Byrne, Jeffry L., “Microsoft SQL server : What Database Administrations Need to
Know”, Upper Saddle River, New Jersey, 1997.
[2] Iseminger, David, “Microsoft SQL server 2000 reference library : Database creation,
warehousing, and optimization”, Redmond, Washington, 2001.
[3] Papa, John, “Microsoft SQL Server 7.0 Programming Unleashed”, Indianapolis,
1999.
Download