Anda di halaman 1dari 11

MAKALAH

IMPLEMENTASI MySQL CLUSTER PADA BASIS DATA TERDISTRIBUSI

Disusun oleh :

Devi Nuraliza
Titin Hartini
Iwa Sutrisna
Deva Alfiana

UNIVERSITAS MANDIRI SUBANG


ABSTRAK

Perusahaan harus memiliki sistem infomasi yang lengkap dan mudah diakses oleh
siapapun. Dengan adanya sistem informasi itu perusahaan menunjukkan kredibilitasnya untuk
go public dan untuk lebih dikenal oleh khalayak umum. Dalam praktiknya sistem informasi itu
ketika diakses oleh client maupun khalayak umum kadang terjadi kegagalan. Itu dikarenakan
karena di sisi server terjadi failure. Kegagalan atau failure itu sendiri disebabkan karena server
mati dan tidak ada backup dari server lain yang langsung menggantikan ketika server utama
mati. Salah satu solusi untuk mengatasi masalah diatas adalah dengan menggunakan teknologi
MySQL Cluster. Itu dikarenakan di dalam teknologi MySQL Cluster terdapat replikasi database
juga terdapat sistem yang mampu mengatasi failure sistem database itu sendiri.

Kata kunci : Cluster Server, Basis Data Terdistribusi, MySQL Cluster

ABSTRACT

The Companies must have a complete information system and easily accessible by
anyone. With the company's information system that shows credibility to go public and to better
known by the general public. In practice the information system when it is accessed by the
client and the general public sometimes failure. That is because failure occurred on the server
side. Failure or failure caused by the server itself dies and there is no backup from another
server when the primary server directly replace dead. One solution to overcome the above
problems is to use the MySQL Cluster technology. That is because in the MySQL Cluster
technology there are also database replication system capable of dealing with failure, the
database system itself.

Keywords : Cluster Server, Distributed Database, MySQL Cluster


