Change pg_upgrade to use port 50432 by default to avoid unintended

client connections during the upgrade.  Also rename data/bin/port
environment variables to being with 'PG'.  Also no longer honor PGPORT.
This commit is contained in:
Bruce Momjian 2011-07-01 18:17:12 -04:00
parent 897795240c
commit a88f4496b7
4 changed files with 35 additions and 25 deletions

View File

@ -29,6 +29,9 @@ output_check_banner(bool *live_check)
if (user_opts.check && is_server_running(old_cluster.pgdata))
{
*live_check = true;
if (old_cluster.port == DEF_PGUPORT)
pg_log(PG_FATAL, "When checking a live old server, "
"you must specify the old server's port number.\n");
if (old_cluster.port == new_cluster.port)
pg_log(PG_FATAL, "When checking a live server, "
"the old and new port numbers must be different.\n");

View File

@ -58,8 +58,8 @@ parseCommandLine(int argc, char *argv[])
os_info.progname = get_progname(argv[0]);
/* Process libpq env. variables; load values here for usage() output */
old_cluster.port = getenv("PGPORT") ? atoi(getenv("PGPORT")) : DEF_PGPORT;
new_cluster.port = getenv("PGPORT") ? atoi(getenv("PGPORT")) : DEF_PGPORT;
old_cluster.port = getenv("PGPORTOLD") ? atoi(getenv("PGPORTOLD")) : DEF_PGUPORT;
new_cluster.port = getenv("PGPORTNEW") ? atoi(getenv("PGPORTNEW")) : DEF_PGUPORT;
os_user_effective_id = get_user_info(&os_info.user);
/* we override just the database user name; we got the OS id above */
@ -203,13 +203,13 @@ parseCommandLine(int argc, char *argv[])
}
/* Get values from env if not already set */
check_required_directory(&old_cluster.bindir, "OLDBINDIR", "-b",
check_required_directory(&old_cluster.bindir, "PGBINOLD", "-b",
"old cluster binaries reside");
check_required_directory(&new_cluster.bindir, "NEWBINDIR", "-B",
check_required_directory(&new_cluster.bindir, "PGBINNEW", "-B",
"new cluster binaries reside");
check_required_directory(&old_cluster.pgdata, "OLDDATADIR", "-d",
check_required_directory(&old_cluster.pgdata, "PGDATAOLD", "-d",
"old cluster data resides");
check_required_directory(&new_cluster.pgdata, "NEWDATADIR", "-D",
check_required_directory(&new_cluster.pgdata, "PGDATANEW", "-D",
"new cluster data resides");
}
@ -254,17 +254,17 @@ For example:\n\
or\n"), old_cluster.port, new_cluster.port, os_info.user);
#ifndef WIN32
printf(_("\
$ export OLDDATADIR=oldCluster/data\n\
$ export NEWDATADIR=newCluster/data\n\
$ export OLDBINDIR=oldCluster/bin\n\
$ export NEWBINDIR=newCluster/bin\n\
$ export PGDATAOLD=oldCluster/data\n\
$ export PGDATANEW=newCluster/data\n\
$ export PGBINOLD=oldCluster/bin\n\
$ export PGBINNEW=newCluster/bin\n\
$ pg_upgrade\n"));
#else
printf(_("\
C:\\> set OLDDATADIR=oldCluster/data\n\
C:\\> set NEWDATADIR=newCluster/data\n\
C:\\> set OLDBINDIR=oldCluster/bin\n\
C:\\> set NEWBINDIR=newCluster/bin\n\
C:\\> set PGDATAOLD=oldCluster/data\n\
C:\\> set PGDATANEW=newCluster/data\n\
C:\\> set PGBINOLD=oldCluster/bin\n\
C:\\> set PGBINNEW=newCluster/bin\n\
C:\\> pg_upgrade\n"));
#endif
printf(_("\nReport bugs to <pgsql-bugs@postgresql.org>.\n"));

View File

@ -15,6 +15,9 @@
#include "libpq-fe.h"
/* Use port in the private/dynamic port number range */
#define DEF_PGUPORT 50432
/* Allocate for null byte */
#define USER_NAME_SIZE 128

View File

@ -60,14 +60,14 @@
<term><option>-b</option> <replaceable>old_bindir</></term>
<term><option>--old-bindir=</option><replaceable>old_bindir</></term>
<listitem><para>the old cluster executable directory;
environment variable <envar>OLDBINDIR</></para></listitem>
environment variable <envar>PGBINOLD</></para></listitem>
</varlistentry>
<varlistentry>
<term><option>-B</option> <replaceable>new_bindir</></term>
<term><option>--new-bindir=</option><replaceable>new_bindir</></term>
<listitem><para>the new cluster executable directory;
environment variable <envar>NEWBINDIR</></para></listitem>
environment variable <envar>PGBINNEW</></para></listitem>
</varlistentry>
<varlistentry>
@ -80,14 +80,14 @@
<term><option>-d</option> <replaceable>old_datadir</></term>
<term><option>--old-datadir=</option><replaceable>old_datadir</></term>
<listitem><para>the old cluster data directory; environment
variable <envar>OLDDATADIR</></para></listitem>
variable <envar>PGDATAOLD</></para></listitem>
</varlistentry>
<varlistentry>
<term><option>-D</option> <replaceable>new_datadir</></term>
<term><option>--new-datadir=</option><replaceable>new_datadir</></term>
<listitem><para>the new cluster data directory; environment
variable <envar>NEWDATADIR</></para></listitem>
variable <envar>PGDATANEW</></para></listitem>
</varlistentry>
<varlistentry>
@ -118,14 +118,14 @@
<term><option>-p</option> <replaceable>old_port_number</></term>
<term><option>--old-port=</option><replaceable>old_portnum</></term>
<listitem><para>the old cluster port number; environment
variable <envar>PGPORT</></para></listitem>
variable <envar>PGPORTOLD</></para></listitem>
</varlistentry>
<varlistentry>
<term><option>-P</option> <replaceable>new_port_number</></term>
<term><option>--new-port=</option><replaceable>new_portnum</></term>
<listitem><para>the new cluster port number; environment
variable <envar>PGPORT</></para></listitem>
variable <envar>PGPORTNEW</></para></listitem>
</varlistentry>
<varlistentry>
@ -256,8 +256,7 @@ gmake prefix=/usr/local/pgsql.new install
so you might want to set authentication to <literal>trust</> in
<filename>pg_hba.conf</>, or if using <literal>md5</> authentication,
use a <filename>~/.pgpass</> file (see <xref linkend="libpq-pgpass">)
to avoid being prompted repeatedly for a password. Also make sure
pg_upgrade is the only program that can connect to the clusters.
to avoid being prompted repeatedly for a password.
</para>
</step>
@ -303,9 +302,14 @@ NET STOP pgsql-8.3 (<productname>PostgreSQL</> 8.3 and older used a different s
copying), but you will not be able to access your old cluster
once you start the new cluster after the upgrade. Link mode also
requires that the old and new cluster data directories be in the
same file system. See <literal>pg_upgrade --help</> for a full
list of options.
</para>
same file system.
</para>
<para>
<application>pg_upgrade</> defaults to running servers on port
50432 to avoid unintended client connections. See <literal>pg_upgrade
--help</> for a full list of options.
</para>
<para>
For Windows users, you must be logged into an administrative account, and