• Tidak ada hasil yang ditemukan

Modul 7 Replikasi Multi Master (Two Way)

N/A
N/A
Protected

Academic year: 2018

Membagikan "Modul 7 Replikasi Multi Master (Two Way)"

Copied!
11
0
0

Teks penuh

(1)

MODUL III

REPLIKASI MULTI-MASTER (TWO-WAY)

A. TUJUAN

Memahami konsep dasar dan implementasi jaringan komputer. Memahami konsep sistem basis data terdistribusi.

Mampu mengimplementasikan sistem basis data terdistribusi secara nyata.

B. PETUNJUK

C. DASAR TEORI

1. Replikasi Multi-Master

Replikasi multi-master merupakan sebuah metode replikasi (penduplikasian) basis data yang memungkinkan data untuk disimpan di sejumlah site/node dan di-update dari semua site. Jadi, semua lokasi dapat melakukan operasi pembacaan (read) maupun penulisan (write).

Perbedaan mendasar bentuk replikasi ini dengan one-way adalah kemampuan operasi penulisan, di mana pada one-way hanya dilakukan di salah satu server—yang selanjutnya disebut master. Pada bentuk multi-master, setiap site akan berperan sebagai master bagi site-site lainnya.

(2)

D. LATIHAN

1. Menguji Client/Server MySQL

Di praktikum sebelumnya, kita telah melakukan pengujian akses ke server master dari mesin slave. Adapun karena di sini kita ingin memposisikan kedua mesin sebagai server dan juga slave, maka perlu dipastikan bahwa akses menyilang (cross access) dapat dilakukan dengan baik.

Pengujian pada tahap ini dilakukan dengan cara menciptakan user di mesin server 2 dan diakses dari mesin server 1. Akses kebalikannya juga bisa dicoba, namun sebenarnya sudah kita lakukan pada pertemuan sebelumnya.

Setelah akses client/server secara menyilang dapat dilakukan, barulah kita bisa melangkah ke tahap selanjutnya, yakni pembuatan user replikasi untuk kedua mesin.

2. Membuat User Replikasi

Tahap ini—meski baru sebagian—sebenarnya juga sudah pernah kita lakukan pada pertemuan pertama. Adapun agar lebih jelas, di sini akan dilakukan lagi dari awal dan dengan identitas yang berbeda.

Membuat User di Server 1

Di Server 1, kita perlu menciptakan user dengan hak akses replication slave. Adapun langkah-langkahnya adalah sebagai berikut:

1. Buka terminal di Server 1.

2. Login sebagai root

mysql -u root –p mysql

3. Setelah login berhasil, ketikkan perintah pembuatan user seperti berikut:

GRANT REPLICATION SLAVE ON *.* TO 'server2'@'%' IDENTIFIED BY 'server2';

4. Perintah di atas akan menciptakan user baru bernama server2 dan dengan passwordserver2.

5. Terapkan modifikasi pada tabel sistem.

flush privileges;

Membuat User di Server 2

Sama seperti pembuatan user di Server 1, lakukan langkah-langkahnya untuk Server 2.

1. Buka terminal di Server 2.

2. Login sebagai root

(3)

3. Setelah login berhasil, ketikkan perintah pembuatan user seperti berikut:

GRANT REPLICATION SLAVE ON *.* TO 'server1'@'%' IDENTIFIED BY 'server1';

4. Perintah di atas akan menciptakan user baru bernama server1 dan dengan passwordserver1.

5. Terapkan modifikasi pada tabel sistem.

flush privileges;

Tujuan pembuatan user di Server 1 sebenarnya adalah untuk digunakan oleh Server 2, begitu juga sebaliknya. Oleh karena itu, di Server 1 kita menciptakan user bernama server2, dan sebaliknya di Server 2. Jadi, perhatikan baik-baik agar tidak keliru.

3. Konfigurasi Replikasi

Konfigurasi ini merupakan langkah sesungguhnya di dalam pendistribusian basis data. Langkah ini dilakukan pada kedua komputer, baik Server 1 maupun Server 2.

Konfigurasi Server 1

Konfigurasi ini dilakukan dengan posisi di Server 1.

1. Buka terminal.

2. Buka file konfigurasi MySQL.

sudo gedit /etc/my.cnf

