Re: Using pg_upgrade on log-shipping standby servers
Bruce Momjian <bruce@momjian.us>
From: Bruce Momjian <bruce@momjian.us>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Peter Eisentraut <peter_e@gmx.net>, Aidan Van Dyk <aidan@highrise.ca>, Jeff Davis <pgsql@j-davis.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2012-07-26T23:24:43Z
Lists: pgsql-hackers
On Thu, Jul 26, 2012 at 02:17:22PM -0400, Bruce Momjian wrote: > > > Is that sufficient? > > > > Well, at the very least, you need to guarantee that the standby is > > caught up - i.e. that it replayed all the WAL records that were > > generated on the master before it was shut down for the final time. I > > don't think that telling the user that they must be sure to do that is > > sufficient - you need some kind of built-in safeguard that will > > complain loudly if it's not the case. > > Yes, that would be a problem because the WAL records are deleted by > pg_upgrade. Does a shutdown of the standby not already replay all WAL > logs? We could also just require them to just start the standby in > master mode and shut it down. The problem with that is it might run > things like autovacuum. > > I was originally thinking that we would require users to run pg_upgrade > on the standby, where you need to first switch into master mode. OK, sorry, I was confused. You _have_ to run pg_upgrade on the standby --- there are many things we don't preserve, and we need pg_upgrade to move those user file to the right place --- a obvious example is tablespace files. Database oids aren't even preserved, so the data directory changes. So, you need change the standby to write mode, run pg_upgrade, then run whatever copy command we design. Is Perl the proper language for that script? -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. +