Thread: Safest pgupgrade jump distance
Hi, I was wondering what is the safest pg_upgrade version upgrade distance going from 9.6 version. Do I need to go version by version or I can go from 9.6 to 15? We have a very huge database(TBs) with one replication server, so we will first run the pgupgrade on the main server and then rsync to a standby replica. I'm not sure whether it's safe to do it from 9.6 to 15 at once, I have tested the process on 9,6 to 10 yet. Would that be a wise approach to such an upgrade of the db?
Also, when upgrading a very big database with replication where none of the data can be allowed to be lost, is the pgupgrade into rsync approach the best one? Thanks.
On 2024-02-12 20:07, Dávid Suchan wrote: > Hi, I was wondering what is the safest pg_upgrade version upgrade > distance > going from 9.6 version. Do I need to go version by version or I can go > from > 9.6 to 15? We have a very huge database(TBs) with one replication > server, > so we will first run the pgupgrade on the main server and then rsync to > a > standby replica. I'm not sure whether it's safe to do it from 9.6 to 15 > at > once, I have tested the process on 9,6 to 10 yet. Would that be a wise > approach to such an upgrade of the db? > Also, when upgrading a very big database with replication where none of > the > data can be allowed to be lost, is the pgupgrade into rsync approach > the > best one? Thanks. pgupgrade from 9.6 directly to 16 should work fine. That's part of the test suite for one of my side projects (pgautoupgrade in Docker). You'll probably want to use the "--link" option too, so it uses the existing data files rather than recreating them. It's *much* faster. :) I'm not sure how the rsync of things will figure into it though. If you're just rsyncing files when the database is turned off, it should be straight forward. As always though, make sure you have a backup (that's known to work) before you try it all out though. :) + Justin
I have upgraded from 9.5 to 14 using the -link option. It works fine.
I equally had streaming replication running on it.
I break(split brain) replication and upgrade the standby, once it done and everything is running smoothly, I then install version 14 to the old primary and just configure streaming on it and all now runs on 14.
On Mon, Feb 12, 2024 at 5:08 AM Dávid Suchan <david.suchan.ds@gmail.com> wrote:
Hi, I was wondering what is the safest pg_upgrade version upgrade distance going from 9.6 version. Do I need to go version by version or I can go from 9.6 to 15? We have a very huge database(TBs) with one replication server, so we will first run the pgupgrade on the main server and then rsync to a standby replica. I'm not sure whether it's safe to do it from 9.6 to 15 at once, I have tested the process on 9,6 to 10 yet. Would that be a wise approach to such an upgrade of the db?Also, when upgrading a very big database with replication where none of the data can be allowed to be lost, is the pgupgrade into rsync approach the best one? Thanks.
On Mon, Feb 12, 2024 at 5:08 AM Dávid Suchan <david.suchan.ds@gmail.com> wrote:
Hi, I was wondering what is the safest pg_upgrade version upgrade distance going from 9.6 version. Do I need to go version by version or I can go from 9.6 to 15? We have a very huge database(TBs) with one replication server, so we will first run the pgupgrade on the main server and then rsync to a standby replica. I'm not sure whether it's safe to do it from 9.6 to 15 at once
"pg_upgrade supports upgrades from 9.2.X and later to the current major release of PostgreSQL, including snapshot and beta releases."
Am Mon, Feb 12, 2024 at 09:31:50AM -0500 schrieb Ron Johnson: > https://www.postgresql.org/docs/16/pgupgrade.html > "pg_upgrade supports upgrades from 9.2.X and later to the current major > release of PostgreSQL, including snapshot and beta releases." Just to be sure: it should be stressed that the binaries of the later version (16 in OPs case) should be used to run the upgrade, right ? Karsten -- GPG 40BE 5B0E C98E 1713 AFA6 5BC0 3BEA AC80 7D4F C89B
Karsten Hilbert <Karsten.Hilbert@gmx.net> writes: > Am Mon, Feb 12, 2024 at 09:31:50AM -0500 schrieb Ron Johnson: >> https://www.postgresql.org/docs/16/pgupgrade.html >> "pg_upgrade supports upgrades from 9.2.X and later to the current major >> release of PostgreSQL, including snapshot and beta releases." > Just to be sure: it should be stressed that the binaries of > the later version (16 in OPs case) should be used to run the > upgrade, right ? Right. Another thing worth pointing out here is that with such a large jump distance, you'd better test application compatibility before making the change on your production database. There are likely to be a few gotchas. regards, tom lane
On Mon, Feb 12, 2024 at 5:08 AM Dávid Suchan <david.suchan.ds@gmail.com> wrote:
Hi, I was wondering what is the safest pg_upgrade version upgrade distance going from 9.6 version. Do I need to go version by version or I can go from 9.6 to 15?
You can go direct. You really should go to 16 though. If nothing else, you gain lots of performance improvements and another year before your version goes EOL (end of life).
We have a very huge database(TBs) with one replication server, so we will first run the pgupgrade on the main server and then rsync to a standby replica.
I assume you mean the three-way rsync recipe in the docs.
Also, when upgrading a very big database with replication where none of the data can be allowed to be lost, is the pgupgrade into rsync approach the best one? Thanks.
Not sure about "best", it is certainly the fastest. For data loss concerns, that's where your backup system (e.g. pgBackRest) is key.
Cheers,
Greg