Re: Using pg_upgrade on log-shipping standby servers - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: Using pg_upgrade on log-shipping standby servers
Date
Msg-id 20120726132357.GG21271@momjian.us
Whole thread Raw
In response to Re: Using pg_upgrade on log-shipping standby servers  (Bruce Momjian <bruce@momjian.us>)
List pgsql-hackers
On Thu, Jul 26, 2012 at 08:30:40AM -0400, Bruce Momjian wrote:
> On Mon, Jul 23, 2012 at 11:11:27PM +0300, Peter Eisentraut wrote:
> > On mån, 2012-07-23 at 10:08 -0400, Robert Haas wrote:
> > > Relying on the number of hard links seems very fragile.  For example,
> > > it'll break if you are using copy mode.  And it won't work on Windows,
> > > either.
> > 
> > pg_upgrade could remember the list of files that the user would need to
> > copy to the remote server (i.e., the list of files pg_upgrade itself
> > copied or linked) and write that to a file.
> 
> Good idea.  A list of file names seems best, but wouldn't that list
> exceed the maximum size of an argument list?  How could we pass that
> list to a command like scp?   And how could we pass that list on
> Windows?
> 
> Pg_upgrade already creates a script to analyze the cluster, so we could
> create another script to upgrade a standby.  However, the problem with a
> script is that I have no idea what command people would use to do the
> copy.  I think I could create a list and pass that into a loop so only
> the command has to be modified, but again, how do we do that on Windows?
> Can we create a shell function in Windows and pass the file name as an
> argument?
> 
> Another problem is that the standby cluster might create _new_ files
> that don't exist on the master, e.g. WAL files, and those have to be
> removed.  I am not clear how to do that either, except by removing all
> files with a hard link count of 1, and again, this is difficult on
> Windows.

Maybe we just need to require Perl, and store the file names in the
generated Perl script.  I know we don't normally require Perl for
operation (only development), but Perl seems to be the easiest solution
here.

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + It's impossible for everything to be true. +


pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Using pg_upgrade on log-shipping standby servers
Next
From: Peter Eisentraut
Date:
Subject: Re: Using pg_upgrade on log-shipping standby servers