3. Cari directive [mysqld], kemudian tambahkan/modifikasi baris berikut:

[mysqld]

# Id unik untuk identifikasi master server-id = 1

replicate-same-server-id = 0 # pengaturan field auto increment auto-increment-increment = 2

auto-increment-offset = 1

# IP address master (Server 2)

master-host = 192.168.0.200

# nama user dan password master

master-user = server1 master-password = server1

master-connect-retry = 60

# Menetapkan basis data yang direplikasi replicate-do-db = db_rep

# file log

log-bin = /var/log/mysql/mysql-bin.log # Me-log update ke log biner

binlog-do-db = db_rep

(4)

relay-log-index = /var/lib/mysql/slave-relay-log.index

expire_logs_days = 5 max_binlog_size = 100M

Perhatikan, jangan sampai keliru dalam mengetikkan baris konfigurasi. Sesuaikan juga nama host, user, dan password dengan konfigurasi sebelumnya.

4. Simpan kembali file konfigurasi MySQL.

5. Kembali ke terminal, kemudian restart MySQL server.

sudo /etc/init.d/mysql restart

Konfigurasi di Server 1 menyatakan bahwa komputer siap menjadi slave bagi Server 2.

Untuk memeriksa status master, gunakan perintah SHOW MASTER STATUS.

mysql> SHOW MASTER STATUS;

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

Konfigurasi Server 2

Di Server 2, kita juga melakukan langkah-langkah yang sama seperti Server 1. Tujuannua di sini adalah menetapkan agar Server 2 siap menjadi slave bagi Server 1.

Langkah-langkah konfigurasi yang dilakukan adalah sebagai berikut:

1. Buka terminal.

2. Buka file konfigurasi MySQL.

sudo gedit /etc/my.cnf

3. Cari directive [mysqld], kemudian tambahkan/modifikasi baris berikut:

server-id = 2

replicate-same-server-id = 0 auto-increment-increment = 2

auto-increment-offset = 2

# IP address master (Server 1)

master-host = 192.168.0.100 master-user = server2 master-password = server2

master-connect-retry = 60 replicate-do-db = db_rep

log-bin = /var/log/mysql/mysql-bin.log binlog-do-db = db_rep

relay-log = /var/lib/mysql/slave-relay.log

(5)

expire_logs_days = 5 max_binlog_size = 100M

4. Simpan kembali file konfigurasi MySQL.

5. Kembali ke terminal, kemudian restart MySQL server.

sudo /etc/init.d/mysql restart

Untuk memeriksa status master, gunakan perintah SHOW MASTER STATUS.

mysql> SHOW MASTER STATUS;

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

Aktivasi Replikasi

Konfigurasi ini dilakukan untuk sinkronisasi informasi di master dan slave

serta memulai replikasi. Mengingat konfigurasi ini perlu dilakukan secara bergantian di Server 1 dan Server 2, maka sebaiknya hati-hati dan lakukan dengan cermat.

Penting sekali diperhatikan, dalam melakukan konfigurasi ini maka kedua komputer harus tetap berhubungan. Dengan kata lain, tidak boleh ada salah satu komputer yang dimatikan.

Konfigurasi dan Aktivasi Server 2

Untuk melakukan konfigurasi akhir dan aktivasi replikasi di Server 2, lakukan langkah-langkah berikut:

1. Masuk prompt MySQL atau gunakan prompt yang masih terbuka.

2. Lihat status terbaru dari master. Misalkan hasilnya seperti berikut:

mysql> SHOW MASTER STATUS;

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

3. Jalankan perintah berikut untuk menjadikan Server 2 sebagai slave

Server 1. Perhatikan, nilai-nilai atribut berikut HARUS disesuaikan dengan informasi status master dan konfigurasi utama.

mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.100', -> MASTER_USER='server2',

-> MASTER_PASSWORD='server2',

(6)

Sekali lagi, nilai MASTER_LOG_FILE dan MASTER_LOG_POS harus merujuk ke informasi status master terbaru.

4. Jalankan Server 2 sebagai slave.

mysql> START SLAVE;

5. Untuk memastikan bahwa Server 2 telah siap menjadi slave, periksa statusnya.

mysql> SHOW SLAVE STATUS\G

************************ 1. row ************************* Master_Host: 192.168.0.100

