Perancangan dan Pembangunan Sistem Failover Pada MySQL Menggunakan Heartbeat dan MySQL Native Replication untuk Menunjang Ketersediaan Data Online

dokumen-dokumen yang mirip
[PRAKTIKUM BASIS DATA TERDISTRIBUSI D3 TI UNS]

MODUL III REPLIKASI MULTI-MASTER (TWO-WAY)

IMPLEMENTASI REPLIKASI DATA SISTEM INFORMASI AKADEMIK STMIK PROFESIONAL MAKASSAR

Replikasi Database dengan SSL (Secure Socket Assalamualaikum Warahmatullahi Wabarakatu

Gambar 4.8 Topologi replikasi basis data. Gambar 4.9 Konfigurasi IP pada master dan slave

REPLIKASI. D3 Komputer dan Sistem Informasi Sekolah Vokasi UGM Praktikum Basis Data 2 - rizkiaf

MODUL II REPLIKASI NATIF (ONE-WAY) MySQL

Gambar Notifikasi via

PEMANFAATAN FAILOVER CLUSTER SERVER GUNA RECOVERY SISTEM PADA PT.LINTAS DATA PRIMA. Naskah Publikasi. diajukan oleh Nanang Purnomo

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB V IMPLEMENTASI DAN PENGUJIAN

PENERAPAN TEKNOLOGI REPLIKASI PADA BASIS DATA TERDISTRIBUSI BIMAS HINDU KEMENAG PROVINSI SUMATERA SELATAN

FAILOVER CLUSTER SERVER DAN TUNNELING EOIP UNTUK SISTEM DISASTER RECOVERY

Sistem Manajemen Basis Data

IMPLEMENTASI DISTRIBUTED DATABASE SEBAGAI DISASTER RECOVERY CENTER. Canggih Ajika Pamungkas, Edy Susanto

SISTEM TERDISTRIBUSI TUGAS 3 REPLIKASI DATABASE MASTER - SLAVE

SISTEM INFORMASI TERDISTRIBUSI PADA MANAJEMEN INVENTARISASI PERALATAN LABORATORIUM

Pembandingan Metode Backup Database MySQL antara Replikasi dan MySQLDump

PENGEMBANGAN SERVER SIAKAD UNIVERSITAS DEHASEN BENGKULU MENGGUNAKAN HIGH AVAILABILITY CLUSTERING DAN MYSQL DATABASE REPLICATION

MODUL PRAKTIKUM BASIS DATA TEKNIK INFORMATIKA UIN SUNAN KALIJAGA YOGYAKARTA 2011 PENGENALAN DATABASE MYSQL

VIEW : Tabel Virtual VIEW 5/29/2017

BAB III PERANCANGAN SISTEM

PRAKTIKUM BASIS DATA TERDISTRIBUSI MODUL VI FAILOVER CLUSTER

PEMBANGUNAN SISTEM OPTIMASI ADMINISTRASI BLOCKING DOMAIN STUDI KASUS : PT TELEKOMUNIKASI INDONESIA

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB 4 IMPLEMENTASI DAN EVALUASI. dan perangkat lunak yang digunakan. hasil rancangan yang ada. Halaman web dibuat dengan basis php


Bab V Pengujian (Testing)

PRAKTIKUM BASIS DATA TERDISTRIBUSI MODUL 6 REPLIKASI NATIF (ONE-WAY) MYSQL. Oleh: ANISA ISTIQOMAH ABDURRACHMAN KELAS 6C

Bab 4 Pembahasan dan Hasil

6/26/2011. Database Terdistribusi. Database Terdesentralisasi

BAB 5 IMPLEMENTASI DAN PENGUJIAN

Panduan Linux Failover & High Availability Pada Ubuntu Server Muhammad Imam Hanafi

E-trik Ajax. Database MySQL. Dedi Alnas

Bab 3 Metode Perancangan 3.1 Tahapan Penelitian

BAB 4 PERANCANGAN DAN EVALUASI

Bab 4 Hasil dan Pembahasan


SISTEM KEAMANAN PADA MYSQL

BAB 4. PERANCANGAN.

Sistem Monitoring Spesifikasi dan Utilitas Host di Jaringan Komputer Berbasis Web

PERANCANGAN HIGH AVAILABILITY SYSTEM PADA SISTEM INFORMASI AKADEMIK UNIVERSITAS MUHAMMADIYAH SEMARANG BERBASIS MYSQL CLUSTER

Rancang Bangun Network Mapping Sistem Monitoring Jaringan. Vincentius Bima Anong Dian Hutama


Otomatisasi Failover pada Standby Database menggunakan Internet Control Message Protocol (ICMP)

BAB IV ANALISIS DAN PERANCANGAN SISTEM. hasil analisis ini digambarkan dan didokumentasiakan dengan metodologi

IMPLEMENTASI DAN PENGUJIAN

BAB I PENDAHULUAN Latar Belakang

1. Pendahuluan Latar Belakang

IMPLEMENTASI MIRRORING DATABASE UNTUK FAULT TOLERANCE PADA POSTGRESQL SERVER MENGGUNAKAN METODE LOGGING

PHP + MySQL M. RUDYANTO ARIEF, MT

DATABASE MYSQL DENGAN PHP

Secara umum, eksploit dapat dibagi atas dua jenis, yaitu eksploit lokal (local exploit), dan eksploit remote (remote exploit).

BAB 3 ANALISIS DAN PERANCANGAN Analisis Sistem Yang Sedang Berjalan

BAB 4 PERANCANGAN DAN IMPLEMENTASI. operasi Linux Fedora Core 4 dengan menggunakan bahasa pemrograman Java.

1. TUJUAN Mahasiswa dapat memahami langkah-langkah koneksi PHP dengan MySQL Mahasiswa dapat memahami pengambilan record dari database

ADMINISTRASI USER. I. Konfigurasi User Root mysql> Show Databases; mysql> Use Mysql; mysql> Show Tables; mysql> Select user,host,password from user;

BAB III PERANCANGAN SISTEM

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

Pemrograman Web. Koneksi dan Manipulasi Basis Data. 7 Adam Hendra Brata

MySQL J A M K E T I G A

Manajemen User Pada MySQL

BAB IV IMPLEMENTASI DAN PENGUJIAN

TSI Perbankan REPLIKASI

SHARE DATA & TRANSACTION

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB IV HASIL DAN UJI COBA

Pemrograman Web Lanjut 2017

BAB IV HASIL DAN PEMBAHASAN

SISTEM KOMPUTERISASI PENGOLAHAN BUKU INDUK PEGAWAI PADA UPT DINAS PENDIDIKAN PEMUDA DAN OLAHRAGA KECAMATAN BANJARMANGU BERBASIS PHP DAN MYSQL

Manajemen Keberlangsungan Tugas Bank Indonesia (MKT-BI) Pengujian Rencana Keberlangsungan Tugas (RKT) dan Rencana Pemulihan TI

BAB III PERENCANAAN KEBUTUHAN DAN PERANCANGAN

Analisis Performa Load Balancing DNS Round Robin dengan Linux Virtual Server pada Webserver Lokal

ABSTRAK. vi Universitas Kristen Maranatha

IMPLEMENTASI DAN TESTING

BAB 4 IMPLEMENTASI DAN EVALUASI

BAB IV PENGUJIAN DAN ANALISIS HASIL IMPLEMENTASI

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM

BAB IV IMPLEMENTASI DAN PENGUJIAN

APLIKASI VIDEO ON DEMAND BERBASIS WEB

PERANCANGAN DAN IMPLEMENTASI BASIS DATA MENGGUNAKAN DB Designer PERANCANGAN DAN IMPLEMENTASI BASIS DATA MENGGUNAKAN MYSQL

BASIS DATA TERDISTRIBUSI

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB III ANALISA KEBUTUHAN DAN PERANCANGAN SISTEM

BAB IV HASIL DAN UJI COBA

BAB IV PERANCANGAN SISTEM

STUDI DAN EKSPLORASI TEKNIK FAILOVER CLUSTER UNTUK MEMINIMALKAN DOWNTIME PADA WEB SERVER

PRAKTIKUM SISTEM BASIS DATA

BAB 2 TINJAUAN PUSTAKA

Mahasiswa mengetahui & memahami mengenai DML, DCL di SQL. (Isi_Field_1, Isi_Field_2,, Isi_Field_N) ;

Mudafiq Riyan Pratama

BAB III ANALISA DAN PERANCANGAN SISTEM. permasalahan yang ada sebagai dasar untuk membuat sebuah solusi yang

BAB IV PENGUJIAN DAN ANALISIS

MySQL Databases. Dasar-dasar MySQL dan Implementasi MySQL kedalam pemrograman PHP. Jakarta, 16 April 2011 Oleh: M. Awaludin, S.Kom

BAB IV PERANCANGAN. Daftar Account Customer. Pesan LOGIN GAGAL! Ulangi Lagi. Input Booking Service. Simpan Data ke Database. Cetak Nota Boking Service

IMPLEMENTASI EYE OS MENGGUNAKAN METODE LOAD BALANCING DAN FAILOVER PADA JARINGAN PRIVATE CLOUD COMPUTING DENGAN LAYANAN IAAS DAN SAAS

IMPLEMENTASI CLUSTERING DATABASE SERVER MENGGUNAKAN PGCLUSTER UNTUK OPTIMALISASI KINERJA SISTEM BASIS DATA

BAB IV IMPLEMENTASI DAN PENGUJIAN

Transkripsi:

Perancangan dan Pembangunan Sistem Failover Pada MySQL Menggunakan Heartbeat dan MySQL Native Replication untuk Menunjang Ketersediaan Data Online Prajna Deshanta Ibnugraha Jurusan Teknologi Informasi, Politeknik Telkom Bandung prj@politekniktelkom.ac.id Abstrak Sistem basis data merupakan unsur penting untuk membangun aplikasi online. Aplikasi online tidak bekerja dengan baik jika sistem basis data terjadi kegagalan. Solusi untuk masalah ini adalah dengan menggunakan sistem failover. Sistem failover digunakan untuk mendukung ketersediaan data dengan sistem basis data cadangan jika sistem basis data utama sedang bermasalah. Sistem failover realtime di MySQL dapat dibangun dari kombinasi antara hearthbeat dan MySQL native. Pengujian failover dan sinkronisasi pada sistem yang dibangun dengan cara mematikan server basis data utama. Response time query digunakan sebagai parameter pengujian performansi. Dari hasil pengujian didapat bahwa sistem single server dengan sistem server berbasis failover memiliki performansi yang tidak terlalu jauh. Sehingga dapat disimpulkan bahwa sistem failover model ini layak digunakan sebagai solusi kegagalan server. Kata Kunci: failover, basis data, replikasi Abstract Abstract Database system is important element to build online application. Online application does not work properly if the database system gets failure. The solution for the problem is using failover system. Failover system is used for supporting availability of data with backup database system if the main database system is down. Realtime failover system in MySQL can be built from combination between hearthbeat and MySQL Native Replication. Failover and synchronization functions can be tested by turning off the main of database server. Response time query is used for performance testing parameter. From the testing, single server system and server based failover system has a small performance differences. It can be concluded that this failover system model is feasible to be used as a solution for server failure. Keywords: failover, database, replication 1. Pendahuluan Penggunaan basis data MySQL sebagai tempat pemyimpanan data digital yang besar dan terstruktur memudahkan pengguna dalam pencarian data[1]. Oleh karena itu penggunaan basis data menjadi hal yang sangat penting dalam pembangunan aplikasi online. Sistem aplikasi online memudahkan customer untuk mengakses layanan tanpa terbatas waktu[2]. Namun harus ditunjang dengan ketersediaan data yang terbatas waktu dan siap setiap saat. Masalah muncul ketika terjadi kegagalan server sistem basis data. Oleh karena itu perlu mekanisme penanganan kegagalan (failover)[3]. Heartbeat merupakan aplikasi yang dapat dimanfaatkan untuk melakukan failover. Heartbeat dapat dikombinasikan dengan replikasi native pada MySQL sehingga menghasilkan 2 sistem basis data dengan identik dan dapat saling tersinkronisasi. 2. Arsitektur Sistem A. Topologi Sistem Gambar 1. Topologi sistem 102

Kebutuhan perangkat keras: 1) Server aplikasi online 2) Server DB1 dengan 2 NIC 3) Server DB2 dengan 2 NIC 4) Switch Kebutuhan perangkat lunak: 1) MySQL 2) Hearthbeat TABEL 1 PENGALAMATAN SISTEM Perangkat IP Address Eth0 DB1 192. 168.1.1/29 Eth0 DB2 192. 168.1.2/29 IP virtual 192. 168.1.3/29 Eth0 Application Server 192.168.1.4/29 Eth1 DB1 192.168.1.9/30 Eth1 DB2 192.168.1.10/30 B. Cara Kerja Cara kerja sistem failover dan replikasi yang akan dibangun ditunjukkan pada Gambar 2. Mulai Aplikasi online akses ke DB Aplikasi online mengakses ke basis data MySQL menggunakan alamat IP Virtual yang dibentuk oleh hearthbeat. Jika server utama yaitu DB1 tidak bermasalah, maka query basis data akan berjalan normal dan server utamajuga akan mereplikasi setiap perubahan datanya ke server cadangan yaitu DB2. Namun jika server utama terjadi masalah maka IP virtual akan terbentuk di server cadangan (DB2). 3. Pembangunan Sistem A. Heartbeat Heartbeat difungsikan untuk failover dengan membentuk IP virtual. File konfigurasi heartbeat adalah : a) ha.cf logfile /var/log/ha-log logfacility local0 keepalive 2 deadtime 5 initdead 120 bcast eth0 udpport 694 auto_failback on node DB1 node DB2 DB1 = hostname server utama basis data DB2 = hostname server basis data IP Virtual b) haresources DB1 IPaddr::192.168.1.3/29/eth0 apache mysql Server utama hidup Ya Query DB Tidak Server Backup 192.168.1.3 = IP Address virtual yang digunakan sebagai IP Address database untuk aplikasi eth0 = NIC yang digunakan untuk komunikasi failover Replikasi ke Backup Query DB c) authkeys auth 2 2 sha1 test-ha Selesai Gambar 2. Alur kerja sistem Auth 2 = kunci yang digunakan untuk mengizinkan paket keluar 2 sha1 = jenis autentikasi yang digunakan test-ha = simple shared key yang digunakan oleh server 103

