@@ -36,46 +36,31 @@ docker build --tag postgres-pgbouncer pgbouncer
36
36
37
37
docker build --tag postgres-barman barman
38
38
39
- ### RUN IT
39
+ ### SETUP LOCAL ENV
40
40
export REPMGR_PASSWORD=` nicepass --password-length 24 `
41
41
42
42
export BARMAN_PASSWORD=` nicepass --password-length 24 `
43
43
44
44
export STREAMING_PASSWORD=` nicepass --password-length 24 `
45
45
46
- docker run --name pg-repmgr-1 --network pg_stream -e REPMGR_PASSWORD=$REPMGR_PASSWORD -e BARMAN_PASSWORD=$BARMAN_PASSWORD -e STREAMING_PASSWORD=$STREAMING_PASSWORD -d postgres-repmgr
46
+ ### RUN PRIMARY
47
+ docker run --name pg-repmgr-1 --hostname pg-repmgr-1 --network pg_stream -e REPMGR_PASSWORD=$REPMGR_PASSWORD -e BARMAN_PASSWORD=$BARMAN_PASSWORD -e STREAMING_PASSWORD=$STREAMING_PASSWORD -d postgres-repmgr
47
48
48
- sleep 2
49
+ sleep 15
49
50
50
- docker run --name pg-repmgr-2 --network pg_stream -e REPMGR_PASSWORD=$REPMGR_PASSWORD -e BARMAN_PASSWORD=$BARMAN_PASSWORD -e STREAMING_PASSWORD=$STREAMING_PASSWORD -e PRIMARY_NODE=pg-repmgr-1 -d postgres-repmgr
51
-
52
- sleep 2
53
-
54
- docker run --name pg-repmgr-3 --network pg_stream -e REPMGR_PASSWORD=$REPMGR_PASSWORD -e BARMAN_PASSWORD=$BARMAN_PASSWORD -e STREAMING_PASSWORD=$STREAMING_PASSWORD -e PRIMARY_NODE=pg-repmgr-1 -d postgres-repmgr
55
-
56
- sleep 8
57
-
58
- docker exec -it pg-repmgr-2 su -c "repmgr cluster show" - postgres
59
- sleep 3
60
-
61
-
62
- #### PGBOUNCER
63
- docker run --name pg-pgbouncer-1 --network pg_stream -e PRIMARY_NODE=pg-repmgr-1 -d postgres-pgbouncer
64
-
65
- sleep 1
66
-
67
- docker exec -it pg-pgbouncer-1 psql -U postgres -c "select client_addr, state, sent_lsn, write_lsn, flush_lsn, replay_lsn from pg_stat_replication;"
68
-
69
- #### BARMAN
70
- docker run --name pg-barman-1 --network pg_stream -e BARMAN_PASSWORD=$BARMAN_PASSWORD -e STREAMING_PASSWORD=$STREAMING_PASSWORD -e PRIMARY_NODE=pg-repmgr-1 -d postgres-barman
51
+ ### RUN BARMAN ( for standby clones setup )
52
+ docker run --name pg-barman-1 --hostname pg-barman-1 --network pg_stream -e BARMAN_PASSWORD=$BARMAN_PASSWORD -e STREAMING_PASSWORD=$STREAMING_PASSWORD -e PRIMARY_NODE=pg-repmgr-1 -d postgres-barman
71
53
72
54
sleep 30
73
55
74
56
docker exec -it pg-barman-1 barman backup all
75
57
58
+ docker exec -it pg-barman-1 barman backup all
59
+
76
60
docker exec -it pg-barman-1 barman cron
77
61
78
62
docker exec -it pg-barman-1 barman check pg-repmgr-1
63
+
79
64
`Server pg-repmgr-1:
80
65
PostgreSQL: OK
81
66
is_superuser: OK
@@ -95,6 +80,28 @@ docker exec -it pg-barman-1 barman check pg-repmgr-1
95
80
receive-wal running: OK
96
81
archiver errors: OK`
97
82
83
+ ### RUN SECONDARIES
84
+
85
+ docker run --name pg-repmgr-2 --hostname pg-repmgr-2 --network pg_stream -e REPMGR_PASSWORD=$REPMGR_PASSWORD -e BARMAN_PASSWORD=$BARMAN_PASSWORD -e STREAMING_PASSWORD=$STREAMING_PASSWORD -e PRIMARY_NODE=pg-repmgr-1 -d postgres-repmgr
86
+
87
+ sleep 20
88
+
89
+ docker run --name pg-repmgr-3 --hostname pg-repmgr-3 --network pg_stream -e REPMGR_PASSWORD=$REPMGR_PASSWORD -e BARMAN_PASSWORD=$BARMAN_PASSWORD -e STREAMING_PASSWORD=$STREAMING_PASSWORD -e PRIMARY_NODE=pg-repmgr-1 -d postgres-repmgr
90
+
91
+ sleep 8
92
+
93
+ docker exec -it pg-repmgr-2 su -c "repmgr cluster show" - postgres
94
+ sleep 3
95
+
96
+
97
+ #### PGBOUNCER
98
+ docker run --name pg-pgbouncer-1 --network pg_stream -e PRIMARY_NODE=pg-repmgr-1 -d postgres-pgbouncer
99
+
100
+ sleep 1
101
+
102
+ docker exec -it pg-pgbouncer-1 psql -U postgres -c "select client_addr, state, sent_lsn, write_lsn, flush_lsn, replay_lsn from pg_stat_replication;"
103
+
104
+
98
105
99
106
### FORCE FAILOVER
100
107
[ monitor from another shell ] docker logs -f pg-repmgr-2
@@ -108,10 +115,13 @@ docker exec -it pg-repmgr-2 su -c "repmgr cluster show" - postgres
108
115
### TEST BOUNCER TO NEW MASTER
109
116
docker exec -it pg-pgbouncer-1 psql -U postgres -c "select client_addr, state, sent_lsn, write_lsn, flush_lsn, replay_lsn from pg_stat_replication;"
110
117
118
+ ### TEST BARMAN TO NEW MASTER
119
+ docker exec -it pg-barman-1 barman check all
120
+
111
121
### REJOIN OLD MASTER
112
122
docker unpause pg-repmgr-1
113
123
114
- sleep 10
124
+ sleep 100
115
125
116
126
docker exec -it -u postgres pg-repmgr-1 bash -c 'repmgr node service --action=stop --checkpoint'
117
127
0 commit comments