GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal MariaDB Galera Cluster di Ubuntu 16.04

MariaDB Galera adalah cluster multi-master untuk MariaDB. Sejak MariaDB 10.1, paket MariaDB Server dan MariaDB Galera Server telah digabungkan dan paket Galera serta dependensinya terinstal secara otomatis saat menginstal MariaDB. Saat ini, MariaDB Galera Cluster hanya mendukung mesin penyimpanan InnoDB/XtraDB. Di MariaDB 10.0 dan 5.5, Anda harus mengunduhnya secara terpisah. MariaDB Galera menambahkan redundansi untuk database situs. Di MariaDB Galera Cluster, beberapa server database saling terhubung satu sama lain dan tetap sinkron.

MariaDB Galera menyediakan banyak fitur, beberapa di antaranya tercantum di bawah ini:

  1. Replikasi sinkron.
  2. Penggabungan simpul otomatis.
  3. Topologi multi-master aktif-aktif.
  4. Replikasi paralel sejati, pada tingkat baris.
  5. Skalabilitas baca dan tulis, Latensi klien lebih kecil.
  6. Node yang gagal, otomatis dikeluarkan dari cluster.

Dalam tutorial ini, kami akan menjelaskan cara mengatur MariaDB Galera Cluster 10.1 dengan 3 node yang berjalan di server Ubuntu 16.04. Kami juga akan menguji replikasi database di antara semua node.

Persyaratan

  • Tiga Node menjalankan server Ubuntu 16.04.
  • Node1 dengan alamat IP statis 192.168.0.102, Node2 dengan alamat IP statis 192.168.0.103 dan Node3 dengan alamat IP statis 192.168.0.104 mengkonfigurasi di server Anda.
  • Pengguna non-root dengan pengaturan hak sudo di semua node.

Memulai

Pertama, Anda perlu memperbarui semua node dengan versi terbaru. Anda dapat memperbarui semuanya dengan perintah berikut:

sudo apt-get update -y
sudo apt-get upgrade -y

Selanjutnya, restart semua node untuk menerapkan perubahan ini. Kemudian, masuk dengan pengguna sudo dan lanjutkan ke langkah berikutnya.

Instal MariaDB Galera

Paket MariaDB Server dan MariaDB Galera Server digabungkan dalam versi MariaDB 10.1. Secara default, MariaDB 10.1 tidak tersedia di repositori default Ubuntu, jadi Anda perlu menambahkan repositori MariaDB di semua node.

Pertama, tambahkan kunci repositori MariaDB dengan perintah berikut:

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Selanjutnya, tambahkan repositori dan perbarui cache APT dengan perintah berikut:

sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main'
sudo apt-get update - y

Setelah repositori diperbarui, instal MariaDB dengan perintah berikut:

sudo apt-get install mariadb-server rsync -y

Perintah di atas akan menginstal MariaDB dengan Galera dan beberapa dependensi. Bagian Galera tetap tidak aktif sampai dikonfigurasi, seperti plugin atau mesin penyimpanan. Setelah MariaDB terinstal di semua node, Anda dapat melanjutkan untuk mengamankan MariaDB.

Secara default, instalasi MariaDB tidak diamankan, jadi Anda perlu mengamankan instalasi MariaDB. Anda dapat melakukannya dengan menjalankan skrip mysql_secure_installation:

sudo mysql_secure_installation

Dalam proses ini, Anda akan diminta untuk mengatur kata sandi root, menghapus pengguna anonim, melarang login root dari jarak jauh dan menghapus database pengujian. Jawab semua pertanyaan seperti yang ditunjukkan di bawah ini:

Masukkan kata sandi saat ini untuk root (masukkan untuk tidak ada):Ubah kata sandi root? [Y/n] nHapus pengguna anonim? [Y/n] YLarang login root dari jarak jauh? [Y/n] YHapus database pengujian dan akses ke sana? [Y/n] YMuat ulang tabel hak istimewa sekarang? [Y/n] Y

Setelah MariaDB diamankan di semua node, Anda dapat melanjutkan ke langkah berikutnya.

Menyiapkan Klaster MariaDB di Node1

Pertama, buka Node1 dan buat file konfigurasi untuk Galera. Secara default, MariaDB membaca konfigurasi dari direktori /etc/mysql/conf.d/. Untuk melakukannya, jalankan perintah berikut:

sudo nano /etc/mysql/conf.d/galera.cnf

Tambahkan baris berikut:

