update za instalaciju pgpool mašine
[edozvola] / edozvola-dpavlin.txt
index 38ef4e6..b8ab38b 100644 (file)
@@ -1,10 +1,15 @@
-yum install etckeeper\r
+# instalirati etckeeper da čuva /etc/ direktorij u git-u\r
+# (nije na produkcijskom enviromentu)\r
+\r
+yum install etckeeper\r
 cd /etc/\r
 git config --global user.email "dpavlin@rot13.org"\r
 git config --global user.name "Dobrica Pavlinusic"\r
 git commit -m base\r
 \r
 \r
 cd /etc/\r
 git config --global user.email "dpavlin@rot13.org"\r
 git config --global user.name "Dobrica Pavlinusic"\r
 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
 https://www.postgresql.org/docs/9.6/static/warm-standby.html\r
 \r
@@ -26,7 +31,7 @@ bash-4.2$ cp -v .ssh/id_rsa.pub .ssh/authorized_keys
 ‘.ssh/id_rsa.pub’ -> ‘.ssh/authorized_keys’\r
 \r
 \r
 ‘.ssh/id_rsa.pub’ -> ‘.ssh/authorized_keys’\r
 \r
 \r
-prekopirati isti kljuc i authoriorized keys na slave:\r
+## prekopirati isti kljuc i authoriorized keys na slave:\r
 \r
 \r
 [root@edozvola-db-01 pgsql]# rsync -rav .ssh edozvola-db-02:`pwd`\r
 \r
 \r
 [root@edozvola-db-01 pgsql]# rsync -rav .ssh edozvola-db-02:`pwd`\r
@@ -44,7 +49,8 @@ sending incremental file list
 \r
 \r
 \r
 \r
 \r
 \r
-kreirati testnu bazu i tablicu\r
+# kreirati testnu bazu i tablicu\r
+\r
 [root@edozvola-db-01 ~]# sudo -u postgres createdb test\r
 [root@edozvola-db-01 ~]# sudo -u postgres psql test\r
 test=# create table test1 ( id serial, a text, b int ) ;\r
 [root@edozvola-db-01 ~]# sudo -u postgres createdb test\r
 [root@edozvola-db-01 ~]# sudo -u postgres psql test\r
 test=# create table test1 ( id serial, a text, b int ) ;\r
@@ -54,106 +60,80 @@ test=# insert into test1 (a,b) values ('bar',1234) ;
 INSERT 0 1\r
 \r
 \r
 INSERT 0 1\r
 \r
 \r
-nfs share za wal fileove\r
+\r
+# nfs share za wal fileove\r
+\r
 [root@edozvola-db-pgpool ~]# yum install nfs-utils nfs4-acl-tools\r
 [root@edozvola-db-pgpool ~]# systemctl enable nfs-server.service\r
 Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.\r
 [root@edozvola-db-pgpool ~]# systemctl start nfs-server.service\r
 \r
 [root@edozvola-db-pgpool ~]# yum install nfs-utils nfs4-acl-tools\r
 [root@edozvola-db-pgpool ~]# systemctl enable nfs-server.service\r
 Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.\r
 [root@edozvola-db-pgpool ~]# systemctl start nfs-server.service\r
 \r
-\r
 [root@edozvola-db-pgpool ~]# mkdir -p /shared/pgsql\r
 [root@edozvola-db-pgpool ~]# chown postgres /shared/pgsql/\r
 \r
 [root@edozvola-db-pgpool ~]# mkdir -p /shared/pgsql\r
 [root@edozvola-db-pgpool ~]# chown postgres /shared/pgsql/\r
 \r
-\r
 [root@edozvola-db-pgpool ~]# vi /etc/exports\r
 \r
 [root@edozvola-db-pgpool ~]# vi /etc/exports\r
 \r
-\r
 [root@edozvola-db-pgpool ~]# cat /etc/exports\r
 /shared/pgsql edozvola-db-01(rw,no_root_squash) edozvola-db-02(rw,no_root_squash)\r
 \r
 [root@edozvola-db-pgpool ~]# cat /etc/exports\r
 /shared/pgsql edozvola-db-01(rw,no_root_squash) edozvola-db-02(rw,no_root_squash)\r
 \r
