...
In each facility you have a database server up and running with Postgres installed.
START STREAMING
This is for a streaming replication! We want to have a logical replication.
Create primary database server
Info |
---|
This is the database server in our facility in e.g. Munich |
Code Block |
---|
initdb -D /var/lib/postgresql/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
Code Block |
---|
vim /var/lib/postgresql/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 Postgres server
pg_ctl -D /var/lib/postgresql/daselement-data start |
create a replication user
Code Block |
---|
# 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
Code Block |
---|
vim /var/lib/postgresql/daselement-data/pg_hba.conf
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# IPv4 local connections
host all repuser localhost trust
# restart the Postgres server
pg_ctl -D /var/lib/postgresql/daselement-munich restart |
...
Create replica database server
Info |
---|
Now we are at a database server in a different facility. E.g. Vancouver |
Code Block | ||
---|---|---|
| ||
# create the replica Postgres server
# this command pg_basebackup copies the files from the primary database
pg_basebackup -h db-munich -U repuser --checkpoint=fast -D /var/lib/postgresql/daselement-munich-replica/ -R --slot=daselement_munich -C --port 5433 |
...
standby.signal
this file defines that the database that it is a replica
postgresql.auto.conf
contains information to connect to the primary server
Now start the replica server
Code Block |
---|
# start the Postgres server
pg_ctl -D /var/lib/postgresql/daselement-munich-replica |
END STREAMING
Monitoring
To monitor the databases you can for example use pgwatch2
...
initiate 2 new PostgresSQL database clusters
Configure Publisher server with “wal_level=logical“
Start the instance
Create a database and the tables
Configure primary server
Code Block |
---|
# create database cluster initdb -D /var/lib/postgresql/daselement-munich_publication |
...
Code Block |
---|
# access the database
psql --port=5432 postgres
# create user in the database
CREATE ROLE postgres LOGIN password 'postgres'; |
START STREAMING
This is for a streaming replication! We want to have a logical replication.
Create primary database server
Info |
---|
This is the database server in our facility in e.g. Munich |
Code Block |
---|
initdb -D /var/lib/postgresql/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
Code Block |
---|
vim /var/lib/postgresql/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 Postgres server
pg_ctl -D /var/lib/postgresql/daselement-data start |
create a replication user
Code Block |
---|
# 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
Code Block |
---|
vim /var/lib/postgresql/daselement-data/pg_hba.conf
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# IPv4 local connections
host all repuser localhost trust
# restart the Postgres server
pg_ctl -D /var/lib/postgresql/daselement-munich restart |
The primary system is now ready. Let’s move on to the replica system!
Create replica database server
Info |
---|
Now we are at a database server in a different facility. E.g. Vancouver |
Code Block | ||
---|---|---|
| ||
# create the replica Postgres server
# this command pg_basebackup copies the files from the primary database
pg_basebackup -h db-munich -U repuser --checkpoint=fast -D /var/lib/postgresql/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
Now start the replica server
Code Block |
---|
# start the Postgres server
pg_ctl -D /var/lib/postgresql/daselement-munich-replica |
END STREAMING