Commit 514b411a authored by Thomas Munro's avatar Thomas Munro

Retire pg_standby.

pg_standby was useful more than a decade ago, but now it is obsolete.
It has been proposed that we retire it many times.  Now seems like a
good time to finally do it, because "waiting restore commands"
are incompatible with a proposed recovery prefetching feature.

Discussion: https://postgr.es/m/20201029024412.GP5380%40telsasoft.com
Author: Justin Pryzby <pryzby@telsasoft.com>
Reviewed-by: default avatarHeikki Linnakangas <hlinnaka@iki.fi>
Reviewed-by: default avatarPeter Eisentraut <peter.eisentraut@enterprisedb.com>
Reviewed-by: default avatarMichael Paquier <michael@paquier.xyz>
Reviewed-by: default avatarFujii Masao <masao.fujii@oss.nttdata.com>
parent 1046dbed
...@@ -33,7 +33,6 @@ SUBDIRS = \ ...@@ -33,7 +33,6 @@ SUBDIRS = \
pg_buffercache \ pg_buffercache \
pg_freespacemap \ pg_freespacemap \
pg_prewarm \ pg_prewarm \
pg_standby \
pg_stat_statements \ pg_stat_statements \
pg_surgery \ pg_surgery \
pg_trgm \ pg_trgm \
......
# contrib/pg_standby/Makefile
PGFILEDESC = "pg_standby - supports creation of a warm standby"
PGAPPICON = win32
PROGRAM = pg_standby
OBJS = \
$(WIN32RES) \
pg_standby.o
ifdef USE_PGXS
PG_CONFIG = pg_config
PGXS := $(shell $(PG_CONFIG) --pgxs)
include $(PGXS)
else
subdir = contrib/pg_standby
top_builddir = ../..
include $(top_builddir)/src/Makefile.global
include $(top_srcdir)/contrib/contrib-global.mk
endif
This diff is collapsed.
...@@ -192,13 +192,12 @@ pages. ...@@ -192,13 +192,12 @@ pages.
<title>Server Applications</title> <title>Server Applications</title>
<para> <para>
This section covers <productname>PostgreSQL</productname> server-related Some applications run on the <productname>PostgreSQL</productname> server
applications in <literal>contrib</literal>. They are typically run on the itself. Currently, no such applications are included in the
host where the database server resides. See also <xref <literal>contrib</literal> directory. See also <xref
linkend="reference-server"/> for information about server applications that linkend="reference-server"/> for information about server applications that
are part of the core <productname>PostgreSQL</productname> distribution. are part of the core <productname>PostgreSQL</productname> distribution.
</para> </para>
&pgstandby;
</sect1> </sect1>
</appendix> </appendix>
...@@ -138,7 +138,6 @@ ...@@ -138,7 +138,6 @@
<!ENTITY pgfreespacemap SYSTEM "pgfreespacemap.sgml"> <!ENTITY pgfreespacemap SYSTEM "pgfreespacemap.sgml">
<!ENTITY pgprewarm SYSTEM "pgprewarm.sgml"> <!ENTITY pgprewarm SYSTEM "pgprewarm.sgml">
<!ENTITY pgrowlocks SYSTEM "pgrowlocks.sgml"> <!ENTITY pgrowlocks SYSTEM "pgrowlocks.sgml">
<!ENTITY pgstandby SYSTEM "pgstandby.sgml">
<!ENTITY pgstatstatements SYSTEM "pgstatstatements.sgml"> <!ENTITY pgstatstatements SYSTEM "pgstatstatements.sgml">
<!ENTITY pgstattuple SYSTEM "pgstattuple.sgml"> <!ENTITY pgstattuple SYSTEM "pgstattuple.sgml">
<!ENTITY pgsurgery SYSTEM "pgsurgery.sgml"> <!ENTITY pgsurgery SYSTEM "pgsurgery.sgml">
......
...@@ -699,11 +699,9 @@ protocol to make nodes agree on a serializable transactional order. ...@@ -699,11 +699,9 @@ protocol to make nodes agree on a serializable transactional order.
<note> <note>
<para> <para>
Do not use pg_standby or similar tools with the built-in standby mode <xref linkend="guc-restore-command"/> should return immediately
described here. <xref linkend="guc-restore-command"/> should return immediately
if the file does not exist; the server will retry the command again if if the file does not exist; the server will retry the command again if
necessary. See <xref linkend="log-shipping-alternative"/> necessary.
for using tools like pg_standby.
</para> </para>
</note> </note>
...@@ -1494,8 +1492,7 @@ synchronous_standby_names = 'ANY 2 (s1, s2, s3)' ...@@ -1494,8 +1492,7 @@ synchronous_standby_names = 'ANY 2 (s1, s2, s3)'
<para> <para>
An alternative to the built-in standby mode described in the previous An alternative to the built-in standby mode described in the previous
sections is to use a <varname>restore_command</varname> that polls the archive location. sections is to use a <varname>restore_command</varname> that polls the archive location.
This was the only option available in versions 8.4 and below. See the This was the only option available in versions 8.4 and below.
<xref linkend="pgstandby"/> module for a reference implementation of this.
</para> </para>
<para> <para>
...@@ -1551,14 +1548,6 @@ if (!triggered) ...@@ -1551,14 +1548,6 @@ if (!triggered)
</programlisting> </programlisting>
</para> </para>
<para>
A working example of a waiting <varname>restore_command</varname> is provided
in the <xref linkend="pgstandby"/> module. It
should be used as a reference on how to correctly implement the logic
described above. It can also be extended as needed to support specific
configurations and environments.
</para>
<para> <para>
The method for triggering failover is an important part of planning The method for triggering failover is an important part of planning
and design. One potential option is the <varname>restore_command</varname> and design. One potential option is the <varname>restore_command</varname>
......
This diff is collapsed.
...@@ -205,11 +205,4 @@ archive_cleanup_command = 'pg_archivecleanup -d /mnt/standby/archive %r 2>>clean ...@@ -205,11 +205,4 @@ archive_cleanup_command = 'pg_archivecleanup -d /mnt/standby/archive %r 2>>clean
</itemizedlist> </itemizedlist>
</refsect1> </refsect1>
<refsect1>
<title>See Also</title>
<simplelist type="inline">
<member><xref linkend="pgstandby"/></member>
</simplelist>
</refsect1>
</refentry> </refentry>
...@@ -4199,7 +4199,7 @@ RemoveXlogFile(const char *segname, XLogSegNo recycleSegNo, ...@@ -4199,7 +4199,7 @@ RemoveXlogFile(const char *segname, XLogSegNo recycleSegNo,
/* /*
* Before deleting the file, see if it can be recycled as a future log * Before deleting the file, see if it can be recycled as a future log
* segment. Only recycle normal files, pg_standby for example can create * segment. Only recycle normal files, because we don't want to recycle
* symbolic links pointing to a separate archive directory. * symbolic links pointing to a separate archive directory.
*/ */
if (wal_recycle && if (wal_recycle &&
......
...@@ -34,8 +34,8 @@ my @unlink_on_exit; ...@@ -34,8 +34,8 @@ my @unlink_on_exit;
# Set of variables for modules in contrib/ and src/test/modules/ # Set of variables for modules in contrib/ and src/test/modules/
my $contrib_defines = { 'refint' => 'REFINT_VERBOSE' }; my $contrib_defines = { 'refint' => 'REFINT_VERBOSE' };
my @contrib_uselibpq = ('dblink', 'oid2name', 'postgres_fdw', 'vacuumlo'); my @contrib_uselibpq = ('dblink', 'oid2name', 'postgres_fdw', 'vacuumlo');
my @contrib_uselibpgport = ('oid2name', 'pg_standby', 'vacuumlo'); my @contrib_uselibpgport = ('oid2name', 'vacuumlo');
my @contrib_uselibpgcommon = ('oid2name', 'pg_standby', 'vacuumlo'); my @contrib_uselibpgcommon = ('oid2name', 'vacuumlo');
my $contrib_extralibs = undef; my $contrib_extralibs = undef;
my $contrib_extraincludes = { 'dblink' => ['src/backend'] }; my $contrib_extraincludes = { 'dblink' => ['src/backend'] };
my $contrib_extrasource = { my $contrib_extrasource = {
......
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