GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Mengatur Cluster MariaDB Galera di Ubuntu 20.04

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.


Ubuntu
  1. Cara Menginstal MariaDB Galera Cluster di Ubuntu 16.04

  2. Cara Mengatur HAProxy di Ubuntu 16.04

  3. Cara Mengatur Firewall UFW di Ubuntu 18.04

  1. Cara Menginstal MariaDB 10.4 di Ubuntu 18.04

  2. Cara Menginstal MariaDB di Ubuntu 18.04

  3. Cara Menginstal dan Mengkonfigurasi MariaDB Galera Cluster di Ubuntu 18.04

  1. Cara Menginstal MariaDB di Ubuntu 20.04

  2. Cara Menginstal MariaDB di Ubuntu 20.04 LTS

  3. Bagaimana Setup dan Konfigurasi Docker Swarm Cluster di Ubuntu