Saat kami mengharapkan throughput yang lebih tinggi, biasanya akan meningkatkan operasi baca dan operasi tulis database. Jadi kita membutuhkan cara untuk mereplikasi data dari database dengan menambahkan beberapa server [budak] yang memungkinkan server aplikasi untuk membaca dari mereka, bukan dari server master. Master hanya akan menangani operasi tulis
Cara mengatur replikasi Master Slave ini sangat berguna karena akan membuat banyak salinan data Anda, memberikan redundansi jika salah satu budak gagal, ini dapat meningkatkan ketersediaan, skalabilitas karena kita dapat menambahkan lebih banyak budak ketika kita mendapatkan yang lebih tinggi . Praktek ini dengan melakukan sinkronisasi pada beberapa database disebut replikasi
Tutorial ini diharapkan Anda sudah memiliki beberapa pengetahuan dasar tentang sistem manajemen basis data relasional dan bekerja dengan OS GNU/Linux
Jadi yang perlu kita lakukan sekarang adalah menginstal server MySQL master terlebih dahulu. Saya akan menginstal ini di Ubuntu 21. 10. Kami juga akan menggunakan VirtualBox di mesin lokal kami, kami dapat mengunduh Ubuntu 21 yang sudah disiapkan. 10 gambar yang bisa kita impor ke VirtualBox dan kita tidak perlu menginstal OS sendiri
Kami juga tentu saja dapat menggunakan penyedia cloud untuk menyiapkan server yang juga telah menyiapkan gambar yang siap digunakan. Tapi apa pun yang akan berhasil untuk tutorial ini
Menginstal VirtualBox dan mengunduh gambar UbuntuJadi mari kita mulai mengunduh VirtualBox di sini. https. // www. virtualbox. org/wiki/Linux_Downloads dan pilih Ubuntu 19. 10/20. 04/20. 10/21. 04. Kemudian buka perangkat lunak di Perangkat Lunak Ubuntu dan tekan Instal
Sekarang kita unduh gambar Ubuntu di sini. https. // www. osboxes. org/ubuntu/ dan pilih Ubuntu 21. 10 Indri nakal. File akan diunduh dengan 7zip jadi kita perlu mengekstraknya. Informasi login yang akan kita perlukan nanti bisa kita temukan dengan menekan tombol Info
Buka VirtualBox dan tekan tombol Baru
Sekarang akan muncul popup di mana Anda akan memasukkan nama VM, direktori untuk menempatkan data, jenis OS dan versinya
Isi informasi di atas mengharapkan Folder Mesin dan tekan Berikutnya
Sekarang ia akan menanyakan berapa ukuran memori yang harus dialokasikan. Gunakan pengaturan default. Jika kamu menemukan
Di sini kita akan menekan "Gunakan file hard disk virtual yang ada" dan tekan ikon direktori
Tambahkan hard disk [VDI]
Popup ini akan muncul dan kita tekan Add
Temukan Anda. vdi tempat Anda mengekspor file 7zip dan tekan Buka. Sekarang lanjutkan menyimpan VM
Sebelum kita mulai, kita perlu mengatur jaringan ke adaptor yang dijembatani dengan masuk ke Pengaturan sehingga kita bisa mendapatkan IP unik untuk VM
Sekarang kami memiliki VM yang dapat kami mulai, jadi tekan tombol Mulai dan Ubuntu akan dimuat
Jika Anda menghadapi masalah dengan kursor yang berkedip atau kesulitan memulai sama sekali. Anda mungkin ingin menambah RAM untuk VM atau memori grafis. Periksa juga apakah CPU Anda mendukung virtualisasi perangkat keras. Ini dapat dilakukan dengan perintah di GNU/Linux dengan
egrep -c ‘[vmx|svm]’ /proc/cpuinfo
Jika Anda mendapatkan nilai lebih dari 0, perangkat keras Anda mendukungnya
Sekarang masuk dengan menggunakan kredensial
Login ke sistem dengan menggunakan kata sandi. osboxes. org
Sekarang kita dapat menonaktifkan GUI jika kita mau dengan membuka Terminal dan masuk
sudo systemctl set-default multi-user
_Sekarang reboot sistem dan kita akan melihat CLI saja
Ubuntu CLISetup MySQL master VM
Jadi sekarang kami login dengan kredensial dan kami mulai menginstal semua paket dan dependensi yang diperlukan
sudo apt-get update
sudo apt-get install mysql-server mysql-client -y
Sekarang kita perlu mendapatkan alamat IP dari VM dengan menggunakan perintah
ip addr show
192. 168. 32. 10
Salin nilai inet pada ethernet kedua dalam hal ini harus 192. 168. 32. 10
Siapkan VM budak MySQLJadi lakukan seperti instruksi sebelumnya dengan membuat VM baru dengan gambar yang sama dengan yang kita unduh. Tapi itu bisa menjadi masalah untuk melampirkan. vdi file lagi karena akan memiliki UUID yang sama. Jadi kita perlu mengubahnya terlebih dahulu dengan masuk ke baris perintah dan masuk
VBoxManage internalcommands sethduuid .vdi
_Kemudian lanjutkan pengaturan VM dan kemudian kami menginstal paket lagi
sudo apt-get update
sudo apt-get install mysql-server mysql-client -y
Mari dapatkan alamat IP dari VM ini dengan mendapatkannya dengan cara yang sama seperti sebelumnya dan menyimpannya
Konfigurasi master MySQLBuka konfigurasi dengan VIM atau Nano
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
_Temukan baris yang berisi bind-address dan ganti nilainya dengan alamat IP master MySQL yang kita dapatkan sebelumnya. Selanjutnya kita akan menemukan baris-baris ini di file dan menghapus komentar
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
Untuk menghindari masalah yang saya miliki untuk waktu yang lama adalah menghapus baris ini juga
mysqlx-bind-address = 127.0.0.1
_Sekarang mari kita restart layanan MySQL
sudo service mysql restart
_Konfirmasikan apakah MySQL berjalan dengan
sudo systemctl set-default multi-user
_0Jika kami membuat kesalahan dalam konfigurasi kami atau IP tidak benar, kami akan melihat bahwa itu dalam keadaan gagal di sini
Kami akan melakukan beberapa konfigurasi tambahan ke server ini di tahap selanjutnya. Pertama-tama kita harus mengatur VM budak MySQL
Kami sekarang akan membuat pengguna yang harus digunakan untuk budak sehingga mereka dapat masuk ke master MySQL. Masukkan perintah berikut di bawah ini
sudo systemctl set-default multi-user
_1Kami dapat memverifikasi status dengan menggunakan
sudo systemctl set-default multi-user
_2Sekarang kita perlu memindahkan data yang kita miliki ke slave. Jadi keluar dari MySQL CLI. Kami melakukan dump MySQL dan menyimpannya ke a. .sql
sudo systemctl set-default multi-user
3Konfigurasi budak MySQLKami membuka konfigurasi MySQL budak dan mengatur alamat bind ke IP di sini dan juga mengomentari baris seperti sebelumnya tetapi ingat untuk mengatur server-id ke 2, bukan 1. Kemudian kami me-restart layanan MySQL
sudo systemctl set-default multi-user
_4Ganti MASTER_HOST dengan alamat IP master Anda dan MASTER_LOG_FILE dengan nama file yang Anda dapatkan saat menjalankan SHOW MASTER STATUS;
Siapkan kunci SSH publik/pribadi untuk mentransferMari mentransfer data. sql ke server slave dari master. Tapi kita perlu membuat kunci publik/pribadi agar kita bisa mentransfernya dengan SCP. Jadi buat kunci dari master dengan menjalankan
sudo systemctl set-default multi-user
_5Lewati nama atau frasa sandi yang berbeda. Kemudian buka kunci publik
sudo systemctl set-default multi-user
_6Salin konten dan kemudian pergi ke server budak MySQL. Di sini kita perlu menginstal openssh-server
sudo systemctl set-default multi-user
_7Kemudian buka konfigurasi SSH
sudo systemctl set-default multi-user
_8Ubah PermitRootLogin dan atur ke Ya. Simpan file. Kemudian buat file berikut
sudo systemctl set-default multi-user
_9Kemudian buka dan rekatkan kunci publik yang kami buat sebelumnya. Jalankan perintah berikut sekarang untuk memulai kembali layanan SSH
sudo apt-get update
sudo apt-get install mysql-server mysql-client -y
0Sekarang kita harus bisa berkomunikasi dengan server slave. Kita dapat mengujinya dengan
sudo apt-get update
sudo apt-get install mysql-server mysql-client -y
1Jika kita mendapatkan status keluar dari 0 seharusnya baik-baik saja. Sekarang kami benar-benar akan mentransfer file dump yang kami hasilkan
sudo apt-get update
sudo apt-get install mysql-server mysql-client -y
2Sekarang kita seharusnya dapat melihat file tersebut, dan kita melakukannya
Kita dapat melihat di sini bahwa data. sql ada di direktori home Import MySQL Dump File to MySQL slave
Sekarang mari impor file dump MySQL
sudo apt-get update
sudo apt-get install mysql-server mysql-client -y
_3Sekarang kita harus memiliki data yang sama di budak kita. Kami dapat mengonfirmasi hal itu dengan masuk ke MySQL CLI
Jadi kita punya data yang sama. Bagus
Ayo pergi dan tambahkan database baru ke master kita untuk memeriksa apakah replikasi kita berfungsi
Kami menambahkan database baru sekarang replica_db di MySQL master
Baiklah jadi kami memiliki lima database saat ini. Mari kita periksa apakah semuanya direplikasi ke budak MySQL kita
Kita sekarang melihat bahwa replica_db kita telah ditambahkan ke slave
Jika Anda mengalami masalah selama penyiapan, Anda dapat melihat Daftar Periksa Replikasi di sini. https. //dev. mysql. com/doc/mysql-replication-excerpt/8. 0/id/masalah-replikasi. html
Itu saja untuk tutorial ini. Ada banyak pengaturan yang harus kita tambahkan untuk produksi, tetapi saya tidak akan membahasnya di sini karena ini akan cukup luas, mungkin di tutorial mendatang. Kirimi saya komentar jika Anda ingin mempelajarinya lebih lanjut