B. MySQL Native Replication MySQL native replication digunakan untuk melakukan sinkronisasi data antara DB1 dengan DB2[4]. Konfigurasi dilakukan di mesin DB1 dan DB2. a) Konfigurasi my.cnf DB1 log-bin=mysql-bin # identitas penamaan untuk server server-id = 1 #Untuk mencegah infinite loops antar server replicate-same-server-id = 0 #jumlah total server database replikasi auto-increment-increment = 2 #nilai titik awal dari auto_increment server auto-increment-offset = 1 #alamat IP address dari server master-host = 192.168.1.10 #nama user login database server master-user = root #password database server master-password = rahasia #waktu yang dibutuhkan database server untuk mencoba connect ke database server jika koneksi terputus master-connect-retry = 60 direplikasi ke server binlog_do_db = contohdb direplikasi ke server binlog_do_db = cthdb direplikasi dari server replicate-do-db = contohdb direplikasi dari server replicate-do-db = cthdb b) Konfigurasi my.cnf DB2 log-bin=mysql-bin ##identitas penamaan untuk server server-id = 2 #Untuk mencegah infinite loops antar server replicate-same-server-id = 0 #jumlah total server database replikasi auto-increment-increment = 2 #nilai titik awal dari auto_increment dari server auto-increment-offset = 2 #alamat IP address dari server master-host = 192.168.1.9 #nama user login database server master-user = root #password database server master-password = rahasia #waktu yang dibutuhkan database server untuk mencoba connect ke database server jika koneksi terputus master-connect-retry = 60 direplikasi ke server binlog_do_db = contohdb direplikasi ke server binlog_do_db = cthdb direplikasi dari server replicate-do-db = contohdb direplikasi dari server replicate-do-db = cthdb c) Konfigurasi MySQL DB1 mysql>flush TABLES WITH READ LOCK; mysql>show MASTER STATUS; Hasil dari perintah SHOW MASTER STATUS akan menampilkan kolom File dengan isi mysql-bin.000019 dan kolom Position dengan isi 106. Isi kolom File tersebut akan dimasukkan dalam parameter MASTER_LOG_FILE di server DB2. Sedangkan isi kolom Position akan dimasukkan ke dalam parameter MASTER_LOG_POS di server DB2. Kemudian lanjutkan dengan perintah berikut : mysql>unlock TABLES; mysql>load DATA FROM MASTER; mysql>slave STOP; Untuk perintah selanjutnya parameternya diisi dari hasil perintah SHOW MASTER STATUS di server DB2: mysql>change MASTER TO MASTER_HOST='192.168.1.10',MASTER_USER=' root',master_password='rahasia',master_l OG_FILE='mysqlbin.000003',MASTER_LOG_POS=106; mysql>slave START; 104