Master_User: server2 Master_Port: 3306 Connect_retry: 60

Master_Log_File: mysql-bin.000001 Read_Master_Log_Pos: 98

Relay_Log_File: slave-relay.log Exec_master_log_pos: 98 Relay_log_space: 44 1 row in set (0.00 sec)

Atribut paling penting dari pemeriksaan di atas adalah

Slave_IO_Running dan Slave_SQL_Running. Di mana indikator

berhasilnya replikasi dinyatakan melalui nilai Yes pada kedua atribut ini.

Apabila ternyata replikasi belum berhasil, periksa kembali langkah-langkah sebelumnya. Gunakan informasi di /var/log/syslog untuk memudahkan pelacakan kesalahan.

Sebagai tambahan, untuk mengetahui bahwa proses replikasi telah berhasil dengan baik—di mana server slave siap mengejar operasi penulisan pada server master, gunakan perintah SHOW PROCESSLIST.. Hasilnya kurang lebih terlihat seperti berikut:

mysql> SHOW PROCESSLIST\G

State: Waiting for master to send event

(7)

Command: Connect

Konfigurasi dan Aktivasi Server 1

Setelah Server 2 berhasil menjadi slave bagi Server 1, selanjutnya adalah melakukan hal yang sebaliknya. Dengan demikian, bentuk distribusi master-master bisa tercapai. Bagaimanapun, kondisi saat ini adalah terciptanya desain master-slave, di mana Server 1 berperan sebagai

master dan Server 2 sebagai slave.

Untuk melakukan konfigurasi akhir dan aktivasi replikasi di Server 1, lakukan langkah-langkah berikut:

1. Masuk prompt MySQL atau gunakan prompt yang masih terbuka.

2. Lihat status terbaru dari master. Misalkan hasilnya seperti berikut:

mysql> SHOW MASTER STATUS;

+---+---+---+---+

3. Jalankan perintah berikut untuk menjadikan Server 1 sebagai slave

Server 2. Perhatikan, nilai-nilai atribut berikut HARUS disesuaikan dengan informasi status master dan konfigurasi utama.

mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.200', -> MASTER_USER='server1',

-> MASTER_PASSWORD='server1',

-> MASTER_LOG_FILE='mysql-bin.000005', -> MASTER_LOG_POS=100;

Sekali lagi, nilai MASTER_LOG_FILE dan MASTER_LOG_POS harus merujuk ke informasi status master terbaru.

4. Jalankan Server 2 sebagai slave.

mysql> START SLAVE;

5. Untuk memastikan bahwa Server 2 telah siap menjadi slave, periksa statusnya.

mysql> SHOW SLAVE STATUS\G

************************ 1. row ************************* Master_Host: 192.168.0.200

(8)

Connect_retry: 60

Master_Log_File: mysql-bin.000005 Read_Master_Log_Pos: 100

Relay_Log_File: slave-relay.log Exec_master_log_pos: 100 Relay_log_space: 44 1 row in set (0.00 sec)

Apabila atribut Slave_IO_Running dan Slave_SQL_Running juga sudah bernilai Yes, berarti konfigurasi replikasi master-master telah berhasil dilakukan dengan baik.

Sebagai tambahan, ada baiknya juga kita memeriksa informasi proses melalui perintah SHOW PROCESSLIST.. Misalkan hasilnya terlihat seperti berikut:

State: Waiting for master to send event

Info: NULL

(9)

MASTER_LOG_FILE. Kesalahan seperti ini tentu akan berakibat fatal, di mana kedua server tidak akan pernah bisa berkomunikasi.

Untuk mengantisipasi kesalahan-kesalahan yang mungkin, kita bisa me-reset konfigurasi slave maupun master.

Reset Slave

Untuk me-reset mesin slave, gunakan perintah RESETSLAVE.

mysql> RESET SLAVE;

Untuk mendapatkan informasi mengenai status slave, gunakan perintah

SHOW SLAVE STATUS.

mysql> SHOW SLAVE STATUS\G

Adapun untuk menghentikan atau menjalankan kembali mesin slave, gunakan perintah STOP SLAVE dan START SLAVE.

mysql> RESET SLAVE;

Reset Master

Di mesin master, kita juga bisa me-reset konfigurasi dengan menggunakan perintah RESET MASTER.

