Replikasi data adalah proses menyalin data Anda di beberapa server untuk meningkatkan ketersediaan data dan meningkatkan keandalan dan kinerja aplikasi. Di MySQL replikasi, data disalin dari database dari server master ke node lain secara real-time untuk memastikan konsistensi data dan juga untuk menyediakan cadangan dan redundansi.
Dalam panduan ini, kami mendemonstrasikan bagaimana Anda dapat menyiapkan MySQL (Tuan-Budak ) replikasi dalam distribusi berbasis RHEL seperti CentOS , Fedora , Linux Rocky, dan AlmaLinux .
Pengaturan Replikasi MySQL
Jadi, inilah MySQL our kami penyiapan lab replikasi.
MySQL Master - 10.128.0.14 MySQL Slave - 10.128.15.211
Mari kita mulai…
Langkah 1:Instal MySQL di Server Master dan Slave
Kami akan memulai dengan menginstal MySQL database di kedua master dan budak server.
$ sudo dnf install @mysql
Setelah penginstalan selesai, pastikan untuk memulai server database.
$ sudo systemctl start mysqld
Kemudian aktifkan untuk memulai startup sistem atau saat reboot.
$ sudo systemctl enable mysqld
Setelah itu, konfirmasikan bahwa MySQL server database berjalan seperti yang ditunjukkan:
$ sudo systemctl status mysqld
Langkah 2:Amankan MySQL di Server Master dan Slave
Langkah selanjutnya adalah mengamankan MySQL database di kedua master dan budak server. Ini karena pengaturan default tidak aman dan menghadirkan beberapa celah yang dapat dengan mudah dieksploitasi oleh peretas.
Jadi, untuk mengeraskan MySQL, jalankan perintah:
$ sudo mysql_secure_installation
Pertama, Anda akan diminta untuk mengatur MySQL kata sandi akar. Pastikan untuk memberikan kata sandi root yang kuat, sebaiknya dengan lebih dari 8 karakter yang merupakan campuran karakter huruf besar, huruf kecil, khusus, dan numerik.
Untuk petunjuk selanjutnya, ketik 'Y'
untuk mengubah server database ke pengaturan yang disarankan.
Setelah Anda selesai menginstal dan mengeraskan MySQL pada node master dan slave, selanjutnya adalah mengkonfigurasi node master.
Langkah 3:Konfigurasi Node Master (Server)
Langkah selanjutnya adalah mengonfigurasi Master simpul dan berikan budak akses simpul ke sana. Pertama, kita perlu mengedit mysql-server.cnf file konfigurasi.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf
Tambahkan baris berikut di bawah [mysqld]
bagian.
bind-address = 10.128.0.14 server-id = 1 log_bin = mysql-bin
Setelah selesai, simpan perubahan dan keluar. Kemudian mulai ulang MySQL server.
$ sudo sysemctl restart mysqld
Selanjutnya, masuk ke MySQL cangkang.
$ sudo mysql -u root -p
Jalankan perintah berikut untuk membuat pengguna database yang akan digunakan untuk mengikat master dan slave untuk replikasi.
mysql> CREATE USER 'replica'@'10.128.15.211' IDENTIFIED BY '[email protected]'; mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'10.128.15.211';
Terapkan perubahan dan keluar dari MySQL server.
mysql> FLUSH PRIVILEGES; mysql> EXIT;
Verifikasi status master.
mysql> SHOW MASTER STATUS\G
Perhatikan Nama File dan Posisinya. Anda akan membutuhkan ini nanti saat menyiapkan slave untuk replikasi. Dalam kasus kami, kami memiliki nama file sebagai mysql-bin.000001
dan Posisi 1232 .
Langkah 4:Konfigurasi Budak Node (Server)
Sekarang, kembali ke node Slave. Sekali lagi, edit mysql-server.cnf file konfigurasi.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf
Seperti sebelumnya, rekatkan baris ini di bawah [mysqld]
bagian. Ubah alamat IP agar sesuai dengan IP budak. Juga, tetapkan server-id different yang berbeda . Di sini kami telah menetapkan nilai 2 .
bind-address = 10.128.15.211 server-id = 2 log_bin = mysql-bin
Simpan perubahan dan keluar dari file. Kemudian restart server database.
$ sudo systemctl restart mysqld
Untuk mengonfigurasi Budak node untuk mereplikasi dari node Master, login ke server MySQL Slave.
$ sudo mysql -u root -p
Pertama dan terpenting, hentikan utas replikasi:
mysql> STOP SLAVE;
Kemudian jalankan perintah berikut untuk mengkonfigurasi node budak untuk mereplikasi database dari master.
mysql> CHANGE MASTER TO MASTER_HOST='10.128.0.14' , MASTER_USER='replica' , MASTER_PASSWORD='[email protected]' , MASTER_LOG_FILE='mysql-bin.000001' , MASTER_LOG_POS=1232;
Perhatikan bahwa MASTER_LOG_FILE dan MASTER_LOG_POS bendera sesuai dengan file dan Posisi nilai dari Master simpul di akhir Langkah 1.
MASTER_HOST , MASTER_USER, dan MASTER_PASSWORD sesuai dengan alamat IP Master, pengguna replikasi, dan sandi pengguna replikasi.
Kemudian mulai utas replikasi budak:
mysql> START SLAVE;
Langkah 4:Menguji Replikasi Master-Slave MySQL
Sekarang, untuk menguji apakah replikasi antara node master dan slave berfungsi, masuk ke server database MySQL pada node master:
$ sudo mysql -u root -p
Buat database pengujian. Di sini, basis data pengujian kami disebut replication_db .
mysql> CREATE DATABASE replication_db;
Verify the existence of the database.
mysql> SHOW DATABASES;
Sekarang, pergilah ke node slave, masuk ke server MySQL dan konfirmasikan bahwa replication_db basis data hadir. Dari output di bawah ini, kita dapat melihat bahwa database hadir. Ini adalah konfirmasi bahwa replikasi telah terjadi dari Master ke node slave.
mysql> SHOW DATABASES;
Dan hanya itu, kami telah berhasil menunjukkan bagaimana Anda dapat menyiapkan MySQL model replikasi master-slave yang dapat mereplikasi database dari node master ke node slave.