Anda di halaman 1dari 12

Laporan Tugas Besar

Database Terdistribusi Kelas B

Implementasi Replikasi Natif (one way) MySQL Server

Aplikasi Tunjangan Kesehatan Pegawai

Oleh :

Agus Supriadi 07560350

Bekti Putro W 07560133

TEKNIK INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS MUHAMMADIYAH MALANG

2009
Pada tahap presentasi, terdapat indicator replikasi yang bernilai No , yaitu pada
Slave_IO_Running. Setelah kami periksa terdapat kesalahan pada identifikasi server yang
salah. Berikut konfigurasi replikasi yang mengakibatkan proses replikasi tidak berjalan …

 Server 1 (master)

[mysqld]
#pengaktifan penulisan log file
log-bin = F:/Program Files/xampp/mysql/mysql-bin.log
#id unik untuk identifikasi master, harus berbeda dengan id server-id slave
server-id = 2 // letak kesalahan… L
replicate-same-server-id = 0
#nama database yang diabaikan pada system terdistribusi
binlog-ignore-db = mysql,test
#Me-log update ke log biner
binlog-do-db = kesehatan
relay-log = F:/Program Files/xampp/mysql/slave-relay.log
relay-log-index = F:/Program Files/xampp/mysql/slave-relay-log.index

expire_logs_days = 5
max_binlog_size = 100M

innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M

innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

 Server 2 (slave)

[mysql]
server-id = 2

#ip address mesin master


master-host = 10.10.5.10
master-user = userslave123
master-password = passslave123
master-connect-retry = 60
replicate-do-db = kesehatan

Dilihat dari konfigurasi di atas, server-id pada mesin master dan slave bernilai sama
yaitu 2. Sehingga mengakibatkan proses replikasi tidak berjalan…
BERIKUT PERBAIKAN DAN LANGKAH-LANGKAH PROSES REPLIKASI-NYA…

Pada pengerjaan tugas besar ini, kami hanya menggunakan sebuah computer (laptop),
akan tetapi syarat untuk menjalankan suatu replikasi natif kita harus menggunakan minimal
sebuah computer lagi. Sehingga agar syarat berjalannya replikasi tersebut kami menciptakan
mesin virtual dengan menggunakan aplikasi VMWare Workstation 651 dengan OS Windows
XP Professional. Sebagai ilustrasi, skema system basis data terdistribusi yang akan
diimplementasikan diperlihatkan sebagai berikut :

LAN / WAN VMware Network

Master (Laptop) 10.10.5.10 Slave (Virtual Mesin) 10.10.5.7

Spesifikasi dari masing-masing mesin diperlihatkan pada table berikut :

Spesifikasi Server 1 (Master) Server 2 (Slave)


Mesin Laptop VMware
Sistem Operasi Windows Xp Windows Xp
DBMS MySQL 5.0 MySQL 5.0
IP Address 10.10.5.10 10.10.5.7

Langkah-langkah pengerjaan penerapan replikasi natif pada aplikasi tunjangan


kesehatan pegawai :

I. Pastikan bahwa koneksi kedua mesin di atas berjalan normal, dengan cara :
 Ping 10.10.5.7 (pada mesin master)
E:\Documents and Settings\agoesh>ping 10.10.5.7
Pinging 10.10.5.7 with 32 bytes of data:
Reply from 10.10.5.7: bytes=32 time<1ms TTL=128
Reply from 10.10.5.7: bytes=32 time<1ms TTL=128
Reply from 10.10.5.7: bytes=32 time<1ms TTL=128
Reply from 10.10.5.7: bytes=32 time<1ms TTL=128
Ping statistics for 10.10.5.7:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

 Ping 10.10.5.10 (pada mesin slave)


E:\Documents and Settings\agoesh>ping 10.10.5.7
Pinging 10.10.5.7 with 32 bytes of data:
Reply from 10.10.5.7: bytes=32 time<1ms TTL=128
Reply from 10.10.5.7: bytes=32 time<1ms TTL=128
Reply from 10.10.5.7: bytes=32 time<1ms TTL=128
Reply from 10.10.5.7: bytes=32 time<1ms TTL=128
Ping statistics for 10.10.5.7:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

II. Membuat database kesehatan pada server 1 (master)