PENDAHULUAN menggantikan ketika server utama mati.
Oleh karena itu penyimpanan database yang
Sebuah instansi atau perusahaan
baik harus bersifat high availability.
yang namanya cukup dikenal luas oleh
Salah satu solusi untuk mengatasi
berbagai pihak pada umumnya telah
masalah diatas adalah dengan menggunakan
terdapat Sistem Informasi yang cukup
teknologi MySQL Cluster. Itu dikarenakan
memadai. Sistem informasi itu sendiri
di dalam teknologi MySQL Cluster terdapat
digunakan untuk menunjang kredibilitas
replikasi database juga terdapat sistem yang
sebuah perusahaan itu sendiri dan juga
mampu mengatasi failure sistem database
untuk mempermudah client dalam mencari
itu sendiri. Oleh karena itu dengan
info dan seluk beluk perusahaan itu itu
implementasi MySQL cluster ini
sendiri. Dengan adanya sistem informasi
diharapkan sistem penyimpanan database
yang komplek itu dibutuhkan penyimpanan
itu bersifat high availability. Sehingga
database untuk menunjang berjalannya
apabila terjadi sistem failure pada server
sistem informasi.
utama bisa langsung digantikan dengan
Dalam kapasitasnya sebagai sebuah
secondary server.
perusahaan tentunya perusahaan harus
memiliki sistem infomasi yang lengkap dan
MATERI DAN METODE
mudah diakses oleh siapapun. Dengan
adanya sistem informasi itu perusahaan 2.1 Distributed Database
menunjukkan kredibilitasnya untuk go
Basis data terdistribusi (Distributed
public dan untuk lebih dikenal oleh
Database) adalah kumpulan database yang
khalayak umum. Di dalam sistem informasi
disimpan di banyak komputer pada lokasi
itu terdapat berbagai macam info tentang
yang berbeda-beda dan menampilkan ke
perusahaan itu sendiri. Misalnya, profile,
user sebagai single database. Dalam sebuah
struktur organisasi, produk yang ditawarkan
database terdistribusi, database disimpan
, promo dan pengumuman pengumuman
pada beberapa komputer. Komputer-
yang berhubungan dengan perusahaan
komputer dalam sebuah sistem terdistribusi
tersebut.
berhubungan satu sama lain melalui
Dalam praktiknya sistem informasi
bermacam-macam media komunikasi
itu ketika diakses oleh client maupun
seperti high-speed buses atau telephone
khalayak umum kadang terjadi kegagalan.
line.
Itu dikarenakan karena di sisi server terjadi
Sebuah sistem database
failure. Kegagalan atau failure itu sendiri
terdistribusi berisikan sekumpulan site, di
disebabkan karena server mati dan tidak ada
mana tiap-tiap site dapat berpartisipasi
backup dari server lain yang langsung
dalam pengeksekusian transaksi-transaksi
yang mengakses data pada satu site atau dapat terbagi ke beberapa mesin dan pada
beberapa site. Tiap-tiap site dapat saat aplikasi berjalan, semua mesin yang
memproses transaksi lokal yaitu sebuah menyimpan data tersebut dianggap sebagai
transaksi yang mengakses data pada satu satu kesatuan. Metode clustering seperti ini
site di mana transaksi telah ditentukan. sangat baik untuk loadbalancing dan
Sebuah site juga dapat mengambil bagian penanganan system failure karena
dalam mengeksekusi transaksi global yaitu kemampuan tiap mesin akan digunakan dan
transaksi yang mengakses data pada site jika ada salah satu mesin yang mengalami
yang berbeda di mana transaksi telah failure maka sistem tidak akan langsung
ditentukan, atau transaksi yang mengakses terganggu karena mesin lain akan tetap
data pada beberapa site yang berbeda. berfungsi. Kemampuan clustering
2.2 Database Cluster memungkinkan sebuah database tetap
hidup dalam waktu yang lama.
Database clustering adalah
2.3 MySQL Cluster
kumpulan dari beberapa server yang berdiri
sendiri yang kemudian bekerjasama sebagai MySQL Cluster merupakan sebuah
suatu sistem tunggal. Saat ini aplikasi tipe basis data (database) yang dapat
database semakin berkembang, baik dalam beroperasi dalam ukuran data yang relatif
hal kegunaan, ukuran, maupun besar (maksimal dalam skala beberapa ratus
kompleksitas. Hal ini secara langsung gigabyte). MySQL Cluster adalah sebuah
berdampak pada server database sebagai teknologi baru untuk memungkinkan
penyedia layanan terhadap akses database, clustering di dalam memory database dalam
konsekuensi dari semua itu adalah beban sebuah sistem share-nothing. Arsitektur
database server akan semakin bertambah share-nothing mengijinkan sistem dapat
berat dan mengakibatkan kurang bekerja dengan hardware/perangkat keras
optimalnya kinerja dari server tersebut. yang sangat murah, dan tidak membutuhkan
Oleh karena itu diperlukan perangkat keras dan lunak dengan
perancangan yang tepat dan handal dalam spesifikasi khusus. Arsitektur tersebut juga
membangun database server. Database handal karena
pada masa sekarang ini dituntut agar dapat masing-masing komponen mempunyai
berjalan dengan cepat, mempunyai memory dan disk tersendiri.
kehandalan dan keseterdiaan yang tinggi, MySQL Cluster menggabungkan
dengan clustering database yang disimpan MySQL Server biasa dengan sebuah mesin
penyimpanan in-memory tercluster yang
dinamakan NDB. NDB berarti bagian dari
suatu rangkaian yang dikhususkan sebagai
mesin penyimpanan, sedangkan MySQL HASIL DAN PEMBAHASAN
Cluster diartikan sebagai kombinasi atau
gabungan dari MySQL dan mesin 3.1 Implementasi Sistem
penyimpanan yang baru tersebut. 3.1.1 Perancangan MySQL Cluster
2.4 Arsitektur MySQL Cluster
Dalam perancangan ini dibutuhkan
MySQL Cluster merupakan sebuah tiga server. Server pertama untu
database yang menggunakan arsitektur Manajement Server Node, server kedua
shared-nothing dan antarmuka SQL yang untuk Data Node dan server ketiga MySQL
telah umum digunakan. Sistem database ini Server Nodes. Management Server Nodes,
terdiri dari beberapa node yang dapat digunakan untuk mengendalikan
didistribusikan ke beberapa perangkat keras konfigurasi sistem ketika startup. Selain itu,
dan ke beberapa wilayah/zona yang berbeda node ini juga dapat digunakan sebagai
sekaligus untuk tetap menjaga ketersediaan pengidentifikasi setiap perubahan setting
data meskipun jaringan ataupun salah satu yang terjadi pada cluster. Data Nodes,
node sedang mengalami kegagalan digunakan untuk menyimpan semua data
(failure). Ada tiga node yang menyusun yang menjadi milik MySQL Cluster. Semua
MySQL Cluster, yakni: data direplikasi di node-node ini. MySQL
1. Data Nodes, digunakan untuk Server Nodes, berfungsi sebagai pintu akses
menyimpan semua data yang menjadi untuk masuk ke dalam node-node data yang
milik MySQL Cluster. Semua data tercluster. Management Server Node dan
direplikasi di node-node ini. Data Node dihubungkan tujuannya agar
2. Management Server Nodes, digunakan bisa terjadi replikasi data antara kedua
untuk mengendalikan konfigurasi server tersebut dan juga berfungsi untuk
sistem ketika startup. Selain itu, node mengatasi kegagalan sistem database pada
ini juga dapat digunakan sebagai salah satu sisi server agar server yang lain
pengidentifikasi setiap perubahan bisa menggantikan tugas server yang
setting yang terjadi pada cluster. lainnya.
3. MySQL Server Nodes, berfungsi Agar perancangan itu bisa
sebagai pintu akses untuk masuk ke dilakukan dengan baik digunakan teknologi
dalam node-node data yang ter-cluster. MySQL Cluster. Pada tahapan pembuatan
sistem cluster dibagi tiga bagian utama
yaitu Management Server Node, Data Node
dan MySQL Server Nodes. Pengambaran
sistem secara umum dapat dilihat pada
gambar 3.1 :
Mulai

