Pendahuluan
Dalam komputasi awan, replikasi data master-slave mengacu pada penyimpanan informasi yang sama di beberapa server. Satu server mengontrol grup, dan perangkat lain menangani pekerjaan dalam node yang sama.
Replikasi menjadi perlu:
- Saat perusahaan membutuhkan backup harian reguler yang dapat memulihkan database master MySQL jika terjadi malfungsi penyimpanan.
- Di mana pun informasi harus disimpan, diperiksa, dan dimodifikasi oleh beberapa orang, di beberapa komputer. Jika anggota grup mengidentifikasi kebutuhan untuk perubahan, itu harus pergi ke master node yang ditunjuk.
Panduan ini akan memandu Anda melalui cara menyiapkan replikasi master-slave di MySQL.
Prasyarat
- Sistem berbasis Linux, seperti CentOS
- Akun pengguna dengan sudo hak istimewa
- Penginstal paket seperti yum atau sesuai , biasanya disertakan secara default
- IP pribadi server awan (untuk menghindari biaya bandwidth pada IP publik selama konfigurasi)
Langkah-Langkah Menyiapkan Replikasi Basis Data Master-Slave di MySQL
Enak (Yellowdog Updater, Modified) adalah alat manajemen paket untuk sistem Linux RedHat Package Manager. Di .deb paket, yum alat ini biasanya diganti dengan apt alat. Oleh karena itu, dalam perintah yang diberikan apt-get biasanya dapat menggantikan yum .
Misalnya, perintah install adalah yum install [package_name]
atau apt-get install [package_name]
untuk hasil yang identik. Artikel ini mengasumsikan bahwa Anda menggunakan distribusi Linux berbasis RPM. Oleh karena itu, yum
perintah yang digunakan.
Database master MySQL berjalan dalam mode baca-tulis. Sementara itu, server budak berjalan sebagai read-only. Sekarang, ke replikasi.
Langkah 1:Konfigurasi Database MySQL untuk Replikasi
Gunakan mysqldump
perintah untuk melakukan dump-and-restore informasi ke database slave. Perintah ini membuang data ke dalam file, mentransfernya, dan mengembalikannya ke node slave.
Langkah 2:Buat 2 Server Cloud Terpisah
Pada langkah ini, pengguna yang memiliki hak istimewa harus masuk ke kontrol cloud. Dengan CentOS, ini dimungkinkan melalui gambar dasar CentOS 6.
Buat dua server cloud Linux dengan RAM yang sesuai dan berikan nama yang berbeda.
Langkah 3:Perbarui Semua Paket Perangkat Lunak ke Versi Saat Ini
Pengguna dan administrator sistem dapat memperbarui semua paket perangkat lunak pada sistem Linux berbasis RPM dengan perintah berikut:
yum update
Langkah 4:Instal MySQL
Untuk sistem Linux berbasis RedHat Package Manager, instal paket server MySQL di kedua server cloud dengan perintah:
yum install mysql-server
Setel layanan agar berjalan setiap kali sistem melakukan boot dengan perintah:
chkconfig mysqld on
Langkah 5:Mulai MySQL
Sekarang, cari tahu apakah MySQL telah diinstal dengan benar. Jika ya, Anda seharusnya dapat memulai layanan dengan perintah:
service mysqld start
Langkah 6:Siapkan Kata Sandi Root Server MySQL
Merupakan ide bagus untuk mengatur kata sandi pengguna administratif untuk MySQL. Untuk menyetel sandi, jalankan skrip untuk penginstalan aman yang menyertai paket MySQL, merespons dengan Y untuk semua perintah Y/n.
Atau, gunakan /usr/bin/mysqladmin -u root password
diikuti dengan spasi dan kata sandi baru Anda; dan /usr/bin/mysqladmin -u root -h web01 password
diikuti dengan spasi dan, sekali lagi, kata sandi baru Anda.
Langkah 7:Konfigurasi Firewall untuk Akses Basis Data
Menerapkan aturan TCP Port 3306 menambahkan Kebijakan Firewall yang mengizinkan lalu lintas pada port 3306. Aturan ini memungkinkan komunikasi yang tepat antar perangkat.
Untuk menyimpan konfigurasi firewall, gunakan perintah:
service iptables save
Berhati-hatilah setiap kali membuka port untuk memastikan Anda menghindari peretasan.
Langkah 8:Konfigurasi Server untuk Replikasi
Setiap server budak membutuhkan cara untuk terhubung ke server master. Untuk membuat koneksi, Anda memerlukan nama pengguna dan kata sandi MySQL. Ini mengharuskan Anda untuk menyiapkan akun pengguna MySQL di server master.
Sebaiknya buat akun khusus untuk replikasi. Untuk fungsi ini, berikan akun apa pun hak istimewa budak replikasi. Anda dapat membuat akun yang sama atau akun yang berbeda untuk setiap budak. Anda selalu dapat menemukan nama pengguna dan kata sandi pada akun dalam teks biasa di repositori master.
Untuk menyiapkan akun pengguna baru yang disebut replikasi , dan izinkan untuk terhubung untuk tujuan replikasi dari host mana pun di situsanda.com domain, jalankan perintah ini di server master:
mysql> CREATE USER 'replication'@'%.yoursite.com' IDENTIFIED BY [space followed by password]; then: mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%.yoursite.com';
Langkah 9:Pastikan Data di Server Anda Cocok
Duplikat data melalui dumping dari master ke server slave.
Tabel flush harus diatur dengan kunci baca. Basis data server master tidak boleh menerima perubahan baru selama langkah ini. Jika ada informasi di server master untuk berkoordinasi dengan server budak sebelum proses replikasi dimulai, lakukan tindakan berikut:
- Berhenti memproses perintah apa pun di server master.
- Salin nama file dan koordinat saat ini untuk server master dalam log binernya (lihat Langkah 10, di bawah). Ini akan dibutuhkan nanti saat menyelesaikan konfigurasi replikasi.
- Sebelum mengaktifkan server master Anda untuk terus mengikuti perintah, buang datanya.
Lakukan semua tindakan ini dengan hati-hati untuk memastikan bahwa dump data akan cocok dengan data saat ini dari server master. Jika tidak, database slave akan tidak cocok atau rusak.
Langkah 10:Ambil Cuplikan Basis Data Master
Saat Anda melakukan tindakan berikut, perhatikan bahwa hanya satu cuplikan dari database master adalah semua yang Anda butuhkan untuk mengkonfigurasi beberapa server budak.
Jika Anda belum mengonfigurasi server-id dan memulai log biner di server master, Anda harus mematikan server. Anda dapat mengambil snapshot dari database sekarang.
Bawa file data ke direktori server budak:
shell> tar xvf dbdump.tar
Jika perlu, tetapkan kepemilikan dan izin untuk file tersebut. Anda mungkin perlu mengizinkan akses server budak dan kemampuan untuk melakukan modifikasi. Mulai budak dengan --skip-slave-start
untuk menghindari replikasi.
Konfigurasikan server budak Anda dengan nama host server master dan kredensial login. Gunakan koordinat replikasi server master untuk database budak. Anda mengarahkan slave ke titik di mana replikasi dimulai, menggunakan file dan posisi log biner.
Untuk server master yang dikonfigurasi, Anda dapat menggunakan mysqldump
untuk mengambil snapshot.
Sekarang Anda dapat memperbarui konfigurasi budak. Sekali lagi, pastikan untuk memulai slave dengan --skip-slave-start
untuk menghindari replikasi.
Impor dump dengan perintah:
shell> mysql < fulldb.dump
Langkah 11:Mulai Utas Budak
Untuk segera melihat pembaruan pada server budak gunakan:
mysql> START SLAVE;