CREATE TABLE daftar_pegawai(
nip int(5) not null,
nama varchar(25) not null,
suami_istri varchar(25) not null,
anak1 varchar(25) not null,
anak2 varchar(25) not null,
jabatan varchar(25) not null,
PRIMARY KEY (nip)
)TYPE=MyISAM;

CREATE TABLE laporan_kesehatan(


pasien varchar(25) not null,
penyakit varchar(25) not null,
biaya int(10) not null,
tanggal int(2) not null,
bulan varchar(10) not null,
tahun int(4) not null,
nip int(5) not null
)TYPE=MyISAM;

CREATE TABLE user(


username varchar(25) not null,
password varchar(32) not null,
PRIMARY KEY (username)
)TYPE=MyISAM;

III. Membuat database kesehatan pada server 2 (slave), pada server 2 (slave) ini table-
tablenya sama dengan yang terdapat pada server 1 (master).

IV. Membuat user replikasi pada mesin server 1 (master), sehingga mesin server 2 (slave)
dapat melakukan replikasi one way pada mesin master. Pada penerapan ini, server 2
hanya bersifat backup.

mysql > GRANT REPLICATION SLAVE ON *.* TO ‘userslave123’@’10.10.5.7’


IDENTIFIED BY ‘passslave123’;
mysql > FLUSH PRIVILEGES;

V. Konfigurasi pada mesin master, yaitu pada file my.cnf yang terletak pada direktori
… \xampp\mysql\bin.

[mysqld]
#pengaktifan penulisan log file
log-bin = F:/Program Files/xampp/mysql/mysql-bin.log
#id unik untuk identifikasi master, harus berbeda dengan id server-id slave
server-id = 1
replicate-same-server-id = 0
#nama database yang diabaikan pada system terdistribusi
binlog-ignore-db = mysql,test
#Me-log update ke log biner
binlog-do-db = kesehatan
relay-log = F:/Program Files/xampp/mysql/slave-relay.log
relay-log-index = F:/Program Files/xampp/mysql/slave-relay-log.index

expire_logs_days = 5
max_binlog_size = 100M
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M

innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

Kemudian save, exit dan restart mysql,


Control Panel -> Administrative Tools -> Services -> mysql

VI. Konfigurasi pada mesin slave, yaitu pada file my.cnf yang terletak pada direktori
… \xampp\mysql\bin.

[mysql]
server-id = 2

#ip address mesin master


master-host = 10.10.5.10
master-user = userslave123
master-password = passslave123
master-connect-retry = 60
replicate-do-db = kesehatan

Kemudian save, exit dan restart mysql

VII. Buka status master pada mesin master

mysql> show master status;

+------------------------+------------+---------------------+--------------------- ---+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------------+------------+--------------------+-------------------------+
| mysql-bin.000002 | 98 | kesehatan | |
+------------------------+-----------+--------------------+--------------------------+
1 row in set (0.00 sec)

VIII. Aktifasi dan konfigurasi mesin slave

mysql> stop slave;


Query OK, 0 rows affected (41.03 sec)
mysql> CHANGE MASTER TO MASTER_HOST='10.10.5.10',
-> MASTER_USER='userslave123',
-> MASTER_PASSWORD='passslave123',
-> MASTER_LOG_FILE='mysql-bin.000002',
-> MASTER_LOG_POS=98;
Query OK, 0 rows affected (0.03 sec)
mysql> START SLAVE;
Query OK, 0 rows affected (0.03 sec)

IX. Periksa slave status pada server 2 (slave)


mysql> SHOW SLAVE STATUS\G
*************************** 1. row ***************************
Slave_IO_State : Waiting for master to send event
Master_Host : 10.10.5.10
Master_User : userslave123
Master_Port : 3306
Connect_Retry : 60
Master_Log_File : mysql-bin.000002
Read_Master_Log_Pos : 470
Relay_Log_File : vmtholl-relay-bin.000008
Relay_Log_Pos : 607
Relay_Master_Log_File : mysql-bin.000002
Slave_IO_Running : Yes
Slave_SQL_Running : Yes
Replicate_Do_DB : kesehatan
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 : 470
Relay_Log_Space : 607
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
1 row in set (0.00 sec)
Dapat dilihat pada status di atas, bahwa indikator Slave_IO_Running dan
Slave_SQL_Running bernilai yes sehingga konfigurasi replikasi one way
berhasil. Pada tahap ini kami telah berhasil mengkonfigurasi replikasi one
way, selanjutnya kami akan melihat apakah server 2 (slave) telah siap
melakukan proses replikasi server 1 (master)…

