Selasa, 20 Agustus 2019
Replikasi Database Mysql
Replikasi Mysql merupakan sebuah cara yang digunakan untuk membuat salinan (backup) dari database master ke database slave secara real time. Penggunaan database replikasi ini sangat bermanfaat ketika kita melakukan analisa data. kita dapat melakukan analisa data pada database slave sehingga apabila terjadi kesalahan dalam menganalisa, tidak akan mengganggu database master.
Kali ini kita akan melakukan konfigurasi replikasi database master dan slave dengan konfigurasi sebagai berikut.
Database Master
IP address = 192.168.14.59
Sistem Operasi = Windows 10
Database = db_replikasi
Database Slave
IP address = 192.168.14.60
Sistem Operasi = Windows 10
Database = db_replikasi
KONFIGURASI DATABASE MASTER
Membuat Database Master
MariaDB [none]> CREATE DATABASE db_replikasi;
MariaDB [none]> USE db_replikasi;
MariaDB [db_replikasi]> create table biodata (
-> nama varchar (50),
-> alamat varchar (100),
-> ttl date,
-> telepon integer (20));
Query OK, 0 rows affected (0.337 sec)
Menambahkan data kedalam tabel biodata.
MariaDB [db_replikasi]> insert into biodata values ('fiki','sumbertempur','1987-08-28',
'081515946941');
Query OK, 1 row affected, 1 warning (0.249 sec)
Konfigurasi Mysql my.cnf
Tambahkan baris berikut.
bind-address = "0.0.0.0"
log-bin = "mysql-bin"
binlog_do_db = "db_replikasi"
server-id = "1"
Restart service mysql server
Membuat user baru pada database master
MariaDB [db_replikasi]> grant replication slave on *.* to 'fiki_slave'@'%' identified by '12345678';
Query OK, 0 rows affected (0.332 sec)
MariaDB [db_replikasi]> flush privileges;
Query OK, 0 rows affected (0.001 sec)
Dump Database
Dump database ini akan kita import ke database slave, namun sebelum melakukan dumping database, kita harus mengunci database master agar tidak ada perubahan data selama kita melakukan proses dumping.
MariaDB [db_replikasi]> use db_replikasi;
Database changed
MariaDB [db_replikasi]> flush tables with read lock;
Query OK, 0 rows affected (0.006 sec)
MariaDB [db_replikasi]> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 328 | db_replikasi | |
+------------------+----------+--------------+------------------+
1 row in set (0.001 sec)
MariaDB [db_replikasi]> quit;
Lakukan Dumping database db_replikasi.
D:\xampp\mysql\bin>mysqldump -u root -p db_replikasi > db_replikasi.sql
Enter password:
D:\xampp\mysql\bin>
Unlock database yang tadi telah di lock
MariaDB [(none)]> use db_replikasi;
Database changed
MariaDB [db_replikasi]> unlock tables;
Query OK, 0 rows affected (0.000 sec)
KONFIGURASI DATABASE SLAVE
Buat database baru dengan nama db_replikasi
MariaDB [(none)]> create database db_replikasi;
MariaDB [(none)]> quit;
Import database master yang telah kita dump.
mysql -u root -p db_replikasi < c:\users\client1\downloads\db_replikasi.sql
Konfigurasi Mysql Slave
Buka file xampp/mysql/bin/my.cnf
Tambahkan abris berikut ini.
log-bin = mysql-bin
binlog_do_db = db_replikasi
server_id = 2
Login ke Mysql, kemudian jalankan perintah dibawah ini.
CHANGE MASTER TO MASTER_HOST='192.168.14.59',MASTER_USER='fiki_slave',
MASTER_PASSWORD='12345678', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS= 328;
Keterangan :
MASTER_HOST = IP dari database master
MASTER_USER = user yang telah kita buat sebelumnya di database master
MASTER_PASSWORD = password user yang kita buat di database master
MASTER_LOG_FILE = nama file log-bin (dari perintah show master status)
MASTER_LOG_POS = posisi dimulainya replikasi (dari perintah show master status)
Jalankan database slave
MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status \g
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.14.59
Master_User: fiki_slave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 328
Relay_Log_File: u-serv-relay-bin.000004
Relay_Log_Pos: 988
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 855
Relay_Log_Space: 1196
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_UUID:
Master_Info_File: /var/lib/mysql/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
1 row in set (0.00 sec)
Selanjutnya, lakukan proses CRUD pada database master, jika replikasi berhasil seharusnya pada database slave akan mengalami perubahan data yang sama seperti pada database master.
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar