melihat mysql cluster di dua komputer berbasis ubuntu 6 · sangat penting dalam kehidupan umat...

15
Melihat MySQL Cluster di Dua Komputer Berbasis Ubuntu 6.06 Oleh: 1. Herbert Darwin (09245) 2. Joshua R.T.P. (09229) 3. Romel Lubis (10407) 4. Simon S.K. (09453) 5. Wim Permana (09313) Ditujukan Kepada: Bapak Sigit Priyanta, S.Si, M.Kom selaku Dosen Pengampu Mata Kuliah Basis Data Lanjutan Program Studi Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Gadjah Mada Yogyakarta 2006 MySQL Cluster 1

Upload: dangdieu

Post on 20-Apr-2018

225 views

Category:

Documents


3 download

TRANSCRIPT

Melihat MySQL Clusterdi Dua Komputer Berbasis Ubuntu 6.06

Oleh:

1. Herbert Darwin (09245)2. Joshua R.T.P. (09229)3. Romel Lubis (10407)4. Simon S.K. (09453)5. Wim Permana (09313)

Ditujukan Kepada:

Bapak Sigit Priyanta, S.Si, M.Komselaku Dosen Pengampu Mata Kuliah

Basis Data LanjutanProgram Studi Ilmu Komputer

Fakultas Matematika dan Ilmu Pengetahuan AlamUniversitas Gadjah Mada

Yogyakarta2006

MySQL Cluster 1

I. Latar Belakang

Sampai tulisan ini dibuat, basis data (database) telah memainkan peranan yang

sangat penting dalam kehidupan umat manusia [2]. Mulai dari pengguna rumahan

hingga pengguna berskala enterprise. Mulai dari yang dipakai hanya di dalam

toko-toko kecil sekelas minimarket hingga ke stasiun ruang angkasa sekaliber

NASA. Dalam hal ini, sebuah RDBMS (Relational Database Management

Software) ikut menjadi bagian yang tidak terpisahkan dari keadaan tersebut. Dari

tahun ke tahun, hasrat manusia (baca: pengguna RDBMS) akan peningkatan

kinerja dan penambahan fitur sebuah RDBMS tidak pernah surut [2]. Selalu

pasang naik! Hal inilah yang menjadi penyebab timbulnya liga (baca: persaingan)

diantara berbagai vendor RDBMS terkemuka dunia untuk selalu meningkatkan

unjuk kerja dan standar teknis produk-produk mereka.

Salah satu vendor yang populer adalah MySQL AB. Perusahaan pembuat

RDBMS MySQL ini telah melengkapi produk mereka dengan fitur cluster.

Kebutuhan akan ketersediaan basis data (database) yang bisa terus aktif bekerja

selama 24 jam x 7 hari merupakan faktor utama munculnya konsep cluster dalam

MySQL [1]. Pada awalnya, MySQL Cluster dirancang khusus oleh MySQL AB

untuk perusahaan-perusahaan berbasis telekomunikasi yang memang sangat

membutuhkan keaktualan dan keaktivan dari database mereka. Basis data

perusahaan-perusahaan ini, selain berkapasitas besar juga bersifat extremely high-

availability. Ini berarti, dalam satu tahun masa aktif, database tersebut hanya

boleh berada dalam keadaan “off” selama 5 menit saja (1 tahun/365 hari setara

dengan ± 518400 menit) [1].

MySQL Cluster 2

II.Rumusan Masalah

Berikut ini adalah beberapa masalah yang telah kami coba bahas dan pecahkan di

dalam percobaan;

1. Peng-install-an MySQL 5.0.22_debian_0ubuntu6.06 di Linux

Ubuntu versi 6.06

2. Peng-install-an MySQL Administrator di Linux Ubuntu versi 6.06

3. Peng-install-an MySQL Query Browser di Linux Ubuntu versi 6.06

4. Setting LAN (Local Area Network) untuk dua PC.

5. Mengaktifkan dan menggunakan MySQL Cluster.

