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. +