melihat mysql cluster di dua komputer berbasis ubuntu 6 · sangat penting dalam kehidupan umat...
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