6. Melakukan beberapa operasi (query) di lingkungan MySQL Cluster dan

MySQL non-Cluster (reguler).

Berikut ini adalah spesifikasi dua komputer yang kami pakai untuk melakukan

percobaan;

1. Komputer 1

• Laptop NEC VERSA

• Processor Intel® Pentium® M 750 dengan clock speed 1.86 GHz

• Modul memori berkapasitas 512 Mbyte

• Integrated NIC (Network Interface Card) Ethernet 100 Mbps

• Sebagai SQL Node dengan IP Address 192.168.0.3

2. Komputer 2

• PC Desktop

MySQL Cluster 3

• Processor Intel® Pentium® dengan clock speed 2.4 GHz

• Modul memori berkapasitas 512 Mbyte

• Integrated NIC (Network Interface Card) Ethernet 100 Mbps

• Sebagai Management Node dan Data Node dengan IP Address

192.168.0.1

Data yang menjadi bahan percobaan kami adalah database world yang kami

download dari http://downloads.Mysql.Com/docs/world.Sql.

zip. Database ini terdiri tiga tabel yakni: City, Country, dan Language.

III.Batasan Masalah

Dalam percobaan ini kami menggunakan dua komputer yang telah kami

hubungkan melalui kabel cross over. Pada tahap awal percobaan, kami telah

menguji coba MySQL Cluster menggunakan Sistem Operasi Microsoft Windows

XP dan Microsoft Virtual PC. Namun ketika kami mencoba meng-install Sistem

Operasi Linux Ubuntu versi 6.06 di Komputer 2 menggunakan Microsoft Virtual

PC, kami justru mendapati pesan error dari Microsoft Virtual PC. Pesan tersebut

menyatakan bahwa sistem mengalami "kernel panic".

Keadaaan ini membuat kami mengubah platform utama lingkungan uji coba. Dari

yang semula menggunakan Microsoft Windows XP kemudian beralih ke Platform

Linux Ubuntu versi 6.06. Alasan lain yang membuat kami mengubah platform uji

coba ini adalah karena MySQL Cluster masih belum dapat berjalan di Platform

Windows [4]. Keterangan mengenai kompatibilitas MySQL Cluster dapat dilihat

MySQL Cluster 4

secara lengkap di Chapter 16 MySQL Reference Manual.

Kendala tidak berhenti sampai di situ. Kondisi perangkat keras yang terbatas juga

membuat kami tidak dapat mengembangkan uji coba MySQL Cluster secara

lengkap. Untuk menguji coba semua fitur MySQL Cluster, kami membutuhkan

sekurang-kurangnya tiga buah komputer dan atau tiga buah host yang saling

terhubung melalui jaringan lokal. Namun pada hari-H uji coba, kami tetap belum

mampu memenuhi persyaratan teknis ini. Meskipun terjadi banyak kendala, uji

coba ini tetap berlangsung.

Berikut ini adalah beberapa uji coba yang telah kami lakukan;

1. Setup Cluster

2. Menjalankan Cluster

3. Shutdown Cluster

4. Melihat dan membandingkan secara umum waktu pemrosesan sebuah query di

lingkungan MySQL Cluster (engine: ndb cluster) dengan lingkungan MySQL

non-Cluster

Beberapa fitur yang tidak kami uji coba antara lain;

1. Data Replication

2. Partitioning on Cluster

3. Backup Cluster

Dengan demikian, laporan uji coba ini tidak akan membahas mengenai ketiga

masalah yang disebutkan di atas. Meskipun fungsi cluster yang utama dalam

MySQL adalah justru untuk memanfaatkan fitur-fitur tersebut.

IV.Tinjauan Pustaka

MySQL Cluster 5

1. Pengantar

MySQL Cluster merupakan sebuah tipe basis data (database) yang dapat

beroperasi dalam ukuran data yang relatif besar (maksimal dalam skala

beberapa ratus gigabyte) [1]. Sejak diperkenalkan ke khalayak pengguna pada

