[Termux] MariaDB Replication Master-Master
tools yang perlu disiapkan :
- dua buah smartphone android yang telah terinstall termux
- koneksi internet yang stabil
Setelah toolsnya telah disiapkan, mari lakukan tahap-tahap berikut :
A. Inisialisasi Database Server
- Buka termux
- Install mariadb dan teks editor nano dengan perintah : pkg install mariadb nano. Tunggu proses instalasi sampai selesai
- Cek IP address masing-masing HP dengan perintah ip address atau ifconfig. maka akan muncul output seperti berikut :
..............
Catat IP tersebut.
swlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether c2:87:eb:96:7f:29 brd ff:ff:ff:ff:ff:ff
inet 192.168.43.1/24 brd 192.168.43.255 scope global swlan0
valid_lft forever preferred_lft forever
inet6 fe80::c087:ebff:fe96:7f29/64 scope link
valid_lft forever preferred_lft forever
................
B. Setting Database Master 1 (inisialisasi)
- Buat file konfigurasi di /data/data/com.termux/files/usr/etc/my.cnf.d/replication.cnf dengan perintah
nano /data/data/com.termux/files/usr/etc/my.cnf.d/replication.cnf. Isikan konfigurasi berikut :[mariadb]
Setelah semua dibuat, simpan dengan menekan ctrl + x, kemudian tekan y dan enter.
server-id=1 log-bin='mysql-bin1 relay-log='mysql-relay-log' log-basename=master auto-increment-offset = 1
- Mulai service mariadb dengan perintah mysqld_safe &
- Buat database baru dengan perintah mysql -u $(whoami) -e "create database praktikum;"
- Buat user untuk replikasi (username : repluser dan password rahasia123) dengan perintah mysql -u $(whoami) -e "grant replication slave on *.* to 'repluser'@'%' identified by 'rahasia123'; flush privileges;"
- Login ke shell mariadb dengan perintah mysql -u $(whoami)
- Lock database dan cek status master database dengan perintah flush tables with read lock; show master status;
Catat file dan position datanya. Jangan tutup session database ini. - Buka tab baru di termux. kemudian dump semua database dengan perintah mysqldump -u $(whoami) --all-databases > db.sql
- Kembali ke tab pertama termux, kemudian ketikkan unlock tables;
- Copy database db.sql ke server slave dengan perintah scp -P8022 db.sql <user termux slave>@<ip termux slave>:/data/data/com.termux/files/home/. Contoh dalam tulisan ini, user termux slave adalah u0_217 dan IPnya 192.168.43.57, maka perintahnya : scp db.sql u0_217@192.168.43.57:/data/data/com.termux/files/home/. kemudian masukkan password dari user termux slave.
- Buat file konfigurasi di /data/data/com.termux/files/usr/etc/my.cnf.d/replication.cnf dengan perintah
nano /data/data/com.termux/files/usr/etc/my.cnf.d/replication.cnf. Isikan konfigurasi berikut :[mariadb]
Setelah semua dibuat, simpan dengan menekan ctrl + x, kemudian tekan y dan enter.
server-id=2 log-bin='mysql-bin' relay-log='mysql-relay-log' log-basename=masterdua auto-increment-offset = 2
- Mulai service mariadb dengan perintah mysqld_safe &
- Import database yang telah disalin dari database master tadi dengan perintah mysql -u $(whoami) < db.sql
- Masuk ke shell mysql dengan perintah mysql -u $(whoami)
- Atur database agar mengarah ke master yang telah dibuat dengan perintah :
MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='<IP Address Master',
mengacu pada tahap B.6, maka konfigurasi untuk artikel ini adalah :
MASTER_USER='<user untuk replikasi>',
MASTER_PASSWORD='<password user untuk replikasi>',
MASTER_LOG_FILE='<value pada field file di master>',
MASTER_LOG_POS=<value pada field position di master>;
MASTER_CONNECT_RETRY=10;
MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='192.168.43.1',
MASTER_USER='repluser',
MASTER_PASSWORD='rahasia123',
MASTER_LOG_FILE='master-bin.000001',
MASTER_LOG_POS=1371,
MASTER_CONNECT_RETRY=10; - Setelah itu, mulai slave server dengan perintah start slave;
- Cek status slave dengan perintah show slave status\G; maka hasilnya kurang lebih akan seperti dibawah :
- Setelah itu, mulai slave server dengan perintah start slave;
- Cek status slave dengan perintah show slave status\G; maka hasilnya kurang lebih akan seperti dibawah :
D. Konfigurasi Database Master 1 (replicate from Database Master 2)
- Buka database master 2
- Buka shell mariadb dengan perintah mysql -u $(whoami)
- Cek position dan nama binary log file master 2 dengan perintah : show master status;
- Pindah ke database master 1
- Buka shell mariadb dengan perintah mysql -u $(whoami)
- Atur database agar mengarah ke master database 2 :
MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='<IP Address Master 2',
mengacu hasil pengecekan pada tahap D.3, anggap file log binnya adalah masterdua-bin.000003 dan positionnya adalah 1372, maka konfigurasi untuk artikel ini adalah :
MASTER_USER='<user untuk replikasi>',
MASTER_PASSWORD='<password user untuk replikasi>',
MASTER_LOG_FILE='<value pada field file di master 2>',
MASTER_LOG_POS=<value pada field position di master 2>;
MASTER_CONNECT_RETRY=10;
MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='192.168.43.2',
MASTER_USER='repluser',
MASTER_PASSWORD='rahasia123',
MASTER_LOG_FILE='masterdua-bin.000003',
MASTER_LOG_POS=1372,
MASTER_CONNECT_RETRY=10; - Setelah itu, mulai slave server dengan perintah start slave;
- Cek status slave dengan perintah show slave status\G;Pastikan kolom Slave_IO_Running dan Slave_SQL_Running bernilai Yes.
- Ambil HP yang bertindak sebagai database master 1.
- Masuk ke shell mariadb dengan perintah mysql -u $(whoami)
- Buat tabel dengan nama replikasi di database praktikum dengan perintah create table praktikum.replikasi ( test varchar(20));
- Insert data ke tabel tersebut dengan perintah insert into praktikum.replikasi values("tes replikasi");
- Cek apakah data berhasil dimasukkan ke database dengan perintah select * from praktikum.replikasi; Hasilnya akan seperti dibawah :
- Kemudian ambil HP yang bertindak sebagai database master 2.
- Masuk ke shell mariadb dengan perintah mysql -u $(whoami)
- Cek apakah data berhasil direplikasi dari database master 1 dengan perintah select * from praktikum.replikasi; Apabila konfigurasi benar, maka hasilnya akan seperti dibawah :
- Ulangi pengujian dari tahap E.1 dengan menggunakan HP yang menjalankan service database master 2 sebagai sumber data replikasinya.
Komentar
Posting Komentar