From: | tsuraan <tsuraan(at)gmail(dot)com> |
---|---|
To: | pgsql-admin(at)postgresql(dot)org |
Subject: | Streaming replication upgrade sanity check |
Date: | 2021-02-13 16:02:20 |
Message-ID: | CALKcMwLoZajZ8_8OJefNgaCiaXa0MsbDFiiWN-nYyGD-9gAbiA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-admin |
I have several streaming replication pairs running under postgres 10,
and I'm looking at upgrading them to postgres 13. Doing that on the
active side is pretty quick and easy: just run pg_upgrade once for
each of versions 11, 12, and 13, then start things up again. That's
tested (on non-replicated instances) and seems to be working great.
The standby side looks a little bit more interesting, so I wanted some
feedback about whether my approach looks safe.
It looks like the most correct approach would be to discard the
standby systems and just do a new pg_basebackup, but quite a few of
the pairs have a standby on AWS and limited upstream bandwidth, so the
basebackup can take several days. I'd like to avoid that if I can.
So, my thought is to just upgrade the active side as normal, and once
that's done and the master is back in use, stop the standby's
postgres, call "pg_start_backup(...)" on the master, rsync the changed
files from the running master's data dir to the standby's 10.x data
directory, call "pg_stop_backup()", migrate the recovery.conf into a
postgresql.auto.conf, touch the standby.signal file, and then start
the new postgres 13 on the standby. That seems to work, but I want to
be sure I'm not just having good luck due to the relatively low
activity on my test systems.
I use named replication slots with my streaming replication, so I
think that the rsync'd pg_wal directory should have everything I need
(or maybe this isn't guaranteed?), and the pg_start/stop_backup will
ensure that all the damage done by rsync'ing an active database can be
repaired from the pg_wal files that rsync fetches. Are those
assumptions right, or am I missing anything else? Is this idea
workable at all?
Thanks!
From | Date | Subject | |
---|---|---|---|
Next Message | Kevin Burke | 2021-02-13 23:52:05 | Getting started notes and trouble running the tests |
Previous Message | Khuram Rafique | 2021-02-13 10:45:34 | ODBC error 126 |