MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Cara Mengatur Replikasi Master-Slave MySQL di Ubuntu 18.04

MySQL replikasi master-slave adalah prosedur yang memungkinkan file database direplikasi atau disalin di satu atau lebih node dalam jaringan. Penyiapan ini menyediakan redundansi dan toleransi kesalahan sedemikian rupa sehingga jika terjadi kegagalan di node Master , database masih dapat dipulihkan di simpul Slave . Hal ini memberikan ketenangan pikiran kepada pengguna bahwa semua tidak akan hilang dalam segala kemungkinan karena replika database masih dapat diambil dari server yang berbeda.

Dalam panduan ini, Anda akan mempelajari cara melakukan MySQL basis data Tuan-budak replikasi pada Ubuntu 18.04 sistem.

Prasyarat

Dalam pengaturan, kita akan memiliki dua server yang menjalankan Ubuntu 18.04 dengan alamat IP berikut.

Master server: 10.128.0.28
Slave server: 10.128.0.29

Sekarang mari selami dan lihat bagaimana kita dapat mengonfigurasi Master-slave penyiapan replikasi di Ubuntu .

Langkah 1:Instal MySQL pada Master dan Slave Nodes

Ubuntu repositori berisi versi 5.7 dari MySQL . Untuk memanfaatkan fitur baru dan menghindari potensi masalah, Anda harus menginstal versi MySQL terbaru. Tapi pertama-tama, mari kita perbarui kedua node menggunakan perintah apt berikut.

$ sudo apt update

Untuk menginstal MySQL di kedua node, jalankan perintah.

$ sudo apt install mysql-server mysql-client

Selanjutnya, Buka mysql file konfigurasi.

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

Di Nodus master , gulir dan temukan bind-address atribut seperti yang ditunjukkan di bawah ini.

bind-address 	 =127.0.0.1

Ubah alamat loopback agar sesuai dengan alamat IP dari Master node .

bind-address  	=10.128.0.28

Selanjutnya, tentukan nilai untuk server-id atribut di [mysqld] bagian. Nomor yang Anda pilih tidak boleh cocok dengan nomor server-id lainnya. Mari kita tetapkan nilai 1 .

server-id	 =1

Di akhir file konfigurasi, salin dan tempel baris di bawah ini.

log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Keluar dari file konfigurasi dan mulai ulang layanan MySQL agar perubahan diterapkan pada node Master.

$ sudo systemctl restart mysql

Untuk memverifikasi bahwa server MySQL berjalan seperti yang diharapkan, jalankan perintah.

$ sudo systemctl status mysql

Sempurna! Server MySQL berjalan seperti yang diharapkan!

Langkah 2:Buat Pengguna Baru untuk Replikasi di Master Node

Di bagian ini, kita akan membuat pengguna replikasi di node master . Untuk mencapai ini, masuk ke server MySQL seperti yang ditunjukkan.

$ sudo mysql -u root -p

Selanjutnya, lanjutkan dan jalankan kueri di bawah ini untuk membuat pengguna replika dan memberikan akses ke budak replikasi. Ingatlah untuk menggunakan alamat IP Anda.

mysql> CREATE USER 'replication_user'@'10.128.0.29' IDENTIFIED BY 'replica_password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication_user '@'10.128.0.29';

Selanjutnya, jalankan perintah berikut.

mysql> SHOW MASTER STATUS\G

Outputnya harus mirip dengan apa yang Anda lihat di bawah.

Perhatikan dan perhatikan mysql-bin.000002 nilai dan ID Posisi 1643 . Nilai-nilai ini akan sangat penting saat menyiapkan server budak .

Langkah 3:Konfigurasi Server Budak MySQL

Pergilah ke server budak dan seperti yang kami lakukan dengan server Master , buka file konfigurasi MySQL.

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

Sama seperti server master , lanjutkan untuk mengedit baris berikut.

bind-address           = 10.128.0.29

Seperti sebelumnya, tentukan nilai untuk server-id atribut di [mysqld] bagian. Kali ini pilih nilai yang berbeda. Ayo gunakan 2 .

server-id		=2 

Sekali lagi, tempel baris di bawah ini di bagian paling akhir file konfigurasi.

log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Selanjutnya restart server MySQL pada node slave.

$ sudo systemctl restart mysql

Setelah selesai, simpan dan keluar dari editor teks

Selanjutnya, masuk ke shell MySQL seperti yang ditunjukkan.

$ sudo mysql -u root -p

Pada langkah ini, Anda perlu membuat beberapa konfigurasi yang memungkinkan server budak untuk terhubung ke server master . Tapi pertama-tama, hentikan utas budak seperti yang ditunjukkan.

mysql> STOP SLAVE; 

Untuk mengizinkan server budak untuk mereplikasi server Master , jalankan perintah.

mysql> CHANGE MASTER TO MASTER_HOST ='10.128.0.28', MASTER_USER ='replication_user', MASTER_PASSWORD ='[email protected]', MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 1643;

Jika Anda cukup tertarik, Anda akan melihat bahwa kami telah menggunakan mysql-bin.00002 nilai dan ID posisi 1643 sebelumnya ditampilkan setelah membuat pengguna replikasi budak.

Selain itu, alamat IP server Master, pengguna replikasi, dan kata sandi telah digunakan.

Kemudian, mulai utas yang sebelumnya Anda hentikan.

mysql> START SLAVE;

Langkah 4:Verifikasi Replikasi Master-Slave MySQL

Untuk memeriksa apakah setup benar-benar bekerja seperti yang diharapkan, kita akan membuat database baru di master dan memeriksa apakah database tersebut telah direplikasi di server MySQL Slave.

Masuk ke MySQL di server Master .

$ sudo mysql -u root -p

Mari kita buat database pengujian. Dalam hal ini, kita akan membuat database bernama replication_db .

mysql> CREATE DATABASE replication_db;

Sekarang, masuk ke instance MySQL Anda di server budak .

$ sudo mysql -u root -p

Sekarang buat daftar database menggunakan kueri.

mysql> SHOW DATABASES;

Anda akan melihat database yang Anda buat di master telah direplikasi pada budak . Luar biasa ! Replikasi Master-slave MySQL Anda berfungsi seperti yang diharapkan! Sekarang Anda dapat yakin bahwa jika terjadi kegagalan, salinan file database akan direplikasi ke server slave.

Kesimpulan

Dalam panduan ini, Anda mempelajari cara menyiapkan MySQL Master-slave pengaturan replikasi di Ubuntu 18.04 .


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara mengatur useMongoClient (Mongoose 4.11.0)?

  2. Perbarui elemen dalam array jika ada yang lain masukkan elemen baru dalam array itu di MongoDb

  3. Mongo mencoba terhubung secara otomatis ke port 27017 (localhost)

  4. Performa agregasi pencarian yang buruk

  5. Pertempuran Database NoSQL - Membandingkan MongoDB dan CouchDB