Tuesday 29 January 2013

Replikasi MySQL Server di Ubuntu




Replikasi MySQL adalah salah satu metode yang digunakan untuk menyediakan back up database secara real time, atau pun digunakan untuk mirror situs. Proses sinkronisasi data ini, dilakukan antara satu master (server)  dengan satu atau lebih slave(client), atau pun antar master, secara sederhana cara kerja dari replikasi ini dapat digambarkan seperti berikut ini :  data pada database  slave secara otomatis berubah setiap kali ada pemasukan, perubahan atau pun penghapusan data pada database master, sehingga proses back up data dapat dilakukan secara terus menerus dan terjadi secara otomatis.


Apa saja yang harus dipersiapkan dalam melakukan proses replikasi ini
1.       2 unit PC satu untuk server (alamat IP 192.168.1.1) dan satu untuk client (192.168.1.2)
2.       CD Instalasi Ubuntu 10.04 LTS
3.       Repository Ubuntu 10.04 LTS
4.       Instalasi beberapa paket program antara lain apache2, php5, dan mysql
Adapun langkah-langkah nya adalah sebagai berikut:

A.      Konfigurasi pada Komputer 1

1.       Konfigurasi jaringan komputer cara nya ketikan #nano /etc/network/interfaces masukan konfigurasi seperti dibawah ini

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static

address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameserver 196.168.1.1

masukan konfigurasi yang sama pada komputer berikut nya, yang berbeda hanya bagian address nya saja  yaitu 192.168.1.2
2.       Installkan paket yang dibutuh kan cara nya ketikan sudo –i, kemudian installkan paket-paket dibawah ini:

apt-get install apache2
apt-get install php5
apt-get install mysql-server mysql-client
apt-get install phpmyadmin (optional)
apt-get install openssh-server (optional)

ketika proses instalasi mysql-server masukan password apabila diminta, dan jangan sampai lupa

3.       Hentikan dulu layanan MySQL cara nya adalah dengan mengetikan #stop mysql
4.       Setelah itu rubah konfigurasi file my.cnf, cara nya ketikan #nano /etc/mysql/my.cnf lakukan perubahan pada bagian berikut ini :

Tambahkan karakter # pada bagian berikut ini :

# skip-networking
# bind-address  = 127.0.0.1

Maksud nya supaya kedua konfigurasi diatas tidak digunakan, kemudian tambahkan konfigurasi dibawah ini :

server-id                               = 1
log_bin                                  = /var/log/mysql/mysql-bin.log
expire_logs_days            = 10
max_binlog_size              = 100M
binlog_do_db                    = latihan


5.       Setelah selesai nyalakan kembali mysql, cara nya ketikan #start mysql
6.       Masuk ke mysql caranya ketikan #mysql –uroot –p

# mysql -uroot -p
Enter password:

Masukan passwor yang telah di isi tadi, kemudian buat database, table dan isi data nya, cara nya adalah sebagai berikut :

mysql> use latihan;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql>  CREATE TABLE students ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR (30), lastname VARCHAR (30),  phone VARCHAR (14),  city VARCHAR (50), state VARCHAR (25), zip VARCHAR (10));
Query OK, 0 rows affected (0.01 sec)

mysql> desc students;
+-----------+-------------+------+-----+---------+----------------+
| Field     | Type        | Null | Key | Default | Extra          |
+-----------+-------------+------+-----+---------+----------------+
| id        | int(11)     | NO   | PRI | NULL    | auto_increment |
| firstname | varchar(30) | YES  |     | NULL    |                |
| lastname  | varchar(30) | YES  |     | NULL    |                |
| phone     | varchar(14) | YES  |     | NULL    |                |
| city      | varchar(50) | YES  |     | NULL    |                |
| state     | varchar(25) | YES  |     | NULL    |                |
| zip       | varchar(10) | YES  |     | NULL    |                |
+-----------+-------------+------+-----+---------+----------------+
7 rows in set (0.01 sec)

mysql> insert into students values ('','riki','nuryadin','081809989864','Bandung','Jawa Barat','40286');
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> select * from students ;