tahun 2004, MySQL Cluster telah mampu meraih pasar yang signifikan di

kalangan para pengguna database yang banyak menggunakan lingkungan

komputasi terdistribusi (distributed computing evironment) [3].

Pada awalnya, MySQL Cluster banyak dimanfaatkan oleh perusahaan-

perusahaan telekomunikasi untuk menjalankan aplikasi yang berkaitan dengan

HLR (Home Locator Registry) dan SLR (Subscriber Locator Registry) [3].

Namun pada perkembangan selanjutnya, teknologi ini telah meluas hingga

banyak digunakan oleh para pengembang untuk aplikasi-aplikasi yang

berkaitan dengan VoIP (Voice Over Internet Protocol), internet billing, sesion

management, situs-situs e-Commerce, mesin pencari (search engine), bahkan

hingga ke aplikasi umum yang biasa digunakan di perkantoran [3].

2. Arsitektur

MySQL Cluster merupakan sebuah database yang menggunakan arsitektur

shared-nothing dan antarmuka SQL yang telah umum digunakan [4]. Sistem

database ini terdiri dari beberapa node yang dapat didistribusikan ke beberapa

perangkat keras dan ke beberapa wilayah/zona yang berbeda sekaligus untuk

tetap menjaga ketersediaan data meskipun jaringan ataupun salah satu node

sedang mengalami kegagalan (failure) [3].

MySQL Cluster 6

Ada tiga node yang menyusun MySQL Cluster, yakni:

1. Data Nodes, digunakan untuk menyimpan semua data yang menjadi milik

MySQL Cluster. Semua data direplikasi di node-node ini.

2. Management Server Nodes, digunakan untuk mengendalikan konfigurasi

sistem ketika startup. Selain itu, node ini juga dapat digunakan sebagai

pengidentifikasi setiap perubahan setting yang terjadi pada cluster.

3. MySQL Server Nodes, berfungsi sebagai pintu akses untuk masuk ke

dalam node-node data yang ter-cluster.

3. Kebutuhan Perangkat Keras

MySQL Cluster dapat berjalan tanpa menggunakan perangkat keras khusus

yang mahal layaknya sistem cluster populer milik Oracle; ORACLE RAC [1].

Untuk menjalankan dan memanfaatkan teknologi ini, sistem hanya

memerlukan jaringan dengan protokol TCP/IP. Selain itu, sistem juga

memerlukan modul RAM yang minimal dapat menyamai jumlah ukuran data

dalam database. Berikut rumus yang digunakan untuk menentukan jumlah

RAM yang dibutuhkan [4]:

Jumlah RAM =

(SizeofDatabase * NumberOfReplicas * 1.1)/NumberOfDataNodes

Di lingkungan korporat, agar dapat menikmati MySQL Cluster yang cepat,

sistem memerlukan server yang dilengkapi dengan dua buah processor seperti

Intel Xeon atau AMD Opteron, 16 GB RAM, 4 x 73 GB RAID, dan Gigabit

Ethernet per server [1].

MySQL Cluster 7

V.Pembahasan

Berikut ini adalah pembahasan dan uraian dari apa yang telah kami uji coba:

1. Meng-install aplikasi MySQL untuk Ubuntu versi 6.06.

Berikut ini adalah aplikasi-aplikasi dan pustaka-pustaka yang dibutuhkan dalam

iji coba ini.

No Nama Paket Versi Keterangan

1. mysql-common mysql database common files

2. libmysqlclient15off Pustaka client untuk database mysql

3. mysql-client-5.0 5.0binari client untuk database mysql

4. mysql-server-5.0 5.0Binari server untuk database mysql

5.mysql-query-browser-common

1.1.175ubuntu3

Berkas bebas arsitekturuntuk MySQL Query Browser

6.mysql-query-browser

1.1.17 5ubuntu3

Tool query dengan GUI resmi untuk MySQL database

7.mysql-admin-common

1.1.6-1build1

