Create primary database server
This is the database server in our facility in e.g. Munich
initdb -D /var/lib/pgsql/daselement-munich
Configure primary server
change postgres.conf to enable networking
create a replication user
allow remote access in pg_hba.conf
change postgres.conf to enable networking
vim /var/lib/pgsql/daselement-munich/postgres.conf # uncomment and change the line: listen_addresses = '*' # and change the port to 5433 to avoid conflicts with production port 5432 port = 5433 # start the database pg_ctl -D /var/lib/pgsql/daselement-data start
create a replication user
# create replication user psql -- port 5433 postgres [local]:5433 postgres=# create user repuser replication;
allow remote access in pg_hba.conf
add line to allow access for the replication user
vim /var/lib/pgsql/daselement-data/pg_hba.conf # TYPE DATABASE USER CIDR-ADDRESS METHOD # IPv4 local connections host all repuser localhost trust # restart the database pg_ctl -D /var/lib/pgsql/daselement-munich restart
The primary system is now ready. Let’s move on to the replica system!
Create replica database server
Now we are at a database server in a different facility. E.g. Vancouver
# create the replica database # this command pg_basebackup copies the files from the primary database pg_basebackup -h db-munich -U repuser --checkpoint=fast -D /var/lib/pgsql/daselement-munich-replica/ -R --slot=daselement_munich -C --port 5433
In the replica directory you will find these two files
standby.signal
this file defines that the database that it is a replica
postgresql.auto.conf
contains information to connect to the primary server