0

We are migrating a 2TB server with a very large amount of BLOBs from an on-premises server to a cloud server. During the migration, we'd also like to update the Postgres version from 14 to 16.

Now due to having BLOBs, we cannot use the logical replication that Postgres offers, and therefore we have to use the streaming replication. Now, another problem arises, streaming replication is not supported across different versions. So we either have to upgrade first on-premises and then replicate to target server, or first replicate to target and then do the upgrade there.

At the moment, we are leaning on towards first migrating and then doing the upgrade at target, since that ensures that we have a working database at on-premises to which we can revert back to upon failures during the upgrade.

So my question is, is there any way to take the logs of what happened at primary, while the target was upgrading, then feed the log to the target, so it can "catch up" with the primary server once the upgrade finishes. So basically a "manual streaming replication" or in other words, can different databases with different versions read a specific databases WAL-record?

asked Apr 9, 2024 at 13:53

1 Answer 1

0

If you have a very large number of large objects, you might be in for trouble. The upgrade will take long, and you will need at least PostgreSQL v17.

I would probably upgrade before abandoning the database to a public cloud. You have more control locally, and the performance is probably better.

answered Apr 9, 2024 at 14:07

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.