mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-23 07:06:30 +00:00
Compare commits
16 Commits
v5.3.2
...
REL5_3_STA
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
739bbe9a54 | ||
|
|
ba0b8a1692 | ||
|
|
f002ceeae6 | ||
|
|
64228c5a74 | ||
|
|
9264680bdc | ||
|
|
99c3b42921 | ||
|
|
3c0d643466 | ||
|
|
6149e4c7b0 | ||
|
|
5e75707d4e | ||
|
|
8e5698f16e | ||
|
|
3d08800521 | ||
|
|
e64184aff3 | ||
|
|
8c031e2b05 | ||
|
|
3a157465ce | ||
|
|
70da9e8a53 | ||
|
|
6602a98f2e |
9
HISTORY
9
HISTORY
@@ -1,4 +1,9 @@
|
|||||||
5.3.2 2022-??-??
|
5.3.3 2022-10-17
|
||||||
|
Support for PostgreSQL added
|
||||||
|
repmgrd: ensure event notification script is called for event
|
||||||
|
"repmgrd_upstream_disconnect"; GitHub #760 (Ian)
|
||||||
|
|
||||||
|
5.3.2 2022-05-25
|
||||||
standby clone: don't error out if unable to determine cluster size (Ian)
|
standby clone: don't error out if unable to determine cluster size (Ian)
|
||||||
node check: fix --downstream --nagios output; GitHub #749 (Ian)
|
node check: fix --downstream --nagios output; GitHub #749 (Ian)
|
||||||
repmgrd: ensure witness node marked active (hslightdb)
|
repmgrd: ensure witness node marked active (hslightdb)
|
||||||
@@ -69,7 +74,7 @@
|
|||||||
"standby clone" (Ian)
|
"standby clone" (Ian)
|
||||||
repmgr: add --upstream option to "node check"
|
repmgr: add --upstream option to "node check"
|
||||||
repmgr: report error code on follow/rejoin failure due to non-available
|
repmgr: report error code on follow/rejoin failure due to non-available
|
||||||
0 replication slot (Ian)
|
replication slot (Ian)
|
||||||
repmgr: ensure "node rejoin" checks for available replication slots (Ian)
|
repmgr: ensure "node rejoin" checks for available replication slots (Ian)
|
||||||
repmgr: improve "standby switchover" completion checks (Ian)
|
repmgr: improve "standby switchover" completion checks (Ian)
|
||||||
repmgr: add replication configuration file ownership check to
|
repmgr: add replication configuration file ownership check to
|
||||||
|
|||||||
@@ -79,10 +79,10 @@ configfile-scan.c: configfile-scan.l
|
|||||||
$(REPMGR_CLIENT_OBJS): repmgr-client.h repmgr_version.h
|
$(REPMGR_CLIENT_OBJS): repmgr-client.h repmgr_version.h
|
||||||
|
|
||||||
repmgr: $(REPMGR_CLIENT_OBJS)
|
repmgr: $(REPMGR_CLIENT_OBJS)
|
||||||
$(CC) $(CFLAGS) $(REPMGR_CLIENT_OBJS) $(libpq_pgport) $(LDFLAGS) $(LDFLAGS_EX) -o $@$(X)
|
$(CC) $(CFLAGS) $(REPMGR_CLIENT_OBJS) $(libpq_pgport) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
|
||||||
|
|
||||||
repmgrd: $(REPMGRD_OBJS)
|
repmgrd: $(REPMGRD_OBJS)
|
||||||
$(CC) $(CFLAGS) $(REPMGRD_OBJS) $(libpq_pgport) $(LDFLAGS) $(LDFLAGS_EX) -o $@$(X)
|
$(CC) $(CFLAGS) $(REPMGRD_OBJS) $(libpq_pgport) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
|
||||||
|
|
||||||
$(REPMGR_CLIENT_OBJS): $(HEADERS)
|
$(REPMGR_CLIENT_OBJS): $(HEADERS)
|
||||||
$(REPMGRD_OBJS): $(HEADERS)
|
$(REPMGRD_OBJS): $(HEADERS)
|
||||||
|
|||||||
12
README.md
12
README.md
@@ -7,8 +7,8 @@ replication capabilities with utilities to set up standby servers, monitor
|
|||||||
replication, and perform administrative tasks such as failover or switchover
|
replication, and perform administrative tasks such as failover or switchover
|
||||||
operations.
|
operations.
|
||||||
|
|
||||||
The most recent `repmgr` version (5.2.1) supports all PostgreSQL versions from
|
The most recent `repmgr` version (5.3.2) supports all PostgreSQL versions from
|
||||||
9.5 to 13. PostgreSQL 9.4 is also supported, with some restrictions.
|
9.5 to 14. PostgreSQL 9.4 is also supported, with some restrictions.
|
||||||
|
|
||||||
`repmgr` is distributed under the GNU GPL 3 and maintained by EnterpriseDB.
|
`repmgr` is distributed under the GNU GPL 3 and maintained by EnterpriseDB.
|
||||||
|
|
||||||
@@ -19,14 +19,6 @@ The full `repmgr` documentation is available here:
|
|||||||
|
|
||||||
> [repmgr documentation](https://repmgr.org/docs/current/index.html)
|
> [repmgr documentation](https://repmgr.org/docs/current/index.html)
|
||||||
|
|
||||||
The old `README` file for `repmgr` 3.x is available here:
|
|
||||||
|
|
||||||
> https://github.com/EnterpriseDB/repmgr/blob/REL3_3_STABLE/README.md
|
|
||||||
|
|
||||||
Note that the `repmgr` 3.x series is no longer supported and contains known bugs;
|
|
||||||
please upgrade to the [current repmgr version](https://repmgr.org/docs/current/appendix-release-notes.html)
|
|
||||||
as soon as possible.
|
|
||||||
|
|
||||||
Versions
|
Versions
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
|||||||
22
configure
vendored
22
configure
vendored
@@ -1,6 +1,6 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.69 for repmgr 5.3.0.
|
# Generated by GNU Autoconf 2.69 for repmgr 5.3.3.
|
||||||
#
|
#
|
||||||
# Report bugs to <repmgr@googlegroups.com>.
|
# Report bugs to <repmgr@googlegroups.com>.
|
||||||
#
|
#
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
# This configure script is free software; the Free Software Foundation
|
# This configure script is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy, distribute and modify it.
|
# gives unlimited permission to copy, distribute and modify it.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2010-2021, EnterpriseDB Corporation
|
# Copyright (c) 2010-2022, EnterpriseDB Corporation
|
||||||
## -------------------- ##
|
## -------------------- ##
|
||||||
## M4sh Initialization. ##
|
## M4sh Initialization. ##
|
||||||
## -------------------- ##
|
## -------------------- ##
|
||||||
@@ -582,8 +582,8 @@ MAKEFLAGS=
|
|||||||
# Identity of this package.
|
# Identity of this package.
|
||||||
PACKAGE_NAME='repmgr'
|
PACKAGE_NAME='repmgr'
|
||||||
PACKAGE_TARNAME='repmgr'
|
PACKAGE_TARNAME='repmgr'
|
||||||
PACKAGE_VERSION='5.3.0'
|
PACKAGE_VERSION='5.3.3'
|
||||||
PACKAGE_STRING='repmgr 5.3.0'
|
PACKAGE_STRING='repmgr 5.3.3'
|
||||||
PACKAGE_BUGREPORT='repmgr@googlegroups.com'
|
PACKAGE_BUGREPORT='repmgr@googlegroups.com'
|
||||||
PACKAGE_URL='https://repmgr.org/'
|
PACKAGE_URL='https://repmgr.org/'
|
||||||
|
|
||||||
@@ -1181,7 +1181,7 @@ if test "$ac_init_help" = "long"; then
|
|||||||
# Omit some internal or obsolete options to make the list less imposing.
|
# Omit some internal or obsolete options to make the list less imposing.
|
||||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||||
cat <<_ACEOF
|
cat <<_ACEOF
|
||||||
\`configure' configures repmgr 5.3.0 to adapt to many kinds of systems.
|
\`configure' configures repmgr 5.3.3 to adapt to many kinds of systems.
|
||||||
|
|
||||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||||
|
|
||||||
@@ -1242,7 +1242,7 @@ fi
|
|||||||
|
|
||||||
if test -n "$ac_init_help"; then
|
if test -n "$ac_init_help"; then
|
||||||
case $ac_init_help in
|
case $ac_init_help in
|
||||||
short | recursive ) echo "Configuration of repmgr 5.3.0:";;
|
short | recursive ) echo "Configuration of repmgr 5.3.3:";;
|
||||||
esac
|
esac
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
|
|
||||||
@@ -1316,14 +1316,14 @@ fi
|
|||||||
test -n "$ac_init_help" && exit $ac_status
|
test -n "$ac_init_help" && exit $ac_status
|
||||||
if $ac_init_version; then
|
if $ac_init_version; then
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
repmgr configure 5.3.0
|
repmgr configure 5.3.3
|
||||||
generated by GNU Autoconf 2.69
|
generated by GNU Autoconf 2.69
|
||||||
|
|
||||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
This configure script is free software; the Free Software Foundation
|
This configure script is free software; the Free Software Foundation
|
||||||
gives unlimited permission to copy, distribute and modify it.
|
gives unlimited permission to copy, distribute and modify it.
|
||||||
|
|
||||||
Copyright (c) 2010-2021, EnterpriseDB Corporation
|
Copyright (c) 2010-2022, EnterpriseDB Corporation
|
||||||
_ACEOF
|
_ACEOF
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
@@ -1335,7 +1335,7 @@ cat >config.log <<_ACEOF
|
|||||||
This file contains any messages produced by compilers while
|
This file contains any messages produced by compilers while
|
||||||
running configure, to aid debugging if configure makes a mistake.
|
running configure, to aid debugging if configure makes a mistake.
|
||||||
|
|
||||||
It was created by repmgr $as_me 5.3.0, which was
|
It was created by repmgr $as_me 5.3.3, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
$ $0 $@
|
$ $0 $@
|
||||||
@@ -2487,7 +2487,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
|||||||
# report actual input values of CONFIG_FILES etc. instead of their
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||||||
# values after options handling.
|
# values after options handling.
|
||||||
ac_log="
|
ac_log="
|
||||||
This file was extended by repmgr $as_me 5.3.0, which was
|
This file was extended by repmgr $as_me 5.3.3, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
CONFIG_FILES = $CONFIG_FILES
|
CONFIG_FILES = $CONFIG_FILES
|
||||||
@@ -2550,7 +2550,7 @@ _ACEOF
|
|||||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||||
ac_cs_version="\\
|
ac_cs_version="\\
|
||||||
repmgr config.status 5.3.0
|
repmgr config.status 5.3.3
|
||||||
configured by $0, generated by GNU Autoconf 2.69,
|
configured by $0, generated by GNU Autoconf 2.69,
|
||||||
with options \\"\$ac_cs_config\\"
|
with options \\"\$ac_cs_config\\"
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
AC_INIT([repmgr], [5.3.2], [repmgr@googlegroups.com], [repmgr], [https://repmgr.org/])
|
AC_INIT([repmgr], [5.3.3], [repmgr@googlegroups.com], [repmgr], [https://repmgr.org/])
|
||||||
|
|
||||||
AC_COPYRIGHT([Copyright (c) 2010-2022, EnterpriseDB Corporation])
|
AC_COPYRIGHT([Copyright (c) 2010-2022, EnterpriseDB Corporation])
|
||||||
|
|
||||||
|
|||||||
@@ -2139,7 +2139,13 @@ server_in_exclusive_backup_mode(PGconn *conn)
|
|||||||
{
|
{
|
||||||
BackupState backup_state = BACKUP_STATE_UNKNOWN;
|
BackupState backup_state = BACKUP_STATE_UNKNOWN;
|
||||||
const char *sqlquery = "SELECT pg_catalog.pg_is_in_backup()";
|
const char *sqlquery = "SELECT pg_catalog.pg_is_in_backup()";
|
||||||
PGresult *res = PQexec(conn, sqlquery);
|
PGresult *res = NULL;
|
||||||
|
|
||||||
|
/* Exclusive backup removed from PostgreSQL 15 */
|
||||||
|
if (PQserverVersion(conn) >= 150000)
|
||||||
|
return BACKUP_STATE_NO_BACKUP;
|
||||||
|
|
||||||
|
res = PQexec(conn, sqlquery);
|
||||||
|
|
||||||
if (PQresultStatus(res) != PGRES_TUPLES_OK)
|
if (PQresultStatus(res) != PGRES_TUPLES_OK)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -16,8 +16,38 @@
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<!-- remember to update the release date in ../repmgr_version.h.in -->
|
<!-- remember to update the release date in ../repmgr_version.h.in -->
|
||||||
|
<sect1 id="release-5.3.3">
|
||||||
|
<title id="release-current">Release 5.3.3</title>
|
||||||
|
<para><emphasis>Mon 17 October, 2022</emphasis></para>
|
||||||
|
<para>
|
||||||
|
&repmgr; 5.3.3 is a minor release providing support for
|
||||||
|
<ulink url="https://www.postgresql.org/docs/15/release-15.html">PostgreSQL 15</ulink>
|
||||||
|
and a &repmgrd; bug fix.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
If upgrading from an earlier &repmgr; version, any running &repmgrd; instances should be restarted.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
If upgrading from &repmgr; 5.2.1 or earlier, a PostgreSQL restart <emphasis>is</emphasis> required.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Bug fixes</title>
|
||||||
|
<para>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
&repmgrd;: ensure <link linkend="event-notifications">event notification</link> script is called for event
|
||||||
|
<literal>repmgrd_upstream_disconnect</literal>. GitHub #760.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="release-5.3.2">
|
<sect1 id="release-5.3.2">
|
||||||
<title id="release-current">Release 5.3.2</title>
|
<title>Release 5.3.2</title>
|
||||||
<para><emphasis>Wed 25 May, 2022</emphasis></para>
|
<para><emphasis>Wed 25 May, 2022</emphasis></para>
|
||||||
<para>
|
<para>
|
||||||
&repmgr; 5.3.2 is a minor release.
|
&repmgr; 5.3.2 is a minor release.
|
||||||
|
|||||||
@@ -108,6 +108,9 @@
|
|||||||
<entry>
|
<entry>
|
||||||
Supported PostgreSQL versions
|
Supported PostgreSQL versions
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry>
|
||||||
|
Notes
|
||||||
|
</entry>
|
||||||
</row>
|
</row>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
||||||
@@ -123,7 +126,10 @@
|
|||||||
<link linkend="release-current">&repmgrversion;</link> (&releasedate;)
|
<link linkend="release-current">&repmgrversion;</link> (&releasedate;)
|
||||||
</entry>
|
</entry>
|
||||||
<entry>
|
<entry>
|
||||||
9.4, 9.5, 9.6, 10, 11, 12, 13, 14
|
9.4, 9.5, 9.6, 10, 11, 12, 13, 14, 15
|
||||||
|
</entry>
|
||||||
|
<entry>
|
||||||
|
PostgreSQL 15 supported from &repmgr; 5.3.3
|
||||||
</entry>
|
</entry>
|
||||||
</row>
|
</row>
|
||||||
|
|
||||||
@@ -140,6 +146,9 @@
|
|||||||
<entry>
|
<entry>
|
||||||
9.4, 9.5, 9.6, 10, 11, 12, 13
|
9.4, 9.5, 9.6, 10, 11, 12, 13
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry>
|
||||||
|
|
||||||
|
</entry>
|
||||||
</row>
|
</row>
|
||||||
|
|
||||||
<row>
|
<row>
|
||||||
@@ -155,6 +164,9 @@
|
|||||||
<entry>
|
<entry>
|
||||||
9.3, 9.4, 9.5, 9.6, 10, 11, 12
|
9.3, 9.4, 9.5, 9.6, 10, 11, 12
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry>
|
||||||
|
|
||||||
|
</entry>
|
||||||
</row>
|
</row>
|
||||||
|
|
||||||
<row>
|
<row>
|
||||||
@@ -170,6 +182,9 @@
|
|||||||
<entry>
|
<entry>
|
||||||
9.3, 9.4, 9.5, 9.6, 10, 11, 12
|
9.3, 9.4, 9.5, 9.6, 10, 11, 12
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry>
|
||||||
|
|
||||||
|
</entry>
|
||||||
</row>
|
</row>
|
||||||
|
|
||||||
|
|
||||||
@@ -186,6 +201,9 @@
|
|||||||
<entry>
|
<entry>
|
||||||
9.3, 9.4, 9.5, 9.6, 10, 11
|
9.3, 9.4, 9.5, 9.6, 10, 11
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry>
|
||||||
|
|
||||||
|
</entry>
|
||||||
</row>
|
</row>
|
||||||
|
|
||||||
<row>
|
<row>
|
||||||
@@ -201,6 +219,9 @@
|
|||||||
<entry>
|
<entry>
|
||||||
9.3, 9.4, 9.5, 9.6
|
9.3, 9.4, 9.5, 9.6
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry>
|
||||||
|
|
||||||
|
</entry>
|
||||||
</row>
|
</row>
|
||||||
|
|
||||||
<row>
|
<row>
|
||||||
@@ -216,6 +237,9 @@
|
|||||||
<entry>
|
<entry>
|
||||||
9.0, 9.1, 9.2, 9.3, 9.4
|
9.0, 9.1, 9.2, 9.3, 9.4
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry>
|
||||||
|
|
||||||
|
</entry>
|
||||||
</row>
|
</row>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
||||||
|
|||||||
@@ -271,6 +271,10 @@
|
|||||||
data checksums were enabled when the cluster was initialized. See the
|
data checksums were enabled when the cluster was initialized. See the
|
||||||
<ulink url="https://www.postgresql.org/docs/current/app-pgrewind.html"><command>pg_rewind</command> documentation</ulink> for details.
|
<ulink url="https://www.postgresql.org/docs/current/app-pgrewind.html"><command>pg_rewind</command> documentation</ulink> for details.
|
||||||
</para>
|
</para>
|
||||||
|
<para>
|
||||||
|
Additionally, <varname>full_page_writes</varname> must be enabled; this is the default and
|
||||||
|
normally should never be disabled.
|
||||||
|
</para>
|
||||||
</note>
|
</note>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@@ -426,7 +430,7 @@
|
|||||||
|
|
||||||
<warning>
|
<warning>
|
||||||
<para>
|
<para>
|
||||||
In all current PostgreSQL versions (as of September 2020), <application>pg_rewind</application>
|
In all PostgreSQL released before February 2021, <application>pg_rewind</application>
|
||||||
contains a corner-case bug which affects standbys in a very specific situation.
|
contains a corner-case bug which affects standbys in a very specific situation.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
@@ -456,8 +460,7 @@
|
|||||||
<para>
|
<para>
|
||||||
Currently it is not possible to resolve this situation using <application>pg_rewind</application>.
|
Currently it is not possible to resolve this situation using <application>pg_rewind</application>.
|
||||||
A <ulink url="https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=2b4f3130382fe2f8705863e4d38589d4d69cd695">patch</ulink>
|
A <ulink url="https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=2b4f3130382fe2f8705863e4d38589d4d69cd695">patch</ulink>
|
||||||
has been successfully submitted and will be included the next PostgreSQL minor release round, scheduled for
|
was submitted and is included in all PostgreSQL versions released in February 2021 or later.
|
||||||
February 2021.
|
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
As a workaround, start the primary server the standby was previously attached to,
|
As a workaround, start the primary server the standby was previously attached to,
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
<abstract>
|
<abstract>
|
||||||
<para>
|
<para>
|
||||||
This is the official documentation of &repmgr; &repmgrversion; for
|
This is the official documentation of &repmgr; &repmgrversion; for
|
||||||
use with PostgreSQL 9.4 - PostgreSQL 14.
|
use with PostgreSQL 9.4 - PostgreSQL 15.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
&repmgr; is being continually developed and we strongly recommend using the
|
&repmgr; is being continually developed and we strongly recommend using the
|
||||||
|
|||||||
@@ -345,14 +345,18 @@
|
|||||||
</indexterm>
|
</indexterm>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Indicates a preferred priority (default: <literal>100</literal>) for promoting nodes;
|
Indicates a preferred priority (default: <literal>100</literal>) for promoting nodes.
|
||||||
a value of zero prevents the node being promoted to primary.
|
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Note that the priority setting is only applied if two or more nodes are
|
Note that the priority setting is only applied if two or more nodes are
|
||||||
determined as promotion candidates; in that case the node with the
|
determined as promotion candidates; in that case the node with the
|
||||||
higher priority is selected.
|
higher priority is selected.
|
||||||
</para>
|
</para>
|
||||||
|
<para>
|
||||||
|
A value of zero will always prevent the node being promoted to primary, even if there
|
||||||
|
is no other promotion candidate.
|
||||||
|
</para>
|
||||||
|
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
|||||||
@@ -71,6 +71,12 @@
|
|||||||
<secondary>minor release</secondary>
|
<secondary>minor release</secondary>
|
||||||
</indexterm>
|
</indexterm>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A minor release upgrade involves updating &repmgr; from one minor release to another
|
||||||
|
minor release within the same major release (e.g. <literal>5.3.1</literal> to <literal>5.3.2</literal>).
|
||||||
|
An upgrade between minor releases of differing major releases (e.g. <literal>5.2.1</literal> to <literal>5.3.2</literal>)
|
||||||
|
is a <link linkend="upgrading-major-version">major upgrade</link>.
|
||||||
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The process for installing minor version upgrades is quite straightforward:
|
The process for installing minor version upgrades is quite straightforward:
|
||||||
|
|
||||||
@@ -105,15 +111,17 @@
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
A PostgreSQL restart is <emphasis>not</emphasis> required for minor version upgrades.
|
A PostgreSQL restart is usually <emphasis>not</emphasis> required for minor version upgrades
|
||||||
|
within the same major version (e.g. <literal>5.3.1</literal> to <literal>5.3.2</literal>).
|
||||||
|
Be sure to check the <link linkend="appendix-release-notes">release notes</link>.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<note>
|
<note>
|
||||||
<para>
|
<para>
|
||||||
The same &repmgr; "major version" (e.g. <literal>4.2</literal>) must be
|
The same &repmgr; "major version" (e.g. <literal>5.3</literal>) must be
|
||||||
installed on all nodes in the replication cluster. While it's possible to have differing
|
installed on all nodes in the replication cluster. While it's possible to have differing
|
||||||
&repmgr; "minor versions" (e.g. <literal>4.2.1</literal>) on different nodes,
|
&repmgr; "minor versions" (e.g. <literal>5.3.1</literal> and <literal>5.3.2</literal>)
|
||||||
we strongly recommend updating all nodes to the latest minor version.
|
on different nodes, we strongly recommend updating all nodes to the latest minor version.
|
||||||
</para>
|
</para>
|
||||||
</note>
|
</note>
|
||||||
|
|
||||||
|
|||||||
@@ -3192,6 +3192,11 @@ copy_remote_files(char *host, char *remote_user, char *remote_path,
|
|||||||
" --exclude=pg_xlog/* --exclude=pg_log/*");
|
" --exclude=pg_xlog/* --exclude=pg_log/*");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* From PostgreSQL 15, the core server no longer uses pg_stat_tmp,
|
||||||
|
* but some extensions (e.g. pg_stat_statements) may still do, so
|
||||||
|
* keep excluding it.
|
||||||
|
*/
|
||||||
appendPQExpBufferStr(&rsync_flags,
|
appendPQExpBufferStr(&rsync_flags,
|
||||||
" --exclude=pg_stat_tmp/*");
|
" --exclude=pg_stat_tmp/*");
|
||||||
|
|
||||||
@@ -3629,8 +3634,8 @@ can_use_pg_rewind(PGconn *conn, const char *data_directory, PQExpBufferData *rea
|
|||||||
/* "full_page_writes" must be on in any case */
|
/* "full_page_writes" must be on in any case */
|
||||||
if (guc_set(conn, "full_page_writes", "=", "off"))
|
if (guc_set(conn, "full_page_writes", "=", "off"))
|
||||||
{
|
{
|
||||||
appendPQExpBuffer(reason,
|
appendPQExpBufferStr(reason,
|
||||||
_("\"full_page_writes\" must be set to \"on\""));
|
_("\"full_page_writes\" must be set to \"on\""));
|
||||||
|
|
||||||
can_use = false;
|
can_use = false;
|
||||||
}
|
}
|
||||||
@@ -3648,18 +3653,18 @@ can_use_pg_rewind(PGconn *conn, const char *data_directory, PQExpBufferData *rea
|
|||||||
if (data_checksum_version == UNKNOWN_DATA_CHECKSUM_VERSION)
|
if (data_checksum_version == UNKNOWN_DATA_CHECKSUM_VERSION)
|
||||||
{
|
{
|
||||||
if (can_use == false)
|
if (can_use == false)
|
||||||
appendPQExpBuffer(reason, "; ");
|
appendPQExpBufferStr(reason, "; ");
|
||||||
|
|
||||||
appendPQExpBuffer(reason,
|
appendPQExpBufferStr(reason,
|
||||||
_("\"wal_log_hints\" is set to \"off\" but unable to determine data checksum version"));
|
_("\"wal_log_hints\" is set to \"off\" but unable to determine data checksum version"));
|
||||||
can_use = false;
|
can_use = false;
|
||||||
}
|
}
|
||||||
else if (data_checksum_version == 0)
|
else if (data_checksum_version == 0)
|
||||||
{
|
{
|
||||||
if (can_use == false)
|
if (can_use == false)
|
||||||
appendPQExpBuffer(reason, "; ");
|
appendPQExpBufferStr(reason, "; ");
|
||||||
|
|
||||||
appendPQExpBuffer(reason,
|
appendPQExpBufferStr(reason,
|
||||||
_("\"wal_log_hints\" is set to \"off\" and data checksums are disabled"));
|
_("\"wal_log_hints\" is set to \"off\" and data checksums are disabled"));
|
||||||
|
|
||||||
can_use = false;
|
can_use = false;
|
||||||
|
|||||||
32
repmgr.c
32
repmgr.c
@@ -80,11 +80,16 @@ typedef struct repmgrdSharedState
|
|||||||
|
|
||||||
static repmgrdSharedState *shared_state = NULL;
|
static repmgrdSharedState *shared_state = NULL;
|
||||||
|
|
||||||
|
#if (PG_VERSION_NUM >= 150000)
|
||||||
|
static shmem_request_hook_type prev_shmem_request_hook = NULL;
|
||||||
|
#endif
|
||||||
static shmem_startup_hook_type prev_shmem_startup_hook = NULL;
|
static shmem_startup_hook_type prev_shmem_startup_hook = NULL;
|
||||||
|
|
||||||
|
|
||||||
void _PG_init(void);
|
void _PG_init(void);
|
||||||
|
|
||||||
|
#if (PG_VERSION_NUM >= 150000)
|
||||||
|
static void repmgr_shmem_request(void);
|
||||||
|
#endif
|
||||||
static void repmgr_shmem_startup(void);
|
static void repmgr_shmem_startup(void);
|
||||||
|
|
||||||
PG_FUNCTION_INFO_V1(repmgr_set_local_node_id);
|
PG_FUNCTION_INFO_V1(repmgr_set_local_node_id);
|
||||||
@@ -116,24 +121,47 @@ _PG_init(void)
|
|||||||
if (!process_shared_preload_libraries_in_progress)
|
if (!process_shared_preload_libraries_in_progress)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
#if (PG_VERSION_NUM < 150000)
|
||||||
RequestAddinShmemSpace(MAXALIGN(sizeof(repmgrdSharedState)));
|
RequestAddinShmemSpace(MAXALIGN(sizeof(repmgrdSharedState)));
|
||||||
|
|
||||||
#if (PG_VERSION_NUM >= 90600)
|
#if (PG_VERSION_NUM >= 90600)
|
||||||
RequestNamedLWLockTranche(TRANCHE_NAME, 1);
|
RequestNamedLWLockTranche(TRANCHE_NAME, 1);
|
||||||
#else
|
#else
|
||||||
RequestAddinLWLocks(1);
|
RequestAddinLWLocks(1);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Install hooks.
|
* Install hooks.
|
||||||
*/
|
*/
|
||||||
|
#if (PG_VERSION_NUM >= 150000)
|
||||||
|
prev_shmem_request_hook = shmem_request_hook;
|
||||||
|
shmem_request_hook = repmgr_shmem_request;
|
||||||
|
#endif
|
||||||
|
|
||||||
prev_shmem_startup_hook = shmem_startup_hook;
|
prev_shmem_startup_hook = shmem_startup_hook;
|
||||||
shmem_startup_hook = repmgr_shmem_startup;
|
shmem_startup_hook = repmgr_shmem_startup;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if (PG_VERSION_NUM >= 150000)
|
||||||
|
/*
|
||||||
|
* shmem_requst_hook: request shared memory
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
repmgr_shmem_request(void)
|
||||||
|
{
|
||||||
|
if (prev_shmem_request_hook)
|
||||||
|
prev_shmem_request_hook();
|
||||||
|
|
||||||
|
RequestAddinShmemSpace(MAXALIGN(sizeof(repmgrdSharedState)));
|
||||||
|
|
||||||
|
RequestNamedLWLockTranche(TRANCHE_NAME, 1);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* shmem_startup hook: allocate or attach to shared memory,
|
* shmem_startup hook: allocate or attach to shared memory
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
repmgr_shmem_startup(void)
|
repmgr_shmem_startup(void)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#define REPMGR_VERSION_DATE ""
|
#define REPMGR_VERSION_DATE ""
|
||||||
#define REPMGR_VERSION "5.3.2"
|
#define REPMGR_VERSION "5.3.3"
|
||||||
#define REPMGR_VERSION_NUM 50302
|
#define REPMGR_VERSION_NUM 50303
|
||||||
#define REPMGR_EXTENSION_VERSION "5.3"
|
#define REPMGR_EXTENSION_VERSION "5.3"
|
||||||
#define REPMGR_EXTENSION_NUM 50300
|
#define REPMGR_EXTENSION_NUM 50300
|
||||||
#define REPMGR_RELEASE_DATE "2022-05-25"
|
#define REPMGR_RELEASE_DATE "2022-10-17"
|
||||||
#define PG_ACTUAL_VERSION_NUM
|
#define PG_ACTUAL_VERSION_NUM
|
||||||
|
|||||||
@@ -1587,22 +1587,22 @@ monitor_streaming_standby(void)
|
|||||||
/* TODO: possibly add pre-action event here */
|
/* TODO: possibly add pre-action event here */
|
||||||
if (upstream_node_info.type == STANDBY)
|
if (upstream_node_info.type == STANDBY)
|
||||||
{
|
{
|
||||||
create_event_record(primary_conn,
|
create_event_notification(primary_conn,
|
||||||
&config_file_options,
|
&config_file_options,
|
||||||
config_file_options.node_id,
|
config_file_options.node_id,
|
||||||
"repmgrd_upstream_disconnect",
|
"repmgrd_upstream_disconnect",
|
||||||
true,
|
true,
|
||||||
event_details.data);
|
event_details.data);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* primary connection lost - script notification only */
|
/* primary connection lost - script notification only */
|
||||||
create_event_record(NULL,
|
create_event_notification(NULL,
|
||||||
&config_file_options,
|
&config_file_options,
|
||||||
config_file_options.node_id,
|
config_file_options.node_id,
|
||||||
"repmgrd_upstream_disconnect",
|
"repmgrd_upstream_disconnect",
|
||||||
true,
|
true,
|
||||||
event_details.data);
|
event_details.data);
|
||||||
}
|
}
|
||||||
|
|
||||||
log_warning("%s", event_details.data);
|
log_warning("%s", event_details.data);
|
||||||
@@ -2482,12 +2482,12 @@ monitor_streaming_witness(void)
|
|||||||
_("unable to connect to primary node \"%s\" (ID: %i)"),
|
_("unable to connect to primary node \"%s\" (ID: %i)"),
|
||||||
upstream_node_info.node_name, upstream_node_info.node_id);
|
upstream_node_info.node_name, upstream_node_info.node_id);
|
||||||
|
|
||||||
create_event_record(NULL,
|
create_event_notification(NULL,
|
||||||
&config_file_options,
|
&config_file_options,
|
||||||
config_file_options.node_id,
|
config_file_options.node_id,
|
||||||
"repmgrd_upstream_disconnect",
|
"repmgrd_upstream_disconnect",
|
||||||
true,
|
true,
|
||||||
event_details.data);
|
event_details.data);
|
||||||
termPQExpBuffer(&event_details);
|
termPQExpBuffer(&event_details);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user