CARA MUDAH REPLIKASI DATABASE MENGGUNAKAN PROSTGRESQL DI LINUX UBUNTU 16.04

Selasa, 25 September 2018

CARA MUDAH REPLIKASI DATABASE MENGGUNAKAN PROSTGRESQL DI LINUX UBUNTU 16.04


Hallo semua, kali ini saya mau bahas tentang bagaimana cara replikasi database dengan postgresql pada LINUX UBUNTU 16.04. Apasih Replikasi database dan kegunaannya apa?

Replikasi Database adalah suatu cara yang dilakukan untuk back-up data yang ada pada database secara real-time. Pada Replikasi Database ini mengunakan sistem :

1. Master to Slave 
Master sebagai server utama dan Slave sebagai backup atau penampung data dari master. server          slave tersebut hanya sebagai read-only , tidak ada kegiatan tambah,hapus atau ubah disana.

2. Master to Master
Ini dikenal dengan 4 server misal (server A, B, C, D) ketika serve A sebagai master maka server B,C dan D akan sebagai Slave. jika kita menambah data di server A maka data tersebut juga akan bertambah di server B,C dan D. begitu juga sebaliknya dengan server B,C dan D. Okay semoga mengerti ya . Langsung ajah berikut apa saja yang diperlukan dan keterangan server yang saya gunakan:

* Linux Ubuntu 16.04
* Postgresql-9.5
* 2 Server  dengan OS (Ubuntu 16.04)
   - 10.1.1.2 (Master)
   - 10.1.1.3 (Slave)


I. Install dan Konfigurasi Server Master


1. Install terlebih dahulu postgresql dengan command line dibawah ini


    sudo apt-get install postgresql-9.5


2. Jika Instalasi sudah complete, maka langkah selanjutnya adalah pastikan bahwa postrgesql nya          sudah terhubung. Ikuti command line berikut  menggunakan user ROOT:

    systemctl enable postgresql

3. Secara Default postgresql akan menjalankan localhost (127.0.0.1) dengan posrt 5432 pada                  Ubuntu. Jalankan perintah ini untuk mengecek :

    netstat  -plntu



4. Pada gambar diatas postgresql sudah berjalan. Maka langkah selanjutya kita mengganti password        user postgres. Jalankan Perintah berikut:

    sudo su postgres

5. Setelah masuk ke postgres#  selanjutnya jalankan perintah ini:

    \password postgres

     lalu cek info dari user postgres tersebut dengan perintah berikut:
     
     \conninfo

6. Sekarang kita Konfigurasi postgres yaitu dengan user ROOT , kita change directory 

    cd  /etc/postgresql/9.5/main/

  vim  postgresql.conf


     Uncomment dan ubah script berikut :
   
     listen_addresses = '10.1.1.2'

  wal_level = hot_standby

  wal_level = hot_standby

   
  archive_mode = on

     archive_command = 'cp %p  /var/lib/postgresql/9.5/main/archive/%f'

  max_wal_senders = 2    (karena saya pakai 2 server)

   
  wal_keep_segments = 10 ( 1 segment dengan value 16 Mb)

  synchronous_standby_names = 'node'


      Setelah itu simpan file tersebut.

7.  Pada file postgresql.conf saya sudah buat enabled/on  maka kita harus membuat file directory             untuk Archive . Buat  directory Archive baru dan ubah  permission pemilik user postgres:

     mkdir -p  /var/lib/postgresql/9.5/main/archive/

    chmod 700  /var/lib/postgresql/9.5/main/archive/

    chown  -R  postgres:postgres  /var/lib/postgresql/9.5/main/archive/

8. Selanjutnya ubah file pg_hba.conf dengan perintah ini :

    vim pg_hba.conf

    Tambahkan Script konfigurasi berikut:

    # Localhost
  host replication     replica   127.0.0.1/32   md5

  # PostgreSQL Master IP address
  host  replication    replica   10.1.1.2/32     md5

  # PostgreSQL SLave IP address
  host  replication   replica   10.1.1.3/32      md5

   
     Simpan dan exit.