mysql> RESET MASTER;

Perintah di atas akan me-reset file index binlog dan menjadikan file

tersebut kosong seperti keadaan awal. Namun demikian, perintah ini tidak akan mengubah konfigurasi yang telah Anda lakukan pada file my.cnf.

5. Menguji Basis Data Terdistribusi

Meskipun secara konfigurasi sudah selesai, namun kita perlu memastikan bahwa basis data terdistribusi dapat berjalan. Tentu saja pengujian yang diperlukan adalah melakukan operasi penulisan di salah satu master dan kemudian melihat hasilnya di komputer lain.

Sekadar ilustrasi, kita akan melakukan penambahan data di Server 1.

1. Masuk ke prompt mysql.

mysql –u root -p

2. Pilih basis data db_rep sebagai basis data aktif.

mysql> USE db_rep

3. Lakukan penambahan sebuah record di tabel mahasiswa.

mysql> INSERT INTO mahasiswa

(10)

4. Lihat hasilnya.

mysql> SELECT * FROM mahasiswa; +---+---+---+ | nim | nama | alamat | +---+---+---+ | 123 | didik dwi | Jl. Surabaya | +---+---+---+ 1 rows in set (0.00 sec)

Langkah selanjutnya, gunakan komputer Server 2, kemudian lakukan langkah-langkah berikut:

Sekadar ilustrasi, kita akan melakukan penambahan data di Server 1.

1. Masuk ke prompt mysql.

mysql –u root -p

2. Pilih basis data db_rep sebagai basis data aktif.

mysql> USE db_rep

3. Lakukan seleksi di tabel mahasiswa.

mysql> SELECT * FROM mahasiswa; +---+---+---+ | nim | nama | alamat | +---+---+---+ | 123 | didik dwi | Jl. Surabaya | +---+---+---+ 1 rows in set (0.00 sec)

4. Jika hasilnya seperti di atas, berarti pendistribusian telah berhasil dengan baik.

(11)

E. TUGAS PRAKTIKUM

1. Untuk menguji sinkronisasi pada replikasi multi-master, lakukan langkah-langkah-langkah berikut:

a. Masuk ke mesin server 1, kemudian lakukan operasi penambahan data baru. Periksa hasilnya, baik di mesin server 2. Lakukan hal yang sama di mesin server 2. Bagaimana hasilnya? Berikan penjelasan yang deskriptif!

b. Matikan status slave mesin server 2 melalui perintah SLAVE STOP, kemudian lakukan operasi penambahan data di mesin server 1. Selanjutnya, jalankan kembali mesin server 2, dan amati serta jelaskan hasilnya.

Referensi

Dokumen terkait

Motivasi belajar peserta didik dapat terjadi jika guru mempunyai kompetensi pedagogi, kompetensi profesional dan kompetensi sosial.Untuk menjadi guru profesional

Dengan demikian maka pengelolaan sumberdaya pulau-pulau kecil terluar di perbatasan negara termasuk yang diatur dalam Undang-Undang Landas Kontinen, dalam Pasal 3

Berkenaan dengan penjelasan Mustafa di atas mengenai langkah-langkah mewujudkan suatu hubungan partnership yang baik, maka penelitian ini akan membahas tentang

bahwa dalam percepatan pelaksanaan proyek strategis nasional khususnya yang dilaksanakan oleh Pemerintah Daerah, Pemerintah perlu melakukan perubahan Peraturan Pemerintah Nomor

Rani Pangesti Sipasi, D0313058, Partisipasi Masyarakat Dalam Usaha Pengembangan Pariwisata di Kawasan Sirkuit Obyek Wisata Pantai Widuri, Kabupaten Pemalang, Jawa

Memperhatikan pernyataan dan pandangan dari ulama-ulama kenamaan dari masing-masing mazhab empat tersebut di atas, kiranya hampir semua ulama melarang dan menyatakan

Begitu juga dengan sifat-sifat yang telah disepakati atau kesesuaian produk untuk aplikasi tertentu tidak dapat disimpulkan dari data yang ada dalam Lembaran Data Keselamatan

Penugasan Pekerjaan rumah dan/atau tugas yang dikerjakan secara individu atau kelompok sesuai dengan karakteristik tugas. Instrumen tes tulis uraian yang dikembangkan