d) Konfigurasi MySQL DB2 mysql>flush TABLES WITH READ LOCK; mysql>show MASTER STATUS; mysql>unlock TABLES; Hasil dari perintah SHOW MASTER STATUS akan menampilkan kolom File dengan isi 'mysql-bin.000003 dan kolom Position dengan isi 106. Isi kolom File tersebut akan dimasukkan dalam parameter MASTER_LOG_FILE di server DB1. Sedangkan isi kolom Position akan dimasukkan ke dalam parameter MASTER_LOG_POS di server DB1. Kemudian lanjutkan dengan perintah berikut : 2) Sinkronisasi data. Salah satu skenario pengujian yang dapat dilakukan adalah dengan melakukan penambahan data pada DB1. Ketika data ditambahkan di DB1 maka data akan di DB2 akan bertambah secara otomatis dan identik dengan data yang ditambahkan di DB1. Karena replikasi yang dirancang adalah master to master replication maka pengujian sebaliknya perlu dilakukan dengan menambahkan data melalui DB2 sehingga data di DB1 juga akan bertambah dan bersifat identik dengan data DB2 yang ditambahkan. mysql>load DATA FROM MASTER; mysql>slave STOP; Untuk perintah selanjutnya parameternya diisi dari hasil perintah SHOW MASTER STATUS di server DB1: mysql>change MASTER TO MASTER_HOST='192.168.1.9',MASTER_USER='r oot',master_password='rahasia',master_lo G_FILE='mysqlbin.000019',MASTER_LOG_POS=106; mysql>slave START; 4. Pengujian Sistem A. Skenario Pengujian Sistem. Skenario pengujian sistem dilakukan pada dua kondisi berikut: 1) Failover. Salah satu skenario pengujian yang dapat dilakukan adalah dengan mematikan mesin DB1. Sehingga layanan basis data akan dilakukan oleh mesin DB2. Ketika mesin DB1 hidup, maka layanan basis data akan kembali ke mesin DB1. Gambar 3. Topologi Skenario Failover Gambar 4. Topologi skenario replikasi dan sinkronisasi data Hasil pengujian sistem untuk skenario diatas adalah sebagai berikut [5]: a. Skenario Failover Ketika mesin server DB1 dimatikan, penggunaan aplikasi online berbasis database MySQL tetap bisa berjalan karena kebutuhan data berhasil dilayani oleh server DB2. b. Skenario Sinkronisasi Data Ketika mesin server DB1 masih dalam kondisi mati dan kebutuhan data dilayani oleh server DB2. Input data dari aplikasi tetap berhasil dijalankan dan data tersimpan di server DB2. Selanjutnya ketika mesin server DB1 dan layanan MySQL kembali hidup, server DB2 akan melakukan replikasi ke server DB1 secara otomatis. Setelah dilakukan pengecekan menggunakan perintah SELECT pada isi basis data, ternyata data antara server DB1 dan DB2 telah berhasil sinkron. B. Pengujian Kinerja Pengujian kinerja dilakukan setelah sistem yang dibangun berjalan dengan baik. Parameter yang diuji adalah response tine query. Berikut hasil 105

