Server STB –
Master Server (MS) : Server yang menyediakan publication
Slave Server (SS) : Server yang menerima subscription
Pada replikasi kali ini, akan digunakan database dengan nama tes dan menggunakan tabel dengan nama coba baik itu di MS dan di SS
Langkah menggunakan replikasi :
- Install Postgres pada MS dan SS
- Buatlah database dengan nama tes (MS)(SS):
(login aplikasi psql ataupun pgadmin 4)
CREATE DATABASE tes;
- Buatlah tabel dengan nama coba yang diletakkan di schema public (MS)(SS):
CREATE TABLE coba
(
id integer primary key,
name varchar(100)
);
- Buat user dengan nama inixindo dan diberi akses ke database, tabel, dan replikasi (MS):
CREATE USER inixindo REPLICATION LOGIN CONNECTION LIMIT 100 ENCRYPTED PASSWORD '123'; GRANT ALL PRIVILEGES ON DATABASE example TO inixindo; GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO inixindo;
- Konfigurasi database pada file C:\Program Files\PostgreSQL\11\data\postgresql.conf menjadi (MS):
wal_level = 'logical'
archive_mode = on
- Konfigurasi database pada file C:\Program Files\PostgreSQL\11\data\pg_hba.conf menjadi (MS)(SS):
# TYPE DATABASE USER ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
host tes inixindo 192.168.4.145/24 md5
host replication all 127.0.0.1/32 md5
host replication all ::1/128 md5
- Restart Master Server (MS) (bisa dari service windows, Postgres stop kemudian start kembali).
- Tes koneksi untuk memastikan bisa terhubung dengan MS. (SS):
C:\Program Files\PostgreSQL\11\bin> psql -U inixindo -h 192.168.4.145 -d tes
- Buat Publication yang berfungsi untuk menyediakan replikasi terhadap suatu tabel (MS) :
CREATE PUBLICATION publication_coba;
ALTER PUBLICATION publication_coba ADD TABLE coba;
- Membuat Subscription yang berfungsi untuk terkoneksi pada Publication (SS) :
CREATE SUBSCRIPTION subscription_coba CONNECTION 'host=192.168.4.145 port=5432 password=’123’ user=inixindo dbname=tes' PUBLICATION publication_coba;
- Silakan coba menambahkan data pada Master Server (MS):
insert into coba values(1,’faizal’);
- Cek record pada Master Server (MS) dan Slave Server (SS):
select * from coba;
select * from pg_publication;
Semoga artikel ini membantu anda lebih memahami banyak permasalahan dalam replikasi database. Jangan sungkan tinggalkan komentar di bawah jika anda memiliki pertanyaan. Sampai jumpa diartikel selanjutnya.