Configure Primary for Replication
Aa ek task - primary server ma replication set karva mate, Aapde have 4 sub tasks karva padse.
- change postgresql.conf ane aema networking ne enable karvu jose.
- ek replication user create karvo padse. (best practice)
- pg_hba.conf ma remote access allow karvu padse.
- primary server ne restart marvu jose.
1) postgresql.conf file ne change kari ne network enable karo.​
aa postgresql.conf file aapdi choosen directory ma find kari sakie, aapda case ma aa rehse /tmp/primary_db/
aa file ne nano ni madad thi open kari lo.
cd /tmp/primary_db/
nano postgresql.conf
have aapde ek parameter ni value change karvi padse jenu name 6e, listen_addresses
possible 6e k aa parameter commented hoi, to aene pehla uncomment karo and then value tarike '*' set karo.
by default, PostgreSQL matra localhost nej listen kare 6e. Remote access allowed nathi by default for security reasons. jethi karine aapde
kem k aapde same server maaj biju cluster banavsu, to anu port number conflict no thai aetle post number bhi change karsu.
listen_addresses = '*'
port = 5433
file ne save karo and then have database ne start karva mate, aapde pg_ctl command no use kari sakie 6ie.
pg_ctl -D /tmp/primary_db start
in case jo kai log file mate permission ni error aave to chown ni madad thi ae log folder ma permission set kari do. ane fari thi try karo.
2) Replication user create karvo​
First, aapde default database ma connect thase called postgres
psql --port=5433 postgres
have aapde postgres na terminal ma aavi gaya 6ie. prefix ma aapde kaink aa rite jova maltu hoi 6e.
[local]:5433 postgres=#
have aapde replication user create karsu.
[local]:5433 postgres=# create user repuser replication;
ahi dhyaan rakhjo k application flag ne proper set karelu hoi. aapde password ne bhi set kari sakie 6ie.
Ahi basic usecase aej 6e k admin user na transaction logs ne primary to replica ma set karva.
3) Remote access allow karvu with security​
Have aapde set karu k kon remotely access kari sake and kya IP address ni madad thi?
aena mate ni configuration file 6e pg_hba.conf. ahi hba nu full form thai 6e Host-Based Authentication.
aa file ne nano ni madad thi open karo
cd /tmp/primary_db
nano pg_hba.conf
ahi ipv4 ma ek new entry ne add karo.
host all repuser 127.0.0.1/32 trust
4) Restart primary server​
kem k aapde postgresql.conf ma change karelu 6e aetle aapde server ne restart karvu jaruri 6e. jo matra pg_hba.conf file maaj change karya hot to, simple reload karie to chale.
to restart karva mate,
pg_ctl -D /tmp/primary_db restart
Aapdu primary system have ready thai gayu 6e. have aapde replica system par focus kari sakay.
Summary​
Jo thoda confused 6o k postgresql.conf ma aapde listen_addresses = '*' karyu and pg_hba.conf ma aapde record ni entry kari to aa banne vacche su kar 6e?
to tuk ma, postgresql.conf file ma listen_addresses = '*' ae ek prakare badha port ne open karse request access karva mate pan ae authorize nathi kartu.
pg_hba.conf ma add karel record ae authorize karse k kon connect kari sake, kya IP par thi, kya database ne ane kya authentication thi access kari sake.
kem k aapde replication par practice karie 6ie aetle aapde security reason thi ek new user j create karsu. aa user j replica streaming karse. jethi aa user mate j aapde pg_hba.conf file ma record set karyo.
last ma aapde postgresql.conf file ma change karya aetle aapde server ne restart karvu padyu. to aena mate simple
pg_ctl -D /tmp/primary_db restart