Pengelompokan basis data adalah proses menggabungkan beberapa server dengan menghubungkannya ke satu basis data. Clustering meningkatkan ketersediaan database Anda dengan mendistribusikan beban ke server yang berbeda. Jika ada server yang gagal, server lain akan segera tersedia untuk terus melayani.
MariaDB Galera adalah solusi pengelompokan multi-master yang memungkinkan Anda membaca dan menulis ke node mana pun di dalam cluster. Dengan MariaDB Galera, perubahan yang dilakukan pada satu node direplikasi ke semua node. MariaDB Galera mendukung mesin penyimpanan XtraDB/InnoDB dan hanya tersedia di Linux.
Fitur
- Topologi multi-master aktif-aktif
- Penggabungan simpul otomatis
- Kemampuan membaca dan menulis ke node cluster mana pun
- Kontrol keanggotaan otomatis, node yang gagal dikeluarkan dari cluster
- Penyediaan simpul otomatis
Dalam tutorial ini, kami akan menunjukkan cara menyiapkan cluster MariaDB Galera tiga simpul di Ubuntu 18.04.
Prasyarat
- Tiga VPS Ubuntu 18.04 baru di Atlantic.Net Cloud Platform.
- Kata sandi root yang dikonfigurasi di semua server.
Untuk tujuan tutorial ini, kita akan menggunakan tiga server dengan konfigurasi sebagai berikut:
server1 :192.168.0.101
server2 :192.168.0.102
server3 :192.168.0.103
Langkah 1 – Buat Server Cloud Atlantic.Net
Pertama, masuk ke Server Cloud Atlantic.Net Anda. Buat server baru, pilih Ubuntu 18.04 sebagai sistem operasi dengan setidaknya 2GB RAM. Hubungkan ke Server Cloud Anda melalui SSH dan masuk menggunakan kredensial yang disorot di bagian atas halaman.
Setelah Anda masuk ke server Ubuntu 18.04 Anda, jalankan perintah berikut untuk memperbarui sistem dasar Anda dengan paket terbaru yang tersedia.
apt-get update -y
Langkah 2 – Instal Server MariaDB di Semua Server
Pertama, tambahkan kunci repositori MariaDB dengan perintah berikut:
apt-get install software-properties-common apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
Selanjutnya, tambahkan repositori menggunakan perintah berikut:
add-apt-repository "deb [arch=amd64,arm64,ppc64el] http://mariadb.mirror.liquidtelecom.com/repo/10.4/ubuntu $(lsb_release -cs) main"
Setelah repositori ditambahkan, perbarui repositori dengan perintah berikut:
apt-get update -y
Terakhir, instal server MariaDB dengan perintah berikut:
apt-get install mariadb-server -y
Dimulai dengan versi 10.1, fitur kluster Galera digabungkan ke dalam MariaDB. Paket MariaDB Galera Server secara otomatis diinstal dengan server MariaDB.
Anda dapat mengaturnya dengan perintah berikut:
mysql_secure_installation
Jawab semua pertanyaan, seperti yang ditunjukkan di bawah ini:
Enter current password for root (enter for none): Provide your root user password 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
Catatan :Harap ulangi langkah di atas pada ketiga server.
Langkah 3 – Konfigurasikan Setiap Server di Cluster
Pada titik ini, kami telah menginstal dan mengkonfigurasi server MariaDB di setiap server. Selanjutnya, Anda perlu mengonfigurasi kluster Galera untuk berkomunikasi antar server. Untuk melakukannya, Anda perlu membuat file konfigurasi umum di setiap server.
Di bagian ini, kami akan menunjukkan cara mengonfigurasi setiap server di cluster.
Konfigurasi Server Pertama
Pertama, login ke server pertama dan buat file konfigurasi Galera dengan perintah berikut:
nano /etc/mysql/conf.d/galera.cnf
Tambahkan baris berikut (pastikan Anda memasukkan alamat IP server Anda sendiri):
[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://192.168.0.101,192.168.0.102,192.168.0.103" # Galera Synchronization Configuration wsrep_sst_method=rsync # Galera Node Configuration wsrep_node_address="192.168.0.101" wsrep_node_name="server1"
Simpan dan tutup file setelah Anda selesai. Selanjutnya, Anda dapat melanjutkan ke server kedua.
Konfigurasi Server Kedua
Selanjutnya, login ke server kedua dan buat file konfigurasi Galera dengan 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://192.168.0.101,192.168.0.102,192.168.0.103" # Galera Synchronization Configuration wsrep_sst_method=rsync # Galera Node Configuration wsrep_node_address="192.168.0.102" wsrep_node_name="server2"
Simpan dan tutup file setelah Anda selesai. Selanjutnya, Anda dapat melanjutkan ke server ketiga.
Konfigurasi Server Ketiga
Selanjutnya, login ke server ketiga dan buat file konfigurasi Galera dengan 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://192.168.0.101,192.168.0.102,192.168.0.103" # Galera Synchronization Configuration wsrep_sst_method=rsync # Galera Node Configuration wsrep_node_address="192.168.0.103" wsrep_node_name="server3"
Simpan dan tutup file setelah Anda selesai.
Pada titik ini, kami telah mengonfigurasi ketiga server untuk berkomunikasi satu sama lain.
Langkah 4 – Inisialisasi Cluster Galera
Sebelum memulai cluster, Anda harus menghentikan layanan MariaDB di semua server.
Jalankan perintah berikut untuk menghentikan layanan MariaDB di semua server.
systemctl stop mariadb
Selanjutnya, inisialisasi cluster di node pertama dengan perintah berikut:
galera_new_cluster
Perintah di atas akan memulai cluster dan menambahkan server1 ke cluster.
Anda dapat memeriksanya dengan perintah berikut:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'" Enter password:
Berikan kata sandi root Anda dan tekan Enter. Anda akan melihat output berikut:
+--------------------+-------+ | Variable_name | Value | +--------------------+-------+ | wsrep_cluster_size | 1 | +--------------------+-------+
Selanjutnya, buka server kedua dan mulai layanan MariaDB:
systemctl start mariadb
Selanjutnya, verifikasi ukuran cluster Anda dengan perintah berikut:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'" Enter password:
Berikan kata sandi root Anda dan tekan Enter. Anda akan melihat bahwa server kedua telah bergabung dengan cluster.
+--------------------+-------+ | Variable_name | Value | +--------------------+-------+ | wsrep_cluster_size | 2 | +--------------------+-------+
Selanjutnya, buka server ketiga dan mulai layanan MariaDB:
systemctl start mariadb
Selanjutnya, verifikasi ukuran cluster Anda dengan perintah berikut:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'" Enter password:
Berikan kata sandi root Anda dan tekan Enter. Anda akan melihat bahwa server ketiga telah bergabung dengan cluster.
+--------------------+-------+ | Variable_name | Value | +--------------------+-------+ | wsrep_cluster_size | 3 | +--------------------+-------+
Langkah 5 – Uji Replikasi Cluster Galera
Cluster Galera Anda sekarang aktif dan berjalan. Saatnya menguji dan melihat apakah replikasi berfungsi.
Untuk melakukannya, buat database di server pertama dan periksa apakah database telah direplikasi ke server lain.
Di server1, masuk ke shell MySQL dengan perintah berikut:
mysql -u root -p
Berikan kata sandi root Anda saat diminta, lalu buat database dengan perintah berikut:
create database replicadb; create database mydb;
Selanjutnya, keluar dari shell MySQL dengan perintah berikut:
exit;
Di server2, masuk ke shell MySQL dengan perintah berikut:
mysql -u root -p
Berikan kata sandi root Anda saat diminta dan periksa apakah databasenya ada.
show databases;
Anda akan mendapatkan output berikut:
+--------------------+ | Database | +--------------------+ | information_schema | | mydb | | mysql | | performance_schema | | replicadb | +--------------------+
Di server3, masuk ke shell MySQL dengan perintah berikut:
mysql -u root -p
Berikan kata sandi root Anda saat diminta dan periksa apakah databasenya ada.
show databases;
Anda akan mendapatkan output berikut:
+--------------------+ | Database | +--------------------+ | information_schema | | mydb | | mysql | | performance_schema | | replicadb | +--------------------+
Output di atas dengan jelas menunjukkan bahwa replikasi bekerja dengan benar.
Kesimpulan
Selamat! Anda telah berhasil menginstal dan mengonfigurasi cluster MariaDB Galera tiga simpul di Ubuntu 18.04 VPS. Anda sekarang harus memiliki pengetahuan yang cukup untuk menyiapkan klaster MariaDB Galera di lingkungan produksi. Anda dapat mengunjungi Dokumentasi Galera MariaDB untuk informasi lebih lanjut.