Installasi Semua
Mesin

Konfigurasi
Konfigurasi Konfigurasi
Management
Node B Node A
Server Note

Isi mycnf

Isi configini Isi mycnf


Gambar 3. 1 Gambaran Umum
Perancangan Sistem

Dari gambar tersebut Data Node Melakukan Melakukan Melakukan


dan MySql Node digabungkan menjadi satu Installasi Start Up Installasi

Node. Kemudian untuk menghubungkan


Node A dan Node B dibutuhkan
Management Server Node. Jadi fungsi Selesai

Gambar 3. 2 Diagram Alir Proses


Konfigurasi Perangkat Keras
utama Management Server Node adalah
menghubungkan kedua node tersebut
3.1.2 Tahap-Tahap Installasi MySQL
sehingga fungsi dari MySQL cluster itu
Cluster
sendiri dapat berjalan dengan fungsi
3.1.2.1 Tahap Instalasi Data dan SQL
sebagai replikasi data dan high availability.
node di node1 dan node2
Inti dari konfigurasi Mysql cluster
Pada masing-masing node yang
adalah menginstal mysql cluster secara
ditunjuk untuk menjadi rumah data atau
manual, bukan langsung menginstal dari
node SQL (dalam kasus node01 dan
paket yang tersedia di repository yang
node02), melakukan langkah-langkah
sudah disediakan oleh linux. Tetapi berbeda
berikut sebagai user root sistem :
halnya ketika kita memakai windows, cara
1. Membuat grup MySQL pengguna baru,
menginstal bisa secara manual maupun
dan kemudian menambahkan user
secala langsung dengan menggunakan .exe
MySQL :
nya. Konfigurasi ini sendiri terbagi menjadi
shell> groupadd mysql
tiga yaitu: pengaturan konfigurasi di sisi
Management Server Node, pengaturan shell> useradd-g mysql mysql
konfigurasi 2. Mengubah lokasi ke direktori yang
di sisi Node A dan pengaturan di sisi Node berisi file yang didownload,
B. Berikut adalah Flowchartnya : membongkar arsip, dan menciptakan
symlink ke direktori mysql bernama
mysql. Perhatikan bahwa file yang memerlukan manajemen server MySQL
sebenarnya dan nama direktori Cluster (ndb_mgmd), kami berasumsi
bervariasi sesuai dengan jumlah cluster bahwa telah menempatkan mysql-cluster-
versi MySQL. gpl-7.1.5-linux-i686-glibc23.tar.gz di /var /
shell> cd / var / tmp shell> tar-C / tmp. Sistem sebagai root melakukan
usr / local- langkah-langkah sebagai berikut untuk
xzvf mysql-cluster-gpl-7.1.5-linuxx86_ menginstal ndb_mgmd dan ndb_mgm pada
64-glibc23.tar.gzshell> host Cluster.
ln-s / 1. Ubah lokasi ke / var / tmp direktori, dan
usr/local/mysql-cluster-gpl-7.1.5- ekstrak ndb_mgm dan ndb_mgmd dari
linux-i686-glibc23 arsip ke direktori yang sesuai seperti /
/ usr / local / mysql shell> export usr / local / bin :
PATH = $ PATH: shell> cd / var / tmp shell> tar-
/ usr / local / mysql / bin shell> echo zxvf mysql-
"export PATH = \ cluster-gpl-7.1.5-linux-i686-glibc23.tar.gz
$ PATH: / usr / local / mysql shell> cd / usr/local/mysql- cluster-gpl-
/ 7.1.5-linux-i686-glibc23
bin">> / etc / bash.bashrc shell> cp bin / ndb_mgm * /usr /
3. Mengubah lokasi ke direktori mysql local / bin
dan menjalankan script yang disediakan 2. Mengubah lokasi ke direktori di mana
untuk menciptakan sistem database : tempat pada saat menyalin file, dan
kemudian membuat keduanya
shell> cd mysql shell>. /
dieksekusi :
scripts /
shell> cd / usr / local / bin
mysql_install_db-user = mysql shell> chmod + x ndb_mgm *
4. Mengatur izin yang diperlukan untuk 3.1.2.3 Konfigurasi Manajemen Node
server MySQL dan direktori data :
shell> chown-R root. shell> Langkah pertama dalam
chown-R mysql datashell> chgrp- mengkonfigurasi manajemen node adalah
R mysql. untuk membuat direktori di mana file
konfigurasi dapat ditemukan dan kemudian
5. Salin script startup MySQL ke direktori untuk membuat file itu sendiri :
yang sesuai, membuatnya menjadi shell> mkdir / var / lib /mysql-
executable, dan set untuk memulai cluster
ketika sistem beroprasi : shell> cd / var / lib / mysql-cluster
shell> cp support- shell> vi config.ini
files/mysql.server / etc /init.d /
mysql Untuk setup file config.ini diisi scrip
shell> chmod + x / etc /init.d / sebagai berikut:
mysql [ndbd default]
shell> update-rc.d mysqldefault

