Commit a88f4496 authored by Bruce Momjian's avatar Bruce Momjian

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.
parent 89779524
...@@ -29,6 +29,9 @@ output_check_banner(bool *live_check) ...@@ -29,6 +29,9 @@ output_check_banner(bool *live_check)
if (user_opts.check && is_server_running(old_cluster.pgdata)) if (user_opts.check && is_server_running(old_cluster.pgdata))
{ {
*live_check = true; *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) if (old_cluster.port == new_cluster.port)
pg_log(PG_FATAL, "When checking a live server, " pg_log(PG_FATAL, "When checking a live server, "
"the old and new port numbers must be different.\n"); "the old and new port numbers must be different.\n");
......
...@@ -58,8 +58,8 @@ parseCommandLine(int argc, char *argv[]) ...@@ -58,8 +58,8 @@ parseCommandLine(int argc, char *argv[])
os_info.progname = get_progname(argv[0]); os_info.progname = get_progname(argv[0]);
/* Process libpq env. variables; load values here for usage() output */ /* Process libpq env. variables; load values here for usage() output */
old_cluster.port = getenv("PGPORT") ? atoi(getenv("PGPORT")) : DEF_PGPORT; old_cluster.port = getenv("PGPORTOLD") ? atoi(getenv("PGPORTOLD")) : DEF_PGUPORT;
new_cluster.port = getenv("PGPORT") ? atoi(getenv("PGPORT")) : DEF_PGPORT; new_cluster.port = getenv("PGPORTNEW") ? atoi(getenv("PGPORTNEW")) : DEF_PGUPORT;
os_user_effective_id = get_user_info(&os_info.user); os_user_effective_id = get_user_info(&os_info.user);
/* we override just the database user name; we got the OS id above */ /* we override just the database user name; we got the OS id above */
...@@ -203,13 +203,13 @@ parseCommandLine(int argc, char *argv[]) ...@@ -203,13 +203,13 @@ parseCommandLine(int argc, char *argv[])
} }
/* Get values from env if not already set */ /* 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"); "old cluster binaries reside");
check_required_directory(&new_cluster.bindir, "NEWBINDIR", "-B", check_required_directory(&new_cluster.bindir, "PGBINNEW", "-B",
"new cluster binaries reside"); "new cluster binaries reside");
check_required_directory(&old_cluster.pgdata, "OLDDATADIR", "-d", check_required_directory(&old_cluster.pgdata, "PGDATAOLD", "-d",
"old cluster data resides"); "old cluster data resides");
check_required_directory(&new_cluster.pgdata, "NEWDATADIR", "-D", check_required_directory(&new_cluster.pgdata, "PGDATANEW", "-D",
"new cluster data resides"); "new cluster data resides");
} }
...@@ -254,17 +254,17 @@ For example:\n\ ...@@ -254,17 +254,17 @@ For example:\n\
or\n"), old_cluster.port, new_cluster.port, os_info.user); or\n"), old_cluster.port, new_cluster.port, os_info.user);
#ifndef WIN32 #ifndef WIN32
printf(_("\ printf(_("\
$ export OLDDATADIR=oldCluster/data\n\ $ export PGDATAOLD=oldCluster/data\n\
$ export NEWDATADIR=newCluster/data\n\ $ export PGDATANEW=newCluster/data\n\
$ export OLDBINDIR=oldCluster/bin\n\ $ export PGBINOLD=oldCluster/bin\n\
$ export NEWBINDIR=newCluster/bin\n\ $ export PGBINNEW=newCluster/bin\n\
$ pg_upgrade\n")); $ pg_upgrade\n"));
#else #else
printf(_("\ printf(_("\
C:\\> set OLDDATADIR=oldCluster/data\n\ C:\\> set PGDATAOLD=oldCluster/data\n\
C:\\> set NEWDATADIR=newCluster/data\n\ C:\\> set PGDATANEW=newCluster/data\n\
C:\\> set OLDBINDIR=oldCluster/bin\n\ C:\\> set PGBINOLD=oldCluster/bin\n\
C:\\> set NEWBINDIR=newCluster/bin\n\ C:\\> set PGBINNEW=newCluster/bin\n\
C:\\> pg_upgrade\n")); C:\\> pg_upgrade\n"));
#endif #endif
printf(_("\nReport bugs to <pgsql-bugs@postgresql.org>.\n")); printf(_("\nReport bugs to <pgsql-bugs@postgresql.org>.\n"));
......
...@@ -15,6 +15,9 @@ ...@@ -15,6 +15,9 @@
#include "libpq-fe.h" #include "libpq-fe.h"
/* Use port in the private/dynamic port number range */
#define DEF_PGUPORT 50432
/* Allocate for null byte */ /* Allocate for null byte */
#define USER_NAME_SIZE 128 #define USER_NAME_SIZE 128
......
...@@ -60,14 +60,14 @@ ...@@ -60,14 +60,14 @@
<term><option>-b</option> <replaceable>old_bindir</></term> <term><option>-b</option> <replaceable>old_bindir</></term>
<term><option>--old-bindir=</option><replaceable>old_bindir</></term> <term><option>--old-bindir=</option><replaceable>old_bindir</></term>
<listitem><para>the old cluster executable directory; <listitem><para>the old cluster executable directory;
environment variable <envar>OLDBINDIR</></para></listitem> environment variable <envar>PGBINOLD</></para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><option>-B</option> <replaceable>new_bindir</></term> <term><option>-B</option> <replaceable>new_bindir</></term>
<term><option>--new-bindir=</option><replaceable>new_bindir</></term> <term><option>--new-bindir=</option><replaceable>new_bindir</></term>
<listitem><para>the new cluster executable directory; <listitem><para>the new cluster executable directory;
environment variable <envar>NEWBINDIR</></para></listitem> environment variable <envar>PGBINNEW</></para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
...@@ -80,14 +80,14 @@ ...@@ -80,14 +80,14 @@
<term><option>-d</option> <replaceable>old_datadir</></term> <term><option>-d</option> <replaceable>old_datadir</></term>
<term><option>--old-datadir=</option><replaceable>old_datadir</></term> <term><option>--old-datadir=</option><replaceable>old_datadir</></term>
<listitem><para>the old cluster data directory; environment <listitem><para>the old cluster data directory; environment
variable <envar>OLDDATADIR</></para></listitem> variable <envar>PGDATAOLD</></para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><option>-D</option> <replaceable>new_datadir</></term> <term><option>-D</option> <replaceable>new_datadir</></term>
<term><option>--new-datadir=</option><replaceable>new_datadir</></term> <term><option>--new-datadir=</option><replaceable>new_datadir</></term>
<listitem><para>the new cluster data directory; environment <listitem><para>the new cluster data directory; environment
variable <envar>NEWDATADIR</></para></listitem> variable <envar>PGDATANEW</></para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
...@@ -118,14 +118,14 @@ ...@@ -118,14 +118,14 @@
<term><option>-p</option> <replaceable>old_port_number</></term> <term><option>-p</option> <replaceable>old_port_number</></term>
<term><option>--old-port=</option><replaceable>old_portnum</></term> <term><option>--old-port=</option><replaceable>old_portnum</></term>
<listitem><para>the old cluster port number; environment <listitem><para>the old cluster port number; environment
variable <envar>PGPORT</></para></listitem> variable <envar>PGPORTOLD</></para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><option>-P</option> <replaceable>new_port_number</></term> <term><option>-P</option> <replaceable>new_port_number</></term>
<term><option>--new-port=</option><replaceable>new_portnum</></term> <term><option>--new-port=</option><replaceable>new_portnum</></term>
<listitem><para>the new cluster port number; environment <listitem><para>the new cluster port number; environment
variable <envar>PGPORT</></para></listitem> variable <envar>PGPORTNEW</></para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
...@@ -256,8 +256,7 @@ gmake prefix=/usr/local/pgsql.new install ...@@ -256,8 +256,7 @@ gmake prefix=/usr/local/pgsql.new install
so you might want to set authentication to <literal>trust</> in so you might want to set authentication to <literal>trust</> in
<filename>pg_hba.conf</>, or if using <literal>md5</> authentication, <filename>pg_hba.conf</>, or if using <literal>md5</> authentication,
use a <filename>~/.pgpass</> file (see <xref linkend="libpq-pgpass">) use a <filename>~/.pgpass</> file (see <xref linkend="libpq-pgpass">)
to avoid being prompted repeatedly for a password. Also make sure to avoid being prompted repeatedly for a password.
pg_upgrade is the only program that can connect to the clusters.
</para> </para>
</step> </step>
...@@ -303,8 +302,13 @@ NET STOP pgsql-8.3 (<productname>PostgreSQL</> 8.3 and older used a different s ...@@ -303,8 +302,13 @@ 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 copying), but you will not be able to access your old cluster
once you start the new cluster after the upgrade. Link mode also once you start the new cluster after the upgrade. Link mode also
requires that the old and new cluster data directories be in the requires that the old and new cluster data directories be in the
same file system. See <literal>pg_upgrade --help</> for a full same file system.
list of options. </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>
<para> <para>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment