git commit -m base\r
\r
\r
+PostgreSQL replikacija, wal shipping, streaming, host standby\r
+\r
\r
https://www.postgresql.org/docs/9.6/static/warm-standby.html\r
\r
\r
\r
[root@edozvola-db-01 ~]# vi /var/lib/pgsql/9.6/data/postgresql.conf\r
-wal_level = replica\r
+wal_level = replica # same as hot_standby\r
\r
# https://www.postgresql.org/docs/9.6/static/runtime-config-wal.html#GUC-SYNCHRONOUS-COMMIT\r
synchronous_commit = on\r
\r
\r
\r
-\r
+# recovery.conf\r
\r
[root@edozvola-db-02 ~]# cat recovery.conf\r
standby_mode = 'on'\r
[root@edozvola-db-01 pgsql]# cat create-pgsql-slave.sh\r
#!/bin/sh -e\r
\r
-\r
# WARNING: this script depends that two database nodes have IPs which and in x1 and x2\r
# tr 12 21 does swap from currnet node number/ip to other one!\r
\r
-\r
test "`whoami`" != "postgres" && echo "$0 needs to be run as postgres user!" && exit 1\r
\r
-\r
here=`hostname -s`\r
there=`hostname -s | tr 12 21`\r
\r
-\r
my_ip=`ip addr | grep 10.200.1. | sed 's/^.*\(10\.200\.1\.[0-9]*\)\/.*$/\1/'`\r
other_ip=`echo $my_ip | tr 12 21`\r
\r
-\r
echo "Create slave on $here $my_ip using data from master on $there $other_ip"\r
echo "[enter] to start"\r
read\r
\r
-\r
#systemctl stop postgresql-9.6.service || true\r
/usr/pgsql-9.6/bin/pg_ctl --pgdata=/var/lib/pgsql/9.6/data stop || true\r
\r
-\r
echo "select pg_start_backup('slave')" | ssh $there psql\r
\r
-\r
rsync -rav --delete --exclude pg_xlog $there:/var/lib/pgsql/9.6/data/ /var/lib/pgsql/9.6/data/\r
\r
-\r
echo "select pg_stop_backup()" | ssh $there psql\r
\r
-\r
test -e /var/lib/pgsql/9.6/data/recovery.done || ( echo "ERROR: no recovery.done !" && exit 1 )\r
cat /var/lib/pgsql/9.6/data/recovery.done | sed -e s/$my_ip/$other_ip/ > /var/lib/pgsql/9.6/data/recovery.conf\r
\r
\r
\r
\r
-hot_standby?\r