[mysqld]binlog_format=ROWdefault-storage-engine=innodbinnodb_autoinc_lock_mode=2bind-address=0.0.0.0# Konfigurasi Penyedia Galerawsrep_on=ONwsrep_provider=/usr/lib/galera/libgalera_smm.so# Galera Cluster Configurationwsrep_wsrep "gcomm://192.168.0.102,192.168.0.103,192.168.0.104"# Konfigurasi Sinkronisasi Galerawsrep_sst_method=rsync# Konfigurasi Node Galerawsrep_node_address="192.168.0.102"wsrep_node_name="Node1"

Simpan file setelah Anda selesai.

Catatan: 192.168.0.102 adalah alamat IP dari Node1

Tambahkan Node2 di Galera Cluster

Selanjutnya, buka Node2 dan buat file konfigurasi untuk Galera:

sudo nano /etc/mysql/conf.d/galera.cnf

Tambahkan baris berikut:

[mysqld]binlog_format=ROWdefault-storage-engine=innodbinnodb_autoinc_lock_mode=2bind-address=0.0.0.0# Konfigurasi Penyedia Galerawsrep_on=ONwsrep_provider=/usr/lib/galera/libgalera_smm.so# Galera Cluster Configurationwsrep_wsrep "gcomm://192.168.0.102,192.168.0.103,192.168.0.104"# Konfigurasi Sinkronisasi Galerawsrep_sst_method=rsync# Konfigurasi Node Galerawsrep_node_address="192.168.0.103"wsrep_node_name="Node2"

Simpan file setelah Anda selesai.

Catatan: 192.168.0.103 adalah alamat IP dari Node2.

Tambahkan Node3 di Galera Cluster

Selanjutnya, buka Node3 dan buat file konfigurasi untuk Galera:

sudo nano /etc/mysql/conf.d/galera.cnf

Tambahkan baris berikut:

[mysqld]binlog_format=ROWdefault-storage-engine=innodbinnodb_autoinc_lock_mode=2bind-address=0.0.0.0# Konfigurasi Penyedia Galerawsrep_on=ONwsrep_provider=/usr/lib/galera/libgalera_smm.so# Galera Cluster Configurationwsrep_wsrep "gcomm://192.168.0.102,192.168.0.103,192.168.0.104"# Konfigurasi Sinkronisasi Galerawsrep_sst_method=rsync# Konfigurasi Node Galerawsrep_node_address="192.168.0.104"wsrep_node_name="Node3"

Simpan file setelah Anda selesai.

Catatan: 192.168.0.104 adalah alamat IP dari Node3.

Konfigurasi Firewall

Galera Cluster menggunakan empat port 3306 untuk koneksi klien MySQL, 4444 untuk State Snapshot Transfer, 4567 untuk lalu lintas replikasi Galera Cluster dan 4568 untuk Incremental State Transfer. Jadi, Anda harus mengizinkan semua port ini menggunakan firewall UFW. Anda dapat melakukannya dengan menjalankan perintah berikut di semua node:

Pertama, aktifkan firewall UFW dengan perintah berikut:

sudo ufw aktifkan

Selanjutnya, izinkan semua port dengan perintah berikut:

sudo ufw izinkan 3306/tcp
sudo ufw izinkan 4444/tcp
sudo ufw izinkan 4567/tcp
sudo ufw izinkan 4568/tcp
sudo ufw izinkan 4567/udp

Anda kemudian dapat memeriksa status firewall dengan perintah berikut:

status sudo ufw

Setelah firewall UFW dikonfigurasi pada semua node, Anda dapat melanjutkan ke langkah berikutnya.

Mulai Klaster MariaDB Galera

Setelah berhasil mengonfigurasi semua node, buka Node1 dan mulai Galera Cluster.

Sebelum Galera dapat dimulai, Anda perlu memastikan bahwa layanan MariaDB dihentikan di semua node.

Jalankan perintah berikut pada semua node:

sudo systemctl stop mysql

Sekarang, mulai Galera Cluster di Node1 dengan perintah berikut:

sudo galera_new_cluster

Sekarang, periksa apakah cluster berjalan atau tidak dengan perintah berikut:

mysql -u root -p -e "tampilkan status seperti 'wsrep_cluster_size'"

Jika semuanya baik-baik saja, Anda akan melihat output berikut:

+--------------------+-------+| Nama_variabel | Nilai |+--------------------+-------+| wsrep_cluster_size | 1 |+--------------------+-------+