mysql> show processlist\G


*************************** 1. row ***************************
Id: 1
User: system user
Host:
db: NULL
Command: Connect
Time: 2227
State: Waiting for master to send event
Info: NULL
*************************** 2. row ***************************
Id: 2
User: system user
Host:
db: NULL
Command: Connect
Time: 2226
State: Has read all relay log; waiting for the slave I/O thread to update it
Info: NULL
*************************** 3. row ***************************
Id: 4
User: root
Host: localhost:1041
db: NULL
Command: Query
Time: 0
State: NULL
Info: show processlist
3 rows in set (0.05 sec)

Indikator State pada baris pertama (1.row) bernilai Waiting for master to send
event, menandakan bahwa mesin server 2 (slave) sedang menunggu even dari mesin
server 1 (master).
X. Untuk memastikan bahwa mesin server 2 (slave) berhasil untuk menerima even (data)
dari mesin server 1 (master), kami mencoba memasukkan data pada table user pada
mesin server 1 (master) …

mysql> insert into user values('admin',md5('selamatdatangasshole'));


Query OK, 1 row affected (0.01 sec)
mysql> select * from user;
+--------------+---------------------------------------------------+
| username | password |
+--------------+---------------------------------------------------+
| admin | e07fddccd9e727427cc539825a508333 |
+--------------+---------------------------------------------------+
1 row in set (0.00 sec)

XI. Selanjutnya kami akan melihat apakah table user pada database kesehatan di mesin
server 2 (slave) memiliki data yang bernilai sama dengan mesin server 1 (master) …

C:\Documents and Settings\myvm>mysql -u root -p


Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.0.67-community-nt MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use kesehatan;


Database changed
mysql> select * from user;
+------------+--------------------------------------------------+
| username | password |
+------------+--------------------------------------------------+
| admin | e07fddccd9e727427cc539825a508333 |
+------------+--------------------------------------------------+
1 row in set (0.00 sec)

XII. Sampai pada tahap ini kami telah berhasil melakukan replikasi natif (one way) antar 2
server. Selanjutnya kami akan mencoba untuk melakukan penambahan atau
penghapusan data melalui aplikasi yang telah kami buat …
Pada interface di atas, kami akan melakukan insert data pada table daftar_pegawai
dengan field sbb :

Nip : 12346
Nama : nanang subagyon
Suami_istri : belum laku
Anak1 : ga wani
Anak2 : ga wani pool
Jabatan : mekanik

Sekarang kita lihat pada table daftar_pegawai, apakah data berhasil di-update…

mysql> select * from daftar_pegawai\G


*************************** 1. row ***************************
nip: 12345
nama: agus supriadi
suami_istri: masih nyari
anak1: belum bikin
anak2: belum buat
jabatan: mahasiswa
*************************** 2. row ***************************
nip: 12346
nama: nanang subagyon
suami_istri: belum laku
anak1: ga wani
anak2: ga wani pool
jabatan: mekanik
2 rows in set (0.00 sec)
Data pada server 1 (master) telah berhasil di-update…. J

XIII. Setelah kita melihat data berhasil di-update pada mesin server 1 (master), berikutnya
kita akan melihat apakah data pada table kesehatan pada mesin server 2 (slave)
berhasil di-replikasi apa tidak …?

C:\Documents and Settings\myvm>mysql -u root -p


Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.0.67-community-nt MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> select * from daftar_pegawai\G


ERROR 1046 (3D000): No database selected
mysql> use kesehatan;
Database changed
mysql> select * from daftar_pegawai\G
*************************** 1. row ***************************
nip: 12345
nama: agus supriadi
suami_istri: masih nyari
anak1: belum bikin
anak2: belum buat
jabatan: mahasiswa
*************************** 2. row ***************************
nip: 12346
nama: nanang subagyon
suami_istri: belum laku
anak1: ga wani
anak2: ga wani pool
jabatan: mekanik
2 rows in set (0.00 sec)

mysql>

OKE…data pada mesin server 2 (slave) telah berhasil di-replikasi… J

Anda mungkin juga menyukai