-\r
 [root@edozvola-db-pgpool ~]# exportfs -va\r
 exporting edozvola-db-01:/shared/pgsql\r
 exporting edozvola-db-02:/shared/pgsql\r
 \r
 \r
 [root@edozvola-db-pgpool ~]# exportfs -va\r
 exporting edozvola-db-01:/shared/pgsql\r
 exporting edozvola-db-02:/shared/pgsql\r
 \r
 \r
-mount na database serverima\r
+\r
+# mount na database serverima\r
+\r
 [root@edozvola-db-01 ~]# yum install nfs-utils nfs4-acl-tools\r
 [root@edozvola-db-01 ~]# mkdir -p /shared/pgsql\r
 [root@edozvola-db-01 ~]# vi /etc/fstab\r
 \r
 [root@edozvola-db-01 ~]# yum install nfs-utils nfs4-acl-tools\r
 [root@edozvola-db-01 ~]# mkdir -p /shared/pgsql\r
 [root@edozvola-db-01 ~]# vi /etc/fstab\r
 \r
-\r
 [root@edozvola-db-01 ~]# grep shared /etc/fstab\r
 edozvola-db-pgpool:/shared/pgsql        /shared/pgsql   nfs     defaults        0 0\r
 \r
 [root@edozvola-db-01 ~]# grep shared /etc/fstab\r
 edozvola-db-pgpool:/shared/pgsql        /shared/pgsql   nfs     defaults        0 0\r
 \r
-\r
 [root@edozvola-db-01 ~]# mount /shared/pgsql/\r
 \r
 [root@edozvola-db-01 ~]# mount /shared/pgsql/\r
 \r
-\r
-provjeriti da li postgresql korisnik moze pisati po nfs share-u\r
-\r
+## provjeriti da li postgresql korisnik moze pisati po nfs share-u\r
 \r
 [root@edozvola-db-01 ~]# sudo -u postgres touch /shared/pgsql/test-01\r
 [root@edozvola-db-01 ~]# ls -al /shared/pgsql/test-01\r
 -rw-r--r-- 1 postgres postgres 0 Aug 18 13:57 /shared/pgsql/test-01\r
 [root@edozvola-db-01 ~]# rm -f /shared/pgsql/test-01\r
 \r
 \r
 [root@edozvola-db-01 ~]# sudo -u postgres touch /shared/pgsql/test-01\r
 [root@edozvola-db-01 ~]# ls -al /shared/pgsql/test-01\r
 -rw-r--r-- 1 postgres postgres 0 Aug 18 13:57 /shared/pgsql/test-01\r
 [root@edozvola-db-01 ~]# rm -f /shared/pgsql/test-01\r
 \r
-\r
-isto ponoviti na edozvola-db-02!\r
-\r
+## isto ponoviti na edozvola-db-02!\r
 \r
 \r
 \r
 \r
 \r
 \r
 \r
 \r
 \r
 \r
-\r
-\r
-\r
-\r
-\r
-\r
-podesiti wal archiving\r
-\r
+# podesiti wal archiving\r
 \r
 https://www.postgresql.org/docs/9.6/static/continuous-archiving.html\r
 \r
 \r
 [root@edozvola-db-01 ~]# vi /var/lib/pgsql/9.6/data/postgresql.conf\r
 \r
 https://www.postgresql.org/docs/9.6/static/continuous-archiving.html\r
 \r
 \r
 [root@edozvola-db-01 ~]# vi /var/lib/pgsql/9.6/data/postgresql.conf\r
-wal_level = replica\r
-archive_mode = on\r
-max_wal_senders = 1 \r
-max_replication_slots = 1\r
-archive_command = 'test ! -f /shared/pgsql/%f && cp %p /shared/pgsql/%f'\r
-hot_standby = on\r
-\r
-\r
+wal_level = replica # same as hot_standby\r
 \r
 \r
+# https://www.postgresql.org/docs/9.6/static/runtime-config-wal.html#GUC-SYNCHRONOUS-COMMIT\r
+synchronous_commit = on\r
 \r
 \r