3.1.2.2 Instalasi dari node Manajemen


pada node03
Pemasangan node manajemen tidak
memerlukan biner mysqld. Hanya
NoOfReplicas=2 Setelah memulai sebuah proses
DataMemory=80M mysqld dengan NDBCLUSTER dan
IndexMemory=18M ndbconnectstring parameter dalam [mysqld]
[tcp default] di file my.cnf seperti yang ditunjukkan
[ndb_mgmd] sebelumnya, User tidak dapat
hostname=192.168.43.114 # Hostname mengeksekusi CREATE TABLE atau
or IP address of MGMnode ALTER TABLE tanpa harus benar-benar
datadir=/var/lib/mysql-cluster # Directory mulai cluster.
for MGM node log files[ndbd] 3.1.2.5 Memulai MySQL Cluster
hostname=192.168.43.200 # Hostname or
Memulai cluster ini tidak terlalu
IP address datadir=/usr/local/mysql/data #
sulit setelah dikonfigurasi sebelumnya.
Directory for this data node’s data files
Setiap proses node cluster harus dimulai
[ndbd] hostname=192.168.43.246
secara terpisah, dan di host di mana dia
#
berada. Manajemen node harus dimulai
Hostname or IP address
terlebih dahulu, diikuti oleh node data, dan
datadir=/usr/local/mysql/data #Directory
kemudian terakhir oleh setiap node SQL :
for this data node’s data files
1. Pada host manajemen (node03),
[mysqld]
mengeluarkan perintah berikut dari
hostname=192.168.43.200 #
shell sistem untuk memulai proses
Hostname or IP address [mysqld]
manajemen node :
hostname=192.168.43.246 #
shell> ndb_mgmd -f
Hostname or IP address /var/lib/mysql- cluster/config.ini-
configdir=/var/lib/mysql-cluster/
3.1.2.4 Konfigurasi Data dan SQL Node
jika berhasil akan muncul gambar
Konfigurasi Data dan SQL Node seperti gambar di bawah ini.
dilakukan mengedit file my.cnf di direktori
/etc/
shell> vi /etc/my.cnf
Untuk setiap data node dan SQL node di
setup pada my.cnf akan terlihat seperti Gambar 3. 4 Start management note
gambar 3.3 :
2. Pada masing-masing Data / host SQL
node, jalankan perintah ini untuk
memulai ndbd dan proses mysql server
:

Gambar 3. 3 Konfigurasi my.conf pada


data note
shell> / usr / local / mysql
/ bin / ndbd
Jika berhasil akan keluar tampilan
seperti gambar 3.5 :
Gambar 3. 7 Setting Database untuk tiap
Site

Gambar 3. 5 Menjukan bahwa data note


terkoneksi dengan management note

Setelah itu mengaktifkan mysql pada


data note dengan perintah seperti di
bawah ini.
shell> / etc / init.d / mysqlstart
Kemudian diuji pada client node
dengan perintah ndb_mgm. Jika
berhasil output yang dihasilkan akan
ditunjukan seperti gambar 3.6 di bawah
ini. Gambar 3. 8 Tampilan Konfigurasi Site1

Gambar 3. 6 Kedua Data Note Saling


Terkoneksi
Gambar 3. 9 Tampilan Konfigurasi Site2
3.2 Pengujian Sistem
3.2.2 Tampilan Aplikasi
3.2.1 Tampilan Database
Berikut tampilan aplikasi :
Sebelum menampilkan aplikasi,
yang di konfigurasi pertama kali adalah
database pada site masing-masing yang
terdapat pada SQL node.

Gambar 3. 10 Tampilan Aplikasi


3.2.3 Pengujian Kinerja Replikasi
JikaTerjadi Kegagalan
Dalam pembuatan MySQL Cluster,
tujuannya adalah untuk mengatasi dalam
hal ketersediaan data. Disini dicoba untuk
menampilkan apabila terjadi kegagalan data
tetap tersimpan di database. Berikut
tampilan server yang masih hidup:

Gambar 3. 14 Site 2 Disconnected

Setelah Node 2 disconnected, maka dicoba


memasukkan data pada site 1 :

Gambar 3. 11 Tampilan Server

Jika sebuah node di matikan, yaitu pada


contoh ini adalah node 2, perintah yang
dimasukkan :

Gambar 3. 15 Tambah Data Site 1

Setelah site 2 kembali di sinkronkan, maka


data yang sebelumnya di masukan dari site
1 pada saat site 2 disconnected akan
Gambar 3. 12 Shutdown Node 2 terlihat, berikut tampilannya :
Sehingga hasil yang dapat dilihat di
management Node :

Gambar 3. 13 Node 2 Disconnected Gambar 3. 16 Tampilan Site2


SIMPULAN untuk menyempurnakan penelitianini.

Simpulan yang dapat diambil dari KEPUSTAKAAN


penelitian yang telah dilakukan adalah
[1] Basis Data Terdistribusi. [Online]
sebagai berikut,
Tersedia :
1. Server mysql cluster berjalan diprotocol http://lenidian.staff.gunadarma.ac.id/Downl
TCP/IP. oads/files/26235/distdb1.pdf. (diakses
2. Engine database yang digunakan dalam tanggal 9 September 2011, jam 17.04 Wita)
server mysql cluster ini menggunakan [2] BAB 1 DBMS Terdistribusi – Konsep
ndbcluster. dan Desain. [Online] Tersedia :
3. Kofigurasi mysql cluster ini terdiri dari http://irmarr.staff.gunadarma.ac.id/Downloa
tiga node, yaitu Management node ds/files/11629/BAB+1+DDBMS+Konsep+
(ndbd_mgmd process), Data node (ndbd dan+Design.doc. (diakses tanggal 9
process), SQL node (mysqld process) September 2011, jam 17.06 Wita)
4. MySQL cluster merupakan sebuah [3] Mysql-cluster. [Online] Tersedia :
database yang menggunakan arsitektur
http://wimpermana.web.ugm.ac.id/blog/wp
shared-nothing.
-content/mysql-cluster.pdf (diakses
UCAPAN TERIMA KASIH tanggal 7 Januari 2012, jam 18.14 Wita)
[4] Prabowo, Adityo.2010.Perancangan
Sehubungan dengan telah terselesaikannya
MySQL Cluster Untuk Mengatasi
penelitian ini, maka diucapakan terima
Kegagalan Sistem Basis Data Pada Sisi
kasih.
Server . Jurusan Teknik Elektro Fakultas
Teknik Universitas Diponegoro : Semarang
[Online] Tersedia :
http://eprints.undip.ac.id/25272/1/Makalah
ku.pdf (diakses tanggal 7 Januari 2012, jam
18.23 Wita)

Anda mungkin juga menyukai