MySQL Cluster merupakan database terdistribusi untuk kondisi database dengan trafic yang tinggi. MySQL Cluster bekerja dengan melakukan sinkronisasi data antar server bukan replikasi data (replikasi berbeda dengan cluster). Cluster MySQL terdiri dari satu server manajemen (ndb_mgmd) yang menyimpan konfigurasi cluster dan mengontrol satu atau lebih node db server (ndbd). Show
MySQL Cluster dapat bekerja dengan banyak node sesuai dengan beban database, namun untuk ujicoba pada kesempatan ini hanya digunakan 2 server, 1 server sebagai manajer dan 1 server lain sebagai node server. Tutorial Video: PersiapanUntuk mengikuti tutorial ini, pastikan memiliki minimal 2 server (boleh lebih) baik fisik, vps atau dalam bentuk virtual machine. Pastikan sistem operasi yang digunakan merupakan sistem operasi Ubuntuk versi 18.04 keatas, versi 20.04 yang direkomendasikan. Catat IP dari masing-masing server yang digunakan, pada kasus ini, IP yang digunakan:
* IP anda bisa saja berbeda, silahkan disesuaikan Langkah 1 – Install dan Konfigurasi Cluster Manager / Server UtamaLangkah awal yang perlu kita lakukan adalah menginstall MySQL Cluster Manager (ndb_mgmd), paket ini bisa di download melalui laman download resmi MySQL: https://downloads.mysql.com/archives/cluster/ Pada laman awal, anda akan diminta memilih versi MySQL Cluster Manager, pada saat tutorial ini dibuat versinya adalah 8.0.26, biarkan deafault saja. Kemudian pilih OS server yang digunakan, pilih Ubuntu Linux seperti gambar dibawah: Kemudian croll, cari paket DEB Pacakage NDB Management Server sesuai dengan versi Ubuntu yang digunakan: Setelah ketemu, catat lokasi downloadnya. Sekarang, silahkan login pada server utama (tutorial ini: 192.168.1.12) dan download file .deb tersebut:
Install ndb_mgmd menggunakan dpkg:
Selanjutnya, kita harus mengkofigurasi dan memberitahukan mysql-cluster bahwa server utama harus menjadi server pertama yang menjalankan MySQL Cluster. Untuk melakukan hal tersebut, kita dapat membuat configurasi cluster dengan cara: Buat folder mysql-cluster pada /var/lib:
Buat file config.ini pada folder yang baru dibuat:
Pastekan text berikut pada file config.ini:
Setelah melakukan paste, pastikan untuk mengubah hostname IP sesuai dengan IP server yang digunakan. Save dan keluar dari editor. Selanjutnya, jalankan server manager dengan mengeksekusi ndb_mgmd dan memberitahukan file (-f) lokasi dari konfigurasi cluster:
Seharu kita melihat output seperti ini:
Ini menunjukkan bahwa server MySQL Cluster Management telah berhasil diinstal. Selanjutnya, agar server Manajemen Cluster berjalan secara otomatis saat boot, kita harus membuat dan mengaktifkan layanan systemd. Sebelum kita membuat layanan, kita perlu mematikan server yang sedang berjalan:
Sekarang, buka dan edit file Unit systemd :
Pastekan code berikut:
Di sini, kita telah menginstruksikan systemd tentang cara memulai, menghentikan, dan memulai kembali proses ndb_mgmd. Simpan dan tutup file. Sekarang, muat ulang konfigurasi manajer systemd menggunakan daemon-reload: 0Enable ndb_mgmd kembali: 1Jalankan service ndb_mgmd: 2Verifikasi apakan NDB Cluster Management service sudah berjalan: 3Harusnya ada output seperti dibawah: 4Langkah terakhir untuk menyiapkan Cluster Manager adalah mengizinkan koneksi masuk dari node MySQL Cluster lain. Tambahkan aturan untuk mengizinkan koneksi masuk dari node server (192.168.1.13): 5Langkah 2 – Install dan Konfigurasi Node ServerPada server node, kita akan menginstall MySQL Cluster data node daemon dan mengkonfigurasi agar dapat berkomunikasi dengan Cluster Manager. Lihat file MySQL Cluster data node daemon pada: https://downloads.mysql.com/archives/cluster/ Cari versi ubuntu yang digunkan dan file DEB Package NDB Data Node Binaries: Setelah ketemu, copy link download .deb tersebut. Login pada server node (pada tutorial ini: 192.168.1.13) dan download file Data Node Binaries: 6Sebelum kita menginstal Data Node Binaries, kita perlu menginstal dependensi, libclass-methodmaker-perl: 7Install Data Node Binaries menggunakan dpkg: 8Buat file konfigurasi untuk server node: 9Tambahkan teks berikut kedalam konfigurasi my.cnf: 0Pastikan untuk menyesuaikan IP dari server manager. Kemudian save. Buat data directory pada /usr/local/mysql/data: 1Sekarang kita dapat menjalankan node server menggunakan perintah berikut: 2Seharusnya ada output seperti dibawah ini: 3NDB data node daemon telah berhasil di install dan berjalan di server. Selanjutnya berikan akses untuk server manager: 4Berikutnya kita akan menambahkan data node daemon agar server node dapat menjalankan MySQL Cluster saat setelah reboot, prosesnya sama dengan server manager. Matikan ndbd service terlebih dahulu: 5Sekarang, buka dan edit file Unit systemd: 6Pastekan kode berikut: 7Save dan keluar dari editor. Reload kembali systemd manager dengan daemon-reload: 0Mengaktifkan layanan yang baru saja dibuat sehingga daemon dapat dimulai saat reboot: 9Jalankan service ndbd: 0Verifikasi bahwa Cluster server sudah jalan: 1Harusnya ada output seperti dibawah: 2* Jika server node lebih dari 1, silahkan ulangi langkah 2 diatas pada server node lainnya. Langkah 3 – Konfigurasi dan Menjalankan MySQL ClusterPada dasarnya, MySQL Server standar yang ada di repository Ubuntu belum mendukung Clustering database. Oleh karena itu kita perlu menginstall custom paket SQL server. Paket tersebut bisa didownload di: https://downloads.mysql.com/archives/cluster/ Pada laman tersebut cari DEB Bundle yang sesuai dengan versi Ubuntu yang digunakan, copy link donwloadnya: Login pada server manager (pada tutorial ini: 192.168.1.12) kemudian download deb-bundle: 3Buat folder dengan nama ‘install’: 4Extract deb-bundle kedalam folder ‘install’: 5Masuk ke dalam folder ‘install’: 6Install dependensi MySQL Cluster: 7Install dependensi tambahan yang ada pada folder ‘install’: 8Saat menginstall mysql-cluster-community-server, kita akan di minta uyntuk memasukkan password root daru database MySQL yang akan digunakan. Pastikan untuk mengingat password yang diinput tersebut kemudian <Ok>. Install MySQL Server binary dengan dpkg: 9Selanjutnya kita menambahkan konfigurasi mysql cluster pada configurasi mysql yang telah di install, buka my.cnf dari mysql: 0Tambahkan teks berikut pada bagian bawah file my.cnf: 1Save file. Restart MySQL server: 2MySQL secara default akan dimulai secara otomatis ketika service di restart. Jika tidak, jalankan perintah berikut: 3Langkah 4 – Verifikasi Instalasi MySQL ClusterUntuk verifikasi MySQL Cluster, silahkan login pada server manager / node server. Cara verifikasi pertama:Setelah masuk, silahkan login pada MySQL: 4Masukkan password sesuai dengan yang di konfigurasi sebelumnya. Setelah masuk pada MySQL, jalankan query berikut: 5Harusnya ada output seperti berikut: 6Outut diatas memperlihatkan bahwa cluster sudah berjalan dengan number_of_data_nodes=1, artinya, kita punya 1 server selain server manager yang dapat melayani permintaan data. Keluar dari MySQL Promt dengan mengetik ‘quit‘ atau CTRL-D. Cara verifikasi kedua:Login pada server, kemudian ketikkan ndb_mgm: 7Kemudian ketikkan SHOW: 8Harusnya ada ouput seperti berikut: 9Informasi diatas memperlihatkan bahwa terdapat 1 server manager dan 1 server node pada cluster database saat ini, jumlah tersebut bisa bertambah sesuai dengan jumlah server yang digunakan. Kita juga bisa melihat status dari masing-masing node dengan perintah: 0Hasilnya kurang lebih: 1Langkah 5 – Ujicoba Cluster Database MySQLUjicoba dapat dilakukan dengan melakukan manipulasi data pada salah satu server. Pertama masuk ke MySQL di salah satu server: 2Kemudian buat database baru: 3Use database yang baru: 4Buat sebuah table: 5Kita harus secara eksplisit memberitahukan bahwa ENGINE yang digunakan ada ndbcluster. Kemudian masukkan data: 6Lihat hasilnya: 7KesimpulanPada tutorial ini, kita telah membuat database terdistribusi bersifat cluster dengan MySQL. Server yang digunakan adalah Ubuntu 20.04. Perlu dipahami bahwa, tutorial ini menggunakan hanya 2 server, dimana pada kasus production bisa saja server yang dibutuhkan lebih banyak, jika demikian konfigurasi hanya perlu di tambahkan dan disesuaikan saja sesuai jumlah server yang ada. |