Replikasi data adalah proses menyalin data Anda di beberapa server untuk meningkatkan ketersediaan data dan meningkatkan keandalan dan kinerja aplikasi. Dalam replikasi MySQL, 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 mengatur replikasi MySQL (Master-Slave) dalam distribusi berbasis RHEL seperti CentOS, Fedora, Rocky Linux, dan AlmaLinux
Pengaturan Replikasi MySQL
Jadi, inilah pengaturan lab replikasi MySQL kami
MySQL Master - 10.128.0.14 MySQL Slave - 10.128.15.211Mari kita mulai…
Langkah 1. Instal MySQL di Server Master dan Slave
Kami akan memulai dengan menginstal database MySQL di server master dan slave
$ sudo dnf install @mysqlSetelah penginstalan selesai, pastikan untuk memulai server database
$ sudo systemctl start mysqldKemudian aktifkan untuk memulai startup sistem atau saat reboot
$ sudo systemctl enable mysqldSetelah itu, konfirmasikan bahwa server database MySQL berjalan seperti yang ditunjukkan
Langkah 2. Amankan MySQL di Server Master dan Slave
Langkah selanjutnya adalah mengamankan database MySQL baik di server master maupun server slave. Ini karena pengaturan default tidak aman dan menghadirkan beberapa celah yang dapat dengan mudah dimanfaatkan oleh peretas
Jadi, untuk mengeraskan MySQL, jalankan perintah
$ sudo mysql_secure_installationPertama, Anda akan diminta untuk mengatur kata sandi root MySQL. Pastikan untuk memberikan kata sandi root yang kuat, sebaiknya dengan lebih dari 8 karakter yang merupakan campuran huruf besar, huruf kecil, karakter khusus, dan angka
Untuk petunjuk yang tersisa, ketik $ sudo systemctl start mysqld _5 untuk men-tweak server database ke pengaturan yang disarankan
Setelah Anda selesai melakukan instalasi dan hardening MySQL pada node master dan slave, selanjutnya adalah melakukan konfigurasi pada node master
Langkah 3. Konfigurasi Node Master (Server)
Langkah selanjutnya adalah mengonfigurasi node Master dan memberikan akses ke node slave. Pertama, kita perlu mengedit mysql-server. file konfigurasi cnf
$ sudo vim /etc/my.cnf.d/mysql-server.cnfTambahkan baris berikut di bawah bagian $ sudo systemctl start mysqld 6
bind-address = 10.128.0.14 server-id = 1 log_bin = mysql-bin _Setelah selesai, simpan perubahan dan keluar. Kemudian restart server MySQL
$ sudo sysemctl restart mysqldSelanjutnya, masuk ke shell MySQL
Jalankan perintah berikut untuk membuat pengguna basis data yang akan digunakan untuk mengikat master dan budak untuk replikasi
$ sudo dnf install @mysql 0Terapkan perubahan dan keluar dari server MySQL
$ sudo dnf install @mysql _1Verifikasi status master
$ sudo dnf install @mysql 2Catat Nama File dan Posisinya. Anda akan memerlukannya nanti saat menyiapkan budak untuk replikasi. Dalam kasus kami, kami memiliki nama file sebagai $ sudo systemctl start mysqld 7 dan Posisi 1232
Langkah 4. Konfigurasikan Node Budak (Server)
Sekarang, kembali ke node Slave. Sekali lagi, edit mysql-server. file konfigurasi cnf
$ sudo vim /etc/my.cnf.d/mysql-server.cnfSeperti sebelumnya, rekatkan baris ini di bawah bagian $ sudo systemctl start mysqld 6. Ubah alamat IP agar sesuai dengan IP budak. Juga, tetapkan id server yang berbeda. Di sini kami telah memberinya nilai 2
$ sudo dnf install @mysql _4Simpan perubahan dan keluar dari file. Kemudian restart server database
$ sudo dnf install @mysql _5Untuk mengonfigurasi node Slave untuk mereplikasi dari node Master, masuk ke server MySQL Slave
$ sudo mysql -u root -pPertama dan terpenting, hentikan utas replikasi
Kemudian jalankan perintah berikut untuk mengonfigurasi node slave untuk mereplikasi database dari master
$ sudo dnf install @mysql _8Perhatikan bahwa flag MASTER_LOG_FILE dan MASTER_LOG_POS sesuai dengan nilai file dan Posisi dari simpul Master di akhir Langkah 1
MASTER_HOST, MASTER_USER, dan MASTER_PASSWORD sesuai dengan alamat IP Master, pengguna replikasi, dan kata sandi pengguna replikasi.
Kemudian mulai utas replikasi budak
$ sudo dnf install @mysql 9Langkah 4. Menguji Replikasi Master-Slave MySQL
Sekarang, untuk menguji apakah replikasi antara node master dan slave berfungsi, masuk ke server database MySQL di node master
$ sudo mysql -u root -pBuat database pengujian. Di sini, database pengujian kami disebut replication_db
$ sudo systemctl start mysqld 1$ sudo systemctl start mysqld 2$ sudo systemctl start mysqld 3Sekarang, buka node slave, masuk ke server MySQL dan konfirmasikan bahwa database replication_db ada. Dari output di bawah ini, kita dapat melihat bahwa database hadir. Ini adalah konfirmasi bahwa replikasi telah terjadi dari Master ke node slave
$ sudo systemctl start mysqld 3Dan itu saja, kami telah berhasil menunjukkan bagaimana Anda dapat mengatur model replikasi master-slave MySQL yang dapat mereplikasi database dari node master ke node slave