Replikasi Data sangat penting untuk melindungi dan memastikan data secara High Availability dan kemudahan akses selama kesalahan tak terduga seperti kerusakan sistem, kesalahan berbasis perangkat keras atau perangkat lunak, dll. Dengan adanya replikasi sistem database diharapkan layanan database dapat selalu tersedia. Dalam Artikel ini kita melakukan setup untuk Replikasi menggunakan MariaDB.
Sebelum Memulai
Pastikan sudah menentukan mau dimana MariaDB ini akan diinstall, setidaknya kita butuh 2 instance untuk menjalankan MariaDBnya. Pada tutorial kali ini kita akan menggunakan 2 WSL (windows) yaitu Ubuntu 22.04 dan Ubuntu 18.04 yang akan di install MariaDB versi 10.5 pada masing-masing mesin. Sementara untuk mac atau linux, bisa menggunakan docker untuk mensimulasikan hal yang sama.
Jenis Replikasi
Sebagai informasi, pada MariaDB ini ada beberapa opsi untuk replikasi yaitu Master ke Master dan Master Ke Slave. Selain itu juga ada beberapa jenis replikasi tambahan yang menggabungkan dua metode tersebut.
Install MariaDB 10.5 di Ubuntu 22.04
untuk di Ubuntu 22.04 cara installnya mudah. Cukup jalankan beberapa perintah dibawah ini.
# untuk memastikan semua package dalam keadaan uptodate sudo apt update -y && sudo apt upgrade -y # install package common ubuntu sudo apt -y install software-properties-common # tambahkan key mariadb sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc' # ini untuk update dari repo MariaDB yang baru sudo apt update # ini untuk install maria DB sudo apt install -y mariadb-server mariadb-client # setup security MariaDB # pastikan ikuti langkah demi langkah # dan jangan lupa passwordnya sudo mysql_secure_installation # cek bahwa mariadb telah berjalan systemctl status mysql # Test login ke MariaDB #jika perlu password pastikan isi password # pas setup security mysql -u root -p # setelah muncul kotak SQL SELECT VERSION(); # keluar dari SQL client MariaDB # tekan CTRL dan D barengan atau exit;
Install MariaDB 10.5 di Ubuntu 18.04
untuk di Ubuntu 22.04 cara installnya mudah. Cukup jalankan beberapa perintah dibawah ini.
# untuk memastikan semua package dalam keadaan uptodate sudo apt update -y && sudo apt upgrade -y # install package common ubuntu sudo apt -y install software-properties-common # tambahkan key mariadb sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.lstn.net/mariadb/repo/10.5/ubuntu focal main' # ini untuk update dari repo MariaDB yang baru sudo apt update # ini untuk install maria DB sudo apt install -y mariadb-server mariadb-client # setup security MariaDB # pastikan ikuti langkah demi langkah # dan jangan lupa passwordnya sudo mysql_secure_installation # cek bahwa mariadb telah berjalan systemctl status mysql # Test login ke MariaDB #jika perlu password pastikan isi password # pas setup security mysql -u root -p # setelah muncul kotak SQL SELECT VERSION(); # keluar dari SQL client MariaDB # tekan CTRL dan D barengan atau exit;
File my.cnf
Setelah selesai install, pastikan bahwa anda telah menemukan file my.cnf
baik di Ubuntu 18.04 maupun di 22.04. Biasanya file ini bisa ditemukan di /etc/mysql/my.cnf
, bisa juga di /etc/my.cnf
bahkan di /var/lib/mysql/my.cnf
. Pastikan anda tidak salah mengedit file-nya.
Setup untuk Master
Pertama-tama ubah kode my.cnf
dibawah [mariadb]
, lihat contoh dibawah ini:
[mariadb] Log-bin server_id=1 log-basename=master1 binlog-format=mixed
Dengan pengaturan ini, dipastikan mesin akan dianggap sebagai master. Setelah filenya diubah, kemudian restart MariaDB nya dengan cara:
sudo service mariadb restart
Setelah itu login ke MariaDB melalui mysql client dengan cara:
mysql -u root -p # setelah muncul SQL jalan perintah ini CREATE USER 'replication_user'@'%' IDENTIFIED BY 'bigs3cret'; GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%'; # kode tersebut untuk membuat USER yang akan digunakan oleh SLAVE FLUSH PRIVILEGES; FLUSH TABLES WITH READ LOCK. # jalankan perintah dibawah ini # lihat nilai di kolom file dan position SHOW MASTER STATUS; # catat kedua hal tersebut UNLOCK TABLES; # keluar dengan CTRL + D atau exit;
Untuk master sudah selesai di Setup.
Setup untuk Slave
Kemudian buka instance yang satunya lagi, dan ubahlah pengaturannya menjadi seperti ini.
[mysqld] server-id = 2 replicate-do-db=masterdb
Dengan pengaturan ini, dipastikan mesin akan dianggap sebagai slave. Setelah filenya diubah, kemudian restart MariaDB nya dengan cara:
sudo service mariadb restart
Setelah itu login ke MariaDB melalui mysql client dengan cara:
# Lgoin ke MariaDB yang akan dijadikan Slave mysql -u root -p # setelah muncul SQL jalan perintah ini CHANGE MASTER TO MASTER_HOST=[IP ADDRESS MESIN MASTER], MASTER_USER='replication_user', MASTER_PASSWORD=[password pas setup security], MASTER_PORT=3306, MASTER_LOG_FILE=[INI DI ISI NILAI DARI SHOW MASTER STATAUS], MASTER_LOG_POS=[INI DI ISI NILAI ANGKA DARI SHOW MASTER STATAUS], MASTER_CONNECT_RETRY=10; # CTRL+D atau exit; #restart lagi MariaDB di Slave nya sudo service mariadb restart # Login lagi ke MariaDB mysql -u root -p # setelah muncul SQL, jalankan CHECK SLAVE STATUSG; # perhatikan pada SLAVE_IO_STATUS # jika isinnya "Waiting for master to send event # Berarti telah selesai # CTRD+D atau exit;
Demikian cara untuk setup MariaDB dengan jenis replikasi Master ke Slave. Semoga membantu.