+archive_mode = on\r
+archive_command = 'test ! -f /shared/pgsql/%f && cp %p /shared/pgsql/%f'\r
 \r
 \r
+max_wal_senders = 3 \r
+max_replication_slots = 3\r
 \r
 \r
+hot_standby = on\r
 \r
 \r
 [root@edozvola-db-01 ~]# systemctl restart postgresql-9.6.service\r
 \r
 \r
 \r
 \r
 \r
 [root@edozvola-db-01 ~]# systemctl restart postgresql-9.6.service\r
 \r
 \r
 \r
+# kreirati replication korisnika\r
 \r
 \r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-kreirati replication korisnika\r
 [root@edozvola-db-01 ~]# sudo -u postgres psql\r
 \r
 [root@edozvola-db-01 ~]# sudo -u postgres psql\r
 \r
-\r
 postgres=# create user replication with password 'replication123' login replication ;\r
 CREATE ROLE\r
 \r
 postgres=# create user replication with password 'replication123' login replication ;\r
 CREATE ROLE\r
 \r
@@ -163,15 +143,13 @@ CREATE ROLE
 \r
 host    replication     replication     10.200.1.62/24          md5\r
 \r
 \r
 host    replication     replication     10.200.1.62/24          md5\r
 \r
-\r
-netmask je /24 da mozemo imati istu konfiguraciju na oba node-a\r
+## netmask je /24 da mozemo imati istu konfiguraciju na oba node-a\r
 \r
 \r
 \r
 \r
 \r
 \r
 \r
 \r
 \r
 \r
-\r
-testirati replikaciju\r
+# testirati replikaciju\r
 [root@edozvola-db-01 ~]# sudo -u postgres psql test\r
 test=# insert into test1 (a,b) values ('baz',3);\r
 INSERT 0 1\r
 [root@edozvola-db-01 ~]# sudo -u postgres psql test\r
 test=# insert into test1 (a,b) values ('baz',3);\r
 INSERT 0 1\r
@@ -232,7 +210,7 @@ da bi svi podaci zavrsili na slave-u, na masteru je dobro izvrsiti komandu check
 \r
 \r
 \r
 \r
 \r
 \r
-\r
+# recovery.conf\r
 \r
 [root@edozvola-db-02 ~]# cat recovery.conf\r
 standby_mode = 'on'\r
 \r
 [root@edozvola-db-02 ~]# cat recovery.conf\r
 standby_mode = 'on'\r
@@ -243,63 +221,49 @@ archive_cleanup_command = 'pg_archivecleanup /shared/pgsql %r'
 \r
 \r
 \r
 \r
 \r
 \r
-skripte\r
-promoviranje slave-a u master\r
+# skripte\r
 \r
 \r
 [root@edozvola-db-01 pgsql]# pwd\r
 /var/lib/pgsql\r
 \r
 \r
 [root@edozvola-db-01 pgsql]# pwd\r
 /var/lib/pgsql\r
-[root@edozvola-db-01 pgsql]# cat promote-slave-to-master.sh\r
-#!/bin/sh -xe\r
-\r
 \r
 \r
 \r
 \r
+## promoviranje slave-a u master\r
 \r
 \r
+[root@edozvola-db-01 pgsql]# cat promote-slave-to-master.sh\r
+#!/bin/sh -xe\r
 /usr/pgsql-9.6/bin/pg_ctl --pgdata=/var/lib/pgsql/9.6/data promote\r
 \r
 \r
 /usr/pgsql-9.6/bin/pg_ctl --pgdata=/var/lib/pgsql/9.6/data promote\r
 \r
 \r
+## kreiranje slave instance od mastera\r
 \r
 \r
-\r
-\r
-\r
-kreiranje slave instance od mastera\r
 [root@edozvola-db-01 pgsql]# cat create-pgsql-slave.sh\r
 #!/bin/sh -e\r
 \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
 # 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
 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
 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
 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
 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
 #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
 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
 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
 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
 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
@@ -314,4 +278,3 @@ cat /var/lib/pgsql/9.6/data/recovery.done | sed -e s/$my_ip/$other_ip/ > /var/li
 \r
 \r
 \r
 \r
 \r
 \r
-hot_standby?\r