Load balancing dan clustering sangat penting dalam lingkungan produksi untuk mencapai ketersediaan tinggi untuk sistem database Anda. MariaDB Galera Cluster menyediakan solusi pengelompokan multi-master dan mendukung mesin penyimpanan XtraDB/InnoDB. Sebuah cluster multi-master memungkinkan membaca dan menulis ke setiap node cluster. Jika Anda mengubah data pada node mana pun, data tersebut akan direplikasi ke semua node lainnya. Cluster Galera juga mendukung lingkungan cloud dan WAN untuk membangun cluster terdistribusi di seluruh negara dan benua.
Dalam posting ini, kami akan menunjukkan cara mengatur cluster MariaDB Galera tiga node di server Ubuntu 20.04.
Prasyarat
- Tiga server menjalankan Ubuntu 20.04.
- Kata sandi root dikonfigurasi di server.
Memulai
Sebelum memulai, Anda perlu memperbarui paket sistem Anda ke versi terbaru. Anda dapat memperbaruinya menggunakan perintah berikut:
apt-get update -y
Setelah server Anda diperbarui, Anda dapat melanjutkan ke langkah berikutnya.
Instal Server MariaDB
Pertama, Anda perlu menginstal server MariaDB di semua node. Anda dapat menginstalnya dengan menjalankan perintah berikut:
apt-get install mariadb-server -y
Setelah penginstalan selesai, mulai layanan MariaDB dan aktifkan untuk memulai saat sistem di-boot ulang:
systemctl start mariadb
systemctl status mariadb
Selanjutnya, Anda perlu mengamankan instalasi MariaDB dan menetapkan kata sandi root MariaDB di setiap node. Anda dapat melakukannya dengan perintah berikut:
mysql_secure_installation
Anda akan diminta untuk mengatur kata sandi root MariaDB seperti yang ditunjukkan di bawah ini:
Enter current password for root (enter for none): Switch to unix_socket authentication [Y/n] n Change the root password? [Y/n] Y New password: Re-enter new password: Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Setelah server MariaDB Anda diamankan, Anda dapat melanjutkan ke langkah berikutnya.
Konfigurasi Cluster Galera
Selanjutnya, Anda perlu membuat file konfigurasi Galera pada setiap node sehingga setiap node dapat berkomunikasi satu sama lain.
Pada node pertama, buat file galera.cnf menggunakan perintah berikut:
nano /etc/mysql/conf.d/galera.cnf
Tambahkan baris berikut:
[mysqld] binlog_format=ROW default-storage-engine=innodb innodb_autoinc_lock_mode=2 bind-address=0.0.0.0 # Galera Provider Configuration wsrep_on=ON wsrep_provider=/usr/lib/galera/libgalera_smm.so # Galera Cluster Configuration wsrep_cluster_name="galera_cluster" wsrep_cluster_address="gcomm://node1-ip-address,node2-ip-address,node3-ip-address" # Galera Synchronization Configuration wsrep_sst_method=rsync # Galera Node Configuration wsrep_node_address="node1-ip-address" wsrep_node_name="node1"
Simpan dan tutup file setelah Anda selesai.
Pada node kedua, buat file galera.cnf menggunakan perintah berikut:
nano /etc/mysql/conf.d/galera.cnf
Tambahkan baris berikut:
[mysqld] binlog_format=ROW default-storage-engine=innodb innodb_autoinc_lock_mode=2 bind-address=0.0.0.0 # Galera Provider Configuration wsrep_on=ON wsrep_provider=/usr/lib/galera/libgalera_smm.so # Galera Cluster Configuration wsrep_cluster_name="galera_cluster" wsrep_cluster_address="gcomm://node1-ip-address,node2-ip-address,node3-ip-address" # Galera Synchronization Configuration wsrep_sst_method=rsync # Galera Node Configuration wsrep_node_address="node2-ip-address" wsrep_node_name="node2"
Simpan dan tutup file setelah Anda selesai.
Pada node ketiga, buat file galera.cnf menggunakan perintah berikut:
nano /etc/mysql/conf.d/galera.cnf
Tambahkan baris berikut:
[mysqld] binlog_format=ROW default-storage-engine=innodb innodb_autoinc_lock_mode=2 bind-address=0.0.0.0 # Galera Provider Configuration wsrep_on=ON wsrep_provider=/usr/lib/galera/libgalera_smm.so # Galera Cluster Configuration wsrep_cluster_name="galera_cluster" wsrep_cluster_address="gcomm://node1-ip-address,node2-ip-address,node3-ip-address" # Galera Synchronization Configuration wsrep_sst_method=rsync # Galera Node Configuration wsrep_node_address="node3-ip-address" wsrep_node_name="node3"
Simpan dan tutup file setelah Anda selesai.
Inisialisasi Cluster Galera
Pada titik ini, semua node dikonfigurasi untuk berkomunikasi satu sama lain.
Selanjutnya, Anda harus menghentikan layanan MariaDB di semua node. Anda dapat menjalankan perintah berikut untuk menghentikan layanan MariaDB:
systemctl stop mariadb
Pada node pertama, inisialisasi cluster MariaDB Galera dengan perintah berikut:
galera_new_cluster
Sekarang, periksa status cluster dengan perintah berikut:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
Anda akan melihat output berikut:
+--------------------+-------+ | Variable_name | Value | +--------------------+-------+ | wsrep_cluster_size | 1 | +--------------------+-------+
Pada node kedua, mulai layanan MariaDB dengan perintah berikut:
systemctl start mariadb
Selanjutnya cek status cluster MariaDB Galera dengan perintah berikut:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
Anda akan melihat output berikut:
+--------------------+-------+ | Variable_name | Value | +--------------------+-------+ | wsrep_cluster_size | 2 | +--------------------+-------+
Pada node ketiga, mulai layanan MariaDB dengan perintah berikut:
systemctl start mariadb
Selanjutnya cek status cluster MariaDB Galera dengan perintah berikut:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
Anda akan melihat output berikut:
+--------------------+-------+ | Variable_name | Value | +--------------------+-------+ | wsrep_cluster_size | 3 | +--------------------+-------+
Pada titik ini, cluster MariaDB Galera diinisialisasi. Sekarang Anda dapat melanjutkan ke langkah berikutnya.
Verifikasi Replikasi Cluster
Selanjutnya, Anda perlu memverifikasi apakah replikasi berfungsi atau tidak.
Pada node Pertama, sambungkan ke MariaDB dengan perintah berikut:
mysql -u root -p
Setelah Anda terhubung, buat beberapa database dengan perintah berikut:
MariaDB [(none)]> create database db1;
MariaDB [(none)]> create database db2;
Selanjutnya, keluar dari MariaDB dengan perintah berikut:
MariaDB [(none)]> exit;
Selanjutnya, pergi ke node kedua dan login ke MariaDB dengan perintah berikut:
mysql -u root -p
Selanjutnya, jalankan perintah berikut untuk menampilkan semua database:
MariaDB [(none)]> show databases;
Anda akan melihat bahwa kedua database yang telah kita buat pada node pertama direplikasi pada node kedua:
+--------------------+ | Database | +--------------------+ | db1 | | db2 | | information_schema | | mysql | | performance_schema | +--------------------+ 5 rows in set (0.001 sec)
Selanjutnya, pergi ke node ketiga dan login ke MariaDB dengan perintah berikut:
mysql -u root -p
Selanjutnya, jalankan perintah berikut untuk menampilkan semua database:
MariaDB [(none)]> show databases;
Anda akan melihat bahwa kedua database yang telah kita buat pada node pertama direplikasi pada node ketiga:
+--------------------+ | Database | +--------------------+ | db1 | | db2 | | information_schema | | mysql | | performance_schema | +--------------------+ 5 rows in set (0.001 sec)
Kesimpulan
Dalam panduan di atas, kami mempelajari cara menyiapkan cluster MariaDB Galera tiga simpul di server Ubuntu 20.04. Anda sekarang dapat menambahkan lebih banyak node ke klaster MariaDB Galera dengan mudah. Jangan ragu untuk bertanya kepada saya jika Anda memiliki pertanyaan.