Di Node2, mulai layanan MariaDB:

sudo systemctl start mysql

Anda dapat memeriksa status layanan MariaDB apakah berfungsi atau tidak dengan perintah berikut:

sudo systemctl status mysql

Jika semuanya baik-baik saja, Anda akan melihat output berikut:

?? mariadb.service - server database MariaDB Dimuat:dimuat (/lib/systemd/system/mariadb.service; diaktifkan; preset vendor:diaktifkan) Aktif:aktif (berjalan) sejak Minggu 17-09-2017 10:11:20 EDT; 10 menit yang lalu Proses:715 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (kode=keluar, status=0/SUCCESS) Proses:713 ExecStartPost=/etc/mysql/debian-start (kode=keluar, status=0 /SUKSES) Proses:545 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] &&VAR=|| VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ] &&systemctl set Proses:535 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (kode=keluar, status=0/SUCCESS) Proses:514 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (kode=keluar, status=0/SUCCESS) PID Utama:661 (mysqld) Status:"Menerima permintaan SQL Anda sekarang..." Tugas:26 (batas:4915) CGroup:/system.slice/mariadb.service ??????661 /usr/sbin/mysqld17 Sep 10:11:11 debian systemd[1]:Memulai server database MariaDB...17 Sep 10:11:15 debian mysqld[661]:17-09 2017 10:11:15 140287134630464 [Catatan] /usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) dimulai sebagai proses 17 Sep 10:11:20 debian systemd[1 ]:Memulai server database MariaDB.

Sekarang, node kedua Anda seharusnya secara otomatis tertaut ke cluster. Anda dapat memverifikasinya dengan perintah berikut:

mysql -u root -p -e "tampilkan status seperti 'wsrep_cluster_size'"

Jika semuanya bekerja dengan baik, ukuran cluster harus disetel ke dua:

+--------------------+-------+| Nama_variabel | Nilai |+--------------------+-------+| wsrep_cluster_size | 2 |+--------------------+-------+

Di Node3, mulai layanan MariaDB:

sudo systemctl start mysql
mysql -u root -p -e "tampilkan status seperti 'wsrep_cluster_size'"

Jika semuanya bekerja dengan baik, ukuran cluster harus disetel ke tiga:

+--------------------+-------+| Nama_variabel | Nilai |+--------------------+-------+| wsrep_cluster_size | 3 |+--------------------+-------+

Cluster Anda sekarang bekerja dan saling berkomunikasi.

Uji Replikasi Basis Data

Sekarang, semua node sudah online, saatnya menguji replikasi database di seluruh Galera Cluster. Mari kita mulai dengan membuat database di Node1 dan memeriksa apakah database direplikasi di semua node.

Pertama, login ke konsol MariaDb dengan perintah berikut:

mysql -u root -p

Masukkan kata sandi root Anda dan buat database dengan nama test_db:

MariaDB [(none)]> buat database test_db;
MariaDB [(none)]> tampilkan database;
+--------------------+| Basis Data |+--------------------+| test_db |+------+

Sekarang masuk ke Node2 dan Node3, lalu periksa apakah replikasi berfungsi atau tidak:

mysql -u root -p
MariaDB [(none)]> tampilkan database;
+--------------------+| Basis Data |+--------------------+| test_db |+-----------------------+

Selamat! Anda telah berhasil menginstal dan mengkonfigurasi MariaDB Galera Cluster di server Ubuntu 16.04.

Kesimpulan

Saya harap Anda sekarang memiliki cukup pengetahuan untuk menginstal dan mengkonfigurasi MariaDB Galera Cluster di Ubuntu 16.04. Anda sekarang dapat dengan mudah meningkatkan hingga beberapa, atau bahkan lusinan, node yang berbeda. Jika Anda memiliki keraguan atau pertanyaan lebih lanjut, lihat tautan Galera Cluster Doc


Ubuntu
  1. Cara Mengatur Cluster MariaDB Galera di Ubuntu 20.04

  2. Cara Menginstal LiteCart di Ubuntu 15.04

  3. Cara Menginstal dan Mengkonfigurasi MariaDB Galera Cluster 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 MariaDB di Ubuntu 20.04

  1. Cara Menginstal MariaDB di Ubuntu 20.04 LTS

  2. Cara Menginstal MariaDB di Ubuntu 18.04 / Ubuntu 16.04

  3. Cara Menginstal MariaDB di Ubuntu 20.04 LTS