9. Kemudian restart postgresql dengan perintah berikut:

    systemctl  restart  postgresql

     Maka postgressql  sudah berjalan  pada IP 10.1.1.2 atau biasanya saya pakai tanda  (*)  di                   Listen Addreses maka postgresql nya berjalan di IP 0.0.0.0:5432

     Cek postgresql nya dengan cara

     netstat  -plntu

    

10. Selanjutnya buat user baru untuk Replikasinya dengan nama user replica dan password nya                password. Untuk password bebas silahkan dibuat sendiri. kita masuk ke user postgres:

      su su postgres

   psql

   CREATE  USER  replica  REPLICATION  LOGIN  ENCRYPTED  PASSWORD  'password';

        Lalu cek user baru replica sudah punya hak akses:

   \du





II.  Install dan Konfigurasi Server Slave

1. Install postrgesql 9.5
2. Setelah diinstal selanjutnya masuk ke user ROOT lalu stop  postgresql

     systemctl  stop  postgresql

3. Edit File postgresql.conf  dengan perintah berikut ini:
 
     cd  /etc/postgresql/9.5/main/

  vim  postgresql.conf

  Uncomment dan edit :

     listen_addresses = '10.1.1.3'

     wal_level = hot_standby

     synchronous_commit = local

     max_wal_senders = 2

     wal_keep_segments = 10

     synchronous_standby_names = 'node'

      hot_standby = on

  Simpan file tersebut dan exit.

4. Login sebagai user postrges. Lalu ikuti perintah berikut ini
  
    sudo su postgres

  cd 9.6/

     mv main main-backup

  mkdir main/

  chmod 700 main/

5. Selanjutnya copy data main dari Server Master  ke Server Slave dengan menggunakan user              replica

  pg_basebackup  -h 10.1.1.2  -U replica -D  /var/lib/postgresql/9.5/main  -P  --xlog

    Lalu Masukan Password:

6. Jika data sudah tercopy sempurna maka langkah selanjutnya adalah  ke directory main untuk              membuat  file recovery.conf

    cd  /var/lib/postgresql/9.5/main/ 

    vim recovery.conf

  Isi File tersebut dengan script dibawah ini:
     
     standby_mode = 'on'     primary_conninfo='host=10.1.1.2  port=5432 
     user=replica password=password  application_name=node'
     restore_command = 'cp  /var/lib/postgresql/9.5/main/archive/%f   %p'
     trigger_file = '/tmp/postgresql.trigger.5432'

  Simpan file tersebut dan exit.

7. Ubah permission file tersebut:

     chmod 600 recovery.conf



8.  Lalu Start  postgresql nya  dengan perintah:

     systemctl  start  postgresql

    netstat -plntu
 


   Data trasnfer  antara Server Master dan Server Slave sudah complete.

9. Cek status  Replikasi pada Server Master 

    sudo  su  postgres

    select application_name, state, sync_priority, sync_state from pg_stat_replication;

  select * from pg_stat_replication;
   
    
10.  Testing data apakah kedua server tersebut sudah sinkron?

        sudo su postgres
      
        psql

   CREATE TABLE replica_test (hakase varchar(100));


    INSERT INTO replica_test VALUES ('howtoforge.com');


    INSERT INTO replica_test VALUES ('This is from Master');


    INSERT INTO replica_test VALUES ('pg replication by hakase-labs');

  


   Cek data pada server Slave:

       sudo su postgres
     
        psql

   Cek data replica_test dengan query berikut:

        select * from replica_test;


   Maka akan terlihat data yang sama seperti gambar berikut:

       
   Untuk selanjutnya silahkan isi data pada Server Master  lalu kemudian cek di Server  Slave.
   



Oke teman- teman, sekian sharing dari saya, semoga tutorial ini sangat bermanfaat. Jangan lupa di like comment atau dibagikan , biar bermanfaat juga dengan teman-teman kita yang membutuhkan πŸ˜ƒThank you guys... see you next in the next tutorial byeeee...πŸ˜‡πŸ˜‡πŸ˜‡







0 komentar :

Posting Komentar