Cara menggunakan ukuran binlog mysql

Posting ini akan membahas contoh kecil replikasi database dengan MariaDB, satu master akan mengirimkan informasi ke satu budak. Untuk proses kerjanya, Anda memerlukan 2 alamat IP, satu server master dan satu lagi slave

Dalam hal ini, saya akan menggunakan alamat IP berikut

10. 19. 19. 251 – sebagai Basis Data Utama
10. 19. 19. 74 – sebagai Database Budak

Persiapan

Posting ini mengasumsikan Anda memiliki 2 VM dan memiliki akses sudo ke 2 VM tersebut. Sistem Operasi yang akan saya gunakan adalah Ubuntu 16. 04 server, MariaDB telah diinstal dan belum dikonfigurasi. Anda dapat menggunakan berbagai teknologi untuk membuat VM, baik menggunakan VirtualBox, Libvirt, Proxmox VE, atau bahkan VMware

Jika MariaDB belum terinstal, Anda dapat menginstalnya dengan perintah ini

$ sudo apt install mariadb-server mariadb-client

Langkah 1. Konfigurasikan Database Master

Buka konfigurasi MariaDB di server master

$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
_

Begitu berada di dalam file, ubah beberapa parameter berikut

Pertama cari baris sebagai berikut,

bind-address                   = 127.0.0.1

Ganti alamat IP default dengan alamat IP server, dalam hal ini adalah 10. 19. 19. 251

bind-address                   = 10.19.19.251

Selanjutnya konfigurasikan server-id. Konfigurasi ini terletak di bagian [mysqld]. Anda dapat memilih nomor apa pun untuk konfigurasi ini, tetapi nomor tersebut harus unik dan tidak boleh sama di antara grup replikasi. Untuk database master ini cukup gunakan 1. Pastikan baris berikut tidak dikomentari (tanda # di awal baris)

server-id                      = 1
_

Berikutnya adalah baris log_bin. Semua detail informasi replikasi akan disimpan di sini. Database budak akan menyalin semua perubahan yang terdaftar di log ini. Untuk langkah ini, cukup hapus tanda # di depan log_bin

log_bin                        = /var/log/mysql/mysql-bin.log

Anda juga perlu menentukan database apa yang akan direplikasi di server slave. Anda dapat menyertakan lebih dari satu database dengan mengulangi baris ini untuk setiap database yang diperlukan

binlog_to_db                   = puskoapp
_

Simpan file konfigurasi dengan menekan Ctrl+X, lalu Y, dan Enter. Mulai ulang MariaDB

$ sudo systemctl restart mysql

Langkah selanjutnya, masuk ke shell MariaDB

$ sudo -i
# mysql -u root -p
_

Buat database yang akan direplikasi, lewati langkah ini jika sudah ada database

MariaDB [(none)]> CREATE DATABASE puskoapp;
_

Berikan akses budak dengan mengetikkan perintah berikut di shell MariaDB

$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
_0

Nama pengguna yang digunakan adalah slave_user dan kata sandi rahasia. Nama pengguna dan kata sandi akan digunakan oleh budak untuk mengakses dan mereplikasi database dari master. Ganti sesuai keinginan. Kemudian,

$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
_1

Buka tab/jendela baru untuk melakukan langkah selanjutnya. Pada tab baru, login kembali ke MariaDB dan gunakan database untuk direplikasi

$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
_2

Jalankan perintah berikut untuk mencegah (baca. kunci) perubahan ke database

$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
_3

Lalu ketik

$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
_4

Jika berhasil, akan muncul tabel seperti berikut ini

$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
_5

Ini adalah posisi di mana database budak akan mulai direplikasi. Catat nomor ini, karena akan digunakan pada langkah berikutnya. Jika Anda membuat perubahan di jendela yang sama, database akan dibuka secara otomatis

Untuk alasan ini, Anda perlu membuka tab/jendela baru untuk melanjutkan ke langkah berikutnya

Saat database dikunci, ekspor database menggunakan mysqldump di jendela baru. (pastikan perintah ini dijalankan di bash shell, bukan MariaDB)

$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
_6

Sekarang, kembali ke jendela sebelumnya, buka kunci basis data (buat dapat diedit)

$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
_7

Keluar dari shell MariaDB dengan mengetik exit;

$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
_8

Konfigurasi pada master selesai

Langkah 2. Konfigurasi pada Slave Database

Setelah konfigurasi master database selesai, sekarang konfigurasikan database slave

Masuk ke server slave, buka shell MariaDB dan buat database baru dengan nama yang sama, lalu keluar

$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
_9

Impor database yang sebelumnya diekspor dari database master

bind-address                   = 127.0.0.1
0

Konfigurasikan lebih lanjut seperti yang dilakukan pada master

$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
_

Pastikan beberapa konfigurasi berikut diatur dengan benar. Pertama adalah server-id. Seperti disebutkan sebelumnya, nomor server-id di sini harus unik. Tidak mungkin ada kesamaan antara kelompok tuan-budak. Karena defaultnya adalah 1, pastikan untuk mengubahnya ke nomor yang berbeda

bind-address                   = 127.0.0.1
2

Pastikan setidaknya kriteria konfigurasi berikut diisi dengan benar

bind-address                   = 127.0.0.1
_3

Anda perlu menambahkan baris log relai secara manual. Baris itu tidak ada sebelumnya. Setelah perubahan konfigurasi dilakukan sesuai keinginan, simpan dan keluar dari file konfigurasi

Mulai ulang MariaDB lagi

$ sudo systemctl restart mysql

Langkah selanjutnya, aktifkan replikasi dengan shell MariaDB. Buka shell MariaDB lagi dan ketik perintah berikut, ubah dengan konfigurasi Anda

bind-address                   = 127.0.0.1
5

Perintah menyelesaikan beberapa pekerjaan sekaligus
1). Ini menunjukkan server saat ini sebagai budak dari server master kami yang beralamat di 10. 19. 19. 251,
2). memberikan kredensial login yang benar di server,
3). memungkinkan budak mengetahui di mana harus memulai replikasi;

Dengan cara ini, Anda telah mengonfigurasi replikasi database master dan slave. Kemudian aktifkan server budak

bind-address                   = 127.0.0.1
6

Anda dapat melihat detail informasi replikasi budak dengan mengetikkan perintah ini. Opsi \G setelah perintah berikut untuk memformat teks agar lebih mudah dibaca

bind-address                   = 127.0.0.1
7

Jika ada masalah koneksi, Anda dapat menjalankan slave dengan perintah lewati

bind-address                   = 127.0.0.1
_8

Selesai

Periksa Hasilnya

Pada master database, buat tabel, misalnya dengan perintah berikut

bind-address                   = 127.0.0.1
_9

Kemudian periksa database budak. Jika berhasil, akan dibuat tabel di sana, persis sama dengan yang ada di master