You can do an (almost) zero downtime migration between any postgres version starting with 9.2 using pglogical.
Basically, you first set up your new instance as a full replica of the old one. Then, you change whatever configuration your app has, changing the connection parameters so they point to the new instance, reboot your app(s) if needed, and that's all. As pglogical does not blocks changes on slaves, your app will run normally even with pglogical installed and active, letting you a time frame where you can have some connections still pointing to your old instance, with changes made on such connections being reflected on your new instance(warning: the opposite way will not happen.
Regards,
Alvaro Aguayo
Jefe de Operaciones
Open Comb Systems E.I.R.L.
Oficina: (+51-1) 3377813 | RPM: #034252 / (+51) 995540103 | RPC: (+51) 954183248
Website: www.ocs.pe
Sent from my Sony Xperia™ smartphone
---- Debraj Manna wrote ----
Basically, you first set up your new instance as a full replica of the old one. Then, you change whatever configuration your app has, changing the connection parameters so they point to the new instance, reboot your app(s) if needed, and that's all. As pglogical does not blocks changes on slaves, your app will run normally even with pglogical installed and active, letting you a time frame where you can have some connections still pointing to your old instance, with changes made on such connections being reflected on your new instance(warning: the opposite way will not happen.
Regards,
Alvaro Aguayo
Jefe de Operaciones
Open Comb Systems E.I.R.L.
Oficina: (+51-1) 3377813 | RPM: #034252 / (+51) 995540103 | RPC: (+51) 954183248
Website: www.ocs.pe
Sent from my Sony Xperia™ smartphone
---- Debraj Manna wrote ----
Cross posting from stack-exchange
I am trying to test the migration of postgres to 10 from 9.5
On trying in a test DB of size 490 GB in one postgres node it is taking about 18 mins. The command I used
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
Is there any faster way of doing this?