Berkas bebas arsitekturuntuk MySQL Administrator

8. mysql-admin 1.1.6-1build1

Tool berbasis GUI untuk pengaturan MySQL administration

MySQL Cluster 8

2. Setup MySQL Cluster

➢ edit file my.cnf di management node.

➢ my.cnf yang sudah diedit memiliki tambahan

ndbclusterndb-connectstring=192.168.0.1................................................user = mysqlpid-file = /var/run/mysqld/mysqld.pidsocket = /var/run/mysqld/mysqld.sockport = 3306basedir = /usrdatadir = /var/lib/mysqltmpdir = /tmplanguage = /usr/share/mysql/englishskip-external-lockingndbclusterndb-connectstring=192.168.0.1## For compatibility to other Debian packages that still use# libmysqlclient10 and libmysqlclient12.old_passwords = 1.................................................

➢ salin ndb_mgmd.cnf ke direktori /var/lib/mysql-cluster/

joshua@romel-desktop:~$ sudo cp /usr/share/doc/mysql-server- 5.0/examples/ndb_mgmd.cnf /var/lib/mysql-cluster/

➢ rename file tersebut menjadi config.ini

joshua@romel-desktop:~$ sudo cp /usr/share/doc/mysql-server- 5.0/examples/ndb_mgmd.cnf /var/lib/mysql-cluster/ <enter>

MySQL Cluster 9

password:joshua@romel-desktop:~$ cd /var/lib/mysql-cluster/joshua@romel-desktop: /var/lib/mysql-cluster/ $ my ndb_mgmd. cnf config.ini

➢ edit file config.ini

➢ edit file my.cnf di sql node. Dengan konfidurasi yang sama dengan

pengeditan my.cnf di management node.

3. Menjalankan MySQL Cluster

➢ jika daemon mysqld sudah menyala/aktif di komputer yang menjadi sql

node maka daemon mysqld tersebut harus dinon-aktifkan terlebih dahulu.

MySQL Cluster 10

➢ aktifkan management node dengan perintah:

joshua@romel-desktop: /var/lib/mysql-cluster$ sudo ndb_mgmd -f /var/lib/mysql-cluster/config.ini <enter>password:

➢ aktifkan data node dengan perintah

joshua@romel-desktop: /var/lib/mysql-cluster$ sudo ndbd --initial <enter>joshua@romel-desktop: /var/lib/mysql-cluster$

➢ Aktifkan sql node dengan perintah :

seamonk@seamonk- laptop:~$ sudo mysqldpassword:060925 16:42:16 InnoDB: Started; log sequence number 0 43665 060925 16:42:16 [Note] mysqld: ready for connections.Version: '5.0.22-Debian_0ubuntu6.06-log' socket: '/var/run/mysqld/mysqld.sock' port: 3306 Debian Etch distribution

➢ jalankan console management (ndb_mgm) di management node: di sql

node bisa tapi ngerepotin dengan perintah :

joshua@romel-desktop: /var/lib/mysql-cluster$ ndb_mgm-- NDB Cluster -- Management Client --

➢ untuk melihat semua node yang sedang aktif dalam MySQL cluster

gunakan perintah:

ndb_mgm> SHOW

ndb_mgm> SHOW <enter>Connected to Management Server at 192.168.0.1:1186Cluster Cofiguration--------------------[ndbd(NDB)] 1 node(s)id=2 @ 192.168.0.1 (Version: 5.0.22, Nodegroup: 0, Master)

[ndb_mgmd(MGM)] 1 node(s)

MySQL Cluster 11

id=1 @ 192.168.0.1 (Version: 5.0.22)

[mysqld(API)] 1 node(s)id=3 @ 192.168.0.3 (Version: 5.0.22)

5. Melihat dan membandingkan secara umum waktu pemrosesan sebuah

query di lingkungan MySQL Cluster (engine: ndb cluster) dengan

lingkungan MySQL non-Cluster

➢ Operasi BETWEEN :