pengujian response time query yang telah dilakukan dalam satuan detik: TABEL 2 HASIL PENGUJIAN RESPONSE TIME QUERY TANPA REPLIKASI DAN FAILOVER No Jenis Jumlah Rata-rata RTTRF 1 Select 15 kali 0,0917 2 Update 10 kali 0,0836 3 Delete 2 kali 0,0858 4 Insert 3 kali 0.0891 TABEL 3 HASIL PENGUJIAN RESPONSE TIME QUERY KONDISI REPLIKASI DAN FAILOVER No Jenis Jumlah Rata-rata RTKRF 1 Select 15 kali 0,1063 2 Update 10 kali 0,0977 3 Delete 2 kali 0,0914 4 Insert 3 kali 0,1067 RTTRF : Response Time Tanpa Replikasi dan Failover RTKRF : Response Time Kondisi Replikasi dan Failover Pengujian dilakukan sebanyak 30 kali dengan 4 jenis eksekusi yaitu select, update, delete, dan insert. Untuk rata-rata response time masingmasing kondisi adalah sebagai berikut: 5. Simpulan Berdasarkan hasil pengujian dapat diambil beberapa kesimpulan yaitu : a. Heartbeat dapat dikombinasikan dengan Native Replication MySQl sehingga dihasilkan sistem failover dengan data identik antara 2 server. b. Berdasarkan hasil pengujian, response time query dari sistem basis data yang menggunakan failover dan replikasi dengan single server basis data mempunyai perbedaan yang sedikit. Daftar Pustaka : [1] W. Luke, T. Laura, MySQL Tutorial : A Concise Introduction to The Fundamentals of Working with MySQL, MySQL Press, 2004. [2] Kadir, Abdul, Membuat Aplikasi Web dengan PHP + Database MySQL. Andi, 2009. [3] Oracle Documentation, Failover and System Reliability, [online], (http://docs.oracle.com/cd/e12890_01/ales/docs32/h owto/failover.html, diakses tanggal 1 Juni 2013 [4] MySQL Documentation, How to Set Up Replication [5],[online], (http://dev.mysql.com/doc/refman/5.1/en/replicationhowto.html, diakses tanggal 1 Juni 2013 ) [6] Sahara. Soffa, D.I. Prajna, M. Barja Sanjaya, Implementasi Database Failover System Menggunakan Master To Master Replication (Studi Kasus Apotek Canggu Farma), Politeknik Telkom 2012 TABEL 4 RATA-RATA RESPONSE TIME TIAP KONDISI PENGUJIAN Kondisi Rata-Rata (detik) RTTRF 0,0876 RTKRF 0,1005 Selisih response time query dengan RTKRF adalah = AVR(RTTRF) AVR(RTKRF) = 0,0876 0,1005 = 0,0130 detik Jadi perbedaan response time dengan jenis query dengan besar data yang sama persis antara sistem basis data tanpa replikasi dan failover dengan sistem basis data menggunakan replikasi dan failover adalah 0,0130 detik. Jadi perbedaan response time kondisi tersebut kecil. 106