+----+-----------+----------+--------------+---------+------------+-------+
| id | firstname | lastname | phone        | city    | state      | zip   |
+----+-----------+----------+--------------+---------+------------+-------+
|  1 | riki      | nuryadin | 081809989864 | Bandung | Jawa Barat | 40286 |
+----+-----------+----------+--------------+---------+------------+-------+
1 row in set (0.00 sec)

mysql>flush privileges;
mysql>exit


7.       Masuk kembali ke mysql ketikan #mysql –uroot –p masukan password kemudian ketikan perintah dibawah ini :

mysql> GRANT REPLICATION SLAVE ON *.* TO ‘lp3i’@'%’ IDENTIFIED BY ‘tasikmalaya’;
mysql> FLUSH PRIVILEGES;
mysql> USE latihan;
mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000005 |      188 | latihan      |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

mysql> exit
Bye

Penting : catat bagian file dan position nya, pada contoh diatas file : mysql-bin.000005 dan position nya 188

8.       Ekspor database yang telah dibuat tadi, cara nya ketikan #mysqldump –uroot –p latihan > latihan.sql  seperti biasa masukan password mysql nya


B.      Konfigurasi pada Komputer 2

1.       Konfigurasi jaringan komputer cara nya ketikan #nano /etc/network/interfaces masukan konfigurasi seperti dibawah ini

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static

address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameserver 196.168.1.1

2.       Installkan paket yang dibutuh kan cara nya ketikan sudo –i, kemudian installkan paket-paket dibawah ini:

apt-get install apache2
apt-get install php5
apt-get install mysql-server mysql-client
apt-get install phpmyadmin (optional)
apt-get install openssh-server (optional)

ketika proses instalasi mysql-server masukan password apabila diminta, dan jangan sampai lupa

3.       Hentikan dulu layanan MySQL cara nya adalah dengan mengetikan #stop mysql
4.       Setelah itu rubah konfigurasi file my.cnf, cara nya ketikan #nano /etc/mysql/my.cnf lakukan perubahan pada bagian berikut ini :
Tambahkan karakter # pada bagian berikut ini :

# skip-networking
# bind-address  = 127.0.0.1

Maksud nya supaya kedua konfigurasi diatas tidak digunakan, kemudian tambahkan konfigurasi dibawah ini :

server-id                               = 2
master-host                        = 192.168.1.1 (alamat Master Host)
master-user                         = lp3i  (user yang dibuat tadi)
master-password             = tasikmalaya (password nya)
master-connect-retry    = 60
replicate-do-db                 = latihan
log_bin                                   = /var/log/mysql/mysql-bin.log
expire_logs_days             = 10
max_binlog_size              = 100M
binlog_do_db                    = latihan (database nya)

5.       Nyalakan kembali MySQL cara nya ketikan #start mysql
6.       Masuk ke MySQL ketikan #mysql –uroot –p  kemudian masukan password nya
7.       Buat database latihan, cara nya ketikan
mysql > create database latihan;
mysql > exit
8.       Import database mysql yang di eksporkan dari server tadi, cara nya ketikan
#mysql –uroot –p  latihan < latihan.sql  masukan password nya
9.       Setelah itu masuk kembali ke mysql, ketikan #mysql –uroot –p  masukan password nya
10.   Masukan konfigurasi seperti dibawah ini :
mysql> slave stop;
Query OK, 0 rows affected (0.00 sec)

mysql> CHANGE MASTER TO MASTER_HOST='192.168..1.1', MASTER_USER='lp3i', MASTER_PASSWORD='tasikmalaya', MASTER_LOG_FILE='mysql-bin.000005',MASTER_LOG_POS=188;

Query OK, 0 rows affected (0.07 sec)

mysql> slave start;
Query OK, 0 rows affected (0.00 sec)

mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000006 |      188 | latihan      |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
11.   Komfigurasi selesai untuk mengecek nya, masukan data pada komputer 1, lihat apakah pada komputer 2 terjadi proses pemasukan data juga.



Riki Nuryadin
cukil_riki@yahoo.co.id

2 comments:

Repositori Institusional Di Perguruan Tinggi

Oleh : Riki Nuryadin riki.nuryadin@upi.edu riki.nuryadin@gmail.com Abstrak: Institusional repositori adalah sebuah wadah o...