SELECT * FROM City where Population between 1000000 and 2000000;

dengan MySQL Cluster membutuhkan query time 0:00.1505

tanpa MySQL Cluster membutuhkan query time 0:00.1005

➢ Operasi DISTINCT :

SELECT distinct Name FROM City order by Name;

dengan MySQL Cluster membutuhkan query time 0:00.7659

tanpa MySQL Cluster membutuhkan query time 0:00.6577

➢ Operasi SELECT :

select * from City where Name = "yogyakarta";

dengan MySQL Cluster membutuhkan query time 0:00.1615

tanpa MySQL Cluster membutuhkan query time 0:00.0986

➢ Operasi UNION :

(SELECT Continent FROM Country) UNION (SELECT Name FROM

City) order by Continent;

dengan MySQL Cluster membutuhkan query time 0:00.2098

tanpa MySQL Cluster membutuhkan query time 0:00.1988

MySQL Cluster 12

➢ Operasi ORDER BY :

SELECT Name FROM City order by Name;

dengan MySQL Cluster membutuhkan query time 0:00.1633

tanpa MySQL Cluster membutuhkan query time 0:00.1002

➢ Operasi JOIN :

SELECT Continent as "Gabungan" FROM Country UNION SELECT

Name FROM City order by Gabungan;

dengan MySQL Cluster membutuhkan query time 0:00.1775

tanpa MySQL Cluster membutuhkan query time 0:00.1554

4. Shutdown MySQL Cluster

➢ untuk mematikan MySQL Cluster gunakan perintah :

ndb_mgm> SHUTDOWNNode 2: cluster shutdown initiatedNode 2: Node shutdown completed.1 NDB Cluster node(s) have shutdown.Shutdown of NDB Cluster management server failed.* 0: No error* Executing: ndb_mgm_stop2 <enter>ndb_mgm>

MySQL Cluster 13

VI.Kesimpulan

Dalam laporan uji coba ini, kami telah mengeksplorasi beberapa fitur dan

kemampuan yang dimiliki oleh MySQL Cluster sekaligus cara untuk meng-

install, menjalankan dan mematikan prosesnya. Berikut beberapa hal yang dapat

kami simpulkan dari uji coba ini:

➢ Semua fitur MySQL Cluster dapat berjalan dengan baik dan komprehensif

dengan dukungan 4 komputer yang saling terhubung dengan protokol

TCP/IP.

➢ Kecepatan minimal transfer data dalam jaringan untuk MySQL Cluster

adalah sebesar 100 Mbps.

➢ MySQL Cluster membutuhkan modul memori yang berkapasitas besar dan

cenderung banyak karena data node disimpan dan diproses di dalam

memori bukan harddisk.

➢ Untuk menjalankan dan menggunakan MySQL Cluster, user tidak harus

membeli perangkat keras-perangkat keras yang khusus.

MySQL Cluster 14

VII.Daftar Pustaka

[1] Alex, Aulbach. 2005. MySQL Cluster very big and fast databases on

commodity hardware. PHP Conference. < http://blog.Thinkphp.De/uploads

/MySQL-Cluster.Pdf#search =%22alex%20aulbach%20%2B% 20MySQL%

20cluster%22> (diakses tanggal 23 Agustus 2006)

[2] Manovich, Lev. ------ . Database As A Symbolic Form.

<http://www2.sims.berkeley.edu/courses/is290-1/s0 4/readings/manovich _da

tabase.pdf#search=%22database%20as%20a%20symbolic%20form%20%2B2

0.pdf%22> (diakses tanggal 23 Agustus 2006)

[3] MySQL AB. 2006. A MySQL Technical White Paper. <http://www.Mysql.

com/why-mysql/white-papers/ > (diakses tanggal 23 Agustus 2006)

[4] MySQL Reference Manual. <http://downloads.mysql.com/docs/refman-4.1-

en.pdf.> (diakses tanggal 23 Agustus 2006)

MySQL Cluster 15