Re: [ADMIN] Upgrading postgres to 10 running with patroni

Поиск
Список
Период
Сортировка
От Debraj Manna
Тема Re: [ADMIN] Upgrading postgres to 10 running with patroni
Дата
Msg-id CAF6DVKO27E=1nU7HWWxDczsw53Ata4djPjf9mMOP5_smO5RFZA@mail.gmail.com
обсуждение исходный текст
Ответ на [ADMIN] Upgrading postgres to 10 running with patroni  (Debraj Manna <subharaj.manna@gmail.com>)
Ответы Re: [ADMIN] Upgrading postgres to 10 running with patroni  (Magnus Hagander <magnus@hagander.net>)
Список pgsql-admin
I am attaching my patroni.yml for reference.

On Thu, Nov 16, 2017 at 12:59 PM, Debraj Manna <subharaj.manna@gmail.com> wrote:
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.confpostgresql.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.

Вложения

В списке pgsql-admin по дате отправления:

Предыдущее
От: Debraj Manna
Дата:
Сообщение: [ADMIN] Upgrading postgres to 10 running with patroni
Следующее
От: Magnus Hagander
Дата:
Сообщение: Re: [ADMIN] Upgrading postgres to 10 running with patroni