Upgrading postgres to 10 running with patroni

From: Debraj Manna <subharaj(dot)manna(at)gmail(dot)com>
To: pgsql-admin <pgsql-admin(at)postgresql(dot)org>
Subject: Upgrading postgres to 10 running with patroni
Date: 2017-11-16 07:29:54
Message-ID: CAF6DVKO8K761=3fZks_au0MHuOFD4xXBs5bM70qpaf6M5qJ=eQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Hi

I am trying to upgrade postgres 9.5 to postgres 10 running with patroni. I
am using patroni 1.0 with single node postgres.

The steps that I have been following -

*Stop patroni*
sudo kill -9 <patroni process id>

*Install postgres-10*
sudo add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/
trusty-pgdg main"
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo
apt-key add -
sudo apt-get update
sudo apt-get install postgresql-10

*Stop postgresql cluster*

*Init data directory for the new upgrade*
sudo -H -u postgres mkdir -p /var/lib/postgresql/10/data/postgresql0
sudo -H -u postgres /usr/lib/postgresql/10/bin/pg_ctl -D
/var/lib/postgresql/10/data/postgresql0 initdb -o '--data-checksums' -o
'--locale=C' -o '--encoding=utf8'

*Change data_directory in postgresq.conf for both 9.5 & 10*
data_directory - /var/lib/postgresql/data/postgresql0 # For
postgresql-9.5
data_directory - /var/lib/postgresql/10/data/postgresql0 # For
postgresql-10

*Perform the upgrade*
cd /tmp
sudo -H -u postgres /usr/lib/postgresql/10/bin/pg_upgrade \
-b /usr/lib/postgresql/9.5/bin \
-B /usr/lib/postgresql/10/bin \
-d /var/lib/postgresql/data/postgresql0 \
-D /var/lib/postgresql/10/data/postgresql0 \
-o ' -c config_file=/etc/postgresql/9.5/main/postgresql.conf' \
-O ' -c config_file=/etc/postgresql/10/main/postgresql.conf' -k

*./analyze_new_cluster.sh reported success.*

*Copy conf files*
Copied postgresql.base.conf, postgresql.conf , pg_hba.conf &
postmaster.opts from
9.5 data directory /var/lib/postgresql/data/postgresql0 to the 10 data
directory /var/lib/postgresql/10/data/postgresql0

*Change postmaster.opts to match postgres-10 locations*
/usr/lib/postgresql/10/bin/postgres "-D"
"/var/lib/postgresql/10/data/postgresql0" "-p" "50432" "-b" "-c"
"config_file=/etc/postgresql/10/main/postgresql.conf" "-c"
"listen_addresses=" "-c" "unix_socket_permissions=0700" "-c"
"unix_socket_directories=/tmp"

*Change data_dir in patroni.yml to/var/lib/postgresql/10/data/postgresql0*

On starting patroni I am getting exception like below and also the DB is
not accessible.

2017-11-16 07:11:18,622 INFO: Connecting to localhost:2181
2017-11-16 07:11:18,624 INFO: Zookeeper connection established, state: CONNECTED
2017-11-16 07:11:19,132 INFO: Closing connection to localhost:2181
2017-11-16 07:11:19,132 INFO: Zookeeper session lost, state: CLOSED
2017-11-16 07:11:19,133 INFO: Connecting to localhost:2181
2017-11-16 07:11:19,135 INFO: Zookeeper connection established, state: CONNECTED
Traceback (most recent call last):
File "/usr/local/bin/patroni", line 11, in <module>
load_entry_point('patroni==1.0', 'console_scripts', 'patroni')()
File "/usr/local/lib/python2.7/dist-packages/patroni/__init__.py",
line 128, in main
patroni.run()
File "/usr/local/lib/python2.7/dist-packages/patroni/__init__.py",
line 102, in run
logger.info(self.ha.run_cycle())
File "/usr/local/lib/python2.7/dist-packages/patroni/ha.py", line
502, in run_cycle
return self._run_cycle()
File "/usr/local/lib/python2.7/dist-packages/patroni/ha.py", line
470, in _run_cycle
if self.sysid_valid(self.cluster.initialize) and
self.cluster.initialize != self.state_handler.sysid:
File "/usr/local/lib/python2.7/dist-packages/patroni/postgresql.py",
line 257, in sysid
data = self.controldata()
File "/usr/local/lib/python2.7/dist-packages/patroni/postgresql.py",
line 675, in controldata
result = {l.split(':')[0].replace('Current ', '', 1):
l.split(':')[1].strip() for l in data if l}
File "/usr/local/lib/python2.7/dist-packages/patroni/postgresql.py",
line 675, in <dictcomp>
result = {l.split(':')[0].replace('Current ', '', 1):
l.split(':')[1].strip() for l in data if l}
IndexError: list index out of range
~

I was able to access the DB before starting patroni. So I think I missed
something on patroni side.

I am not sure if this is the right forum to ask this question. If anyone
has tried this please do let me know your thoughts.

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Debraj Manna 2017-11-16 07:32:32 Re: Upgrading postgres to 10 running with patroni
Previous Message Laurenz Albe 2017-11-16 07:13:20 Re: foreign tables query performance using postgres_fdw