mirror of
https://github.com/postgres/postgres.git
synced 2025-04-21 12:05:57 +03:00
Revoke bc5334d8679c428a709d150666b288171795bd76
This commit is contained in:
parent
d139a5e26b
commit
593c39d156
@ -330,22 +330,6 @@ include 'filename'
|
|||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry id="guc-recovery-config-directory" xreflabel="recovery_config_directory">
|
|
||||||
<term><varname>recovery_config_directory</varname> (<type>string</type>)</term>
|
|
||||||
<indexterm>
|
|
||||||
<primary><varname>recovery_config_directory</> configuration parameter</primary>
|
|
||||||
</indexterm>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Specifies the directory to use for the recovery.conf file. Note
|
|
||||||
the server requires read and write permission on this directory
|
|
||||||
because the file will be renamed to recovery.done at the end of
|
|
||||||
recovery.
|
|
||||||
This parameter can only be set at server start.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry id="guc-config-file" xreflabel="config_file">
|
<varlistentry id="guc-config-file" xreflabel="config_file">
|
||||||
<term><varname>config_file</varname> (<type>string</type>)</term>
|
<term><varname>config_file</varname> (<type>string</type>)</term>
|
||||||
<indexterm>
|
<indexterm>
|
||||||
|
@ -62,7 +62,6 @@
|
|||||||
|
|
||||||
extern bool bootstrap_data_checksums;
|
extern bool bootstrap_data_checksums;
|
||||||
|
|
||||||
char recoveryConfPath[MAXPGPATH];
|
|
||||||
/* File path names (all relative to $PGDATA) */
|
/* File path names (all relative to $PGDATA) */
|
||||||
#define RECOVERY_COMMAND_FILE "recovery.conf"
|
#define RECOVERY_COMMAND_FILE "recovery.conf"
|
||||||
#define RECOVERY_COMMAND_DONE "recovery.done"
|
#define RECOVERY_COMMAND_DONE "recovery.done"
|
||||||
@ -4164,8 +4163,7 @@ readRecoveryCommandFile(void)
|
|||||||
*head = NULL,
|
*head = NULL,
|
||||||
*tail = NULL;
|
*tail = NULL;
|
||||||
|
|
||||||
snprintf(recoveryConfPath, MAXPGPATH, "%s/%s", RecoveryConfDir, RECOVERY_COMMAND_FILE);
|
fd = AllocateFile(RECOVERY_COMMAND_FILE, "r");
|
||||||
fd = AllocateFile(recoveryConfPath, "r");
|
|
||||||
if (fd == NULL)
|
if (fd == NULL)
|
||||||
{
|
{
|
||||||
if (errno == ENOENT)
|
if (errno == ENOENT)
|
||||||
@ -4173,7 +4171,7 @@ readRecoveryCommandFile(void)
|
|||||||
ereport(FATAL,
|
ereport(FATAL,
|
||||||
(errcode_for_file_access(),
|
(errcode_for_file_access(),
|
||||||
errmsg("could not open recovery command file \"%s\": %m",
|
errmsg("could not open recovery command file \"%s\": %m",
|
||||||
recoveryConfPath)));
|
RECOVERY_COMMAND_FILE)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -4347,7 +4345,7 @@ readRecoveryCommandFile(void)
|
|||||||
if (PrimaryConnInfo == NULL && recoveryRestoreCommand == NULL)
|
if (PrimaryConnInfo == NULL && recoveryRestoreCommand == NULL)
|
||||||
ereport(WARNING,
|
ereport(WARNING,
|
||||||
(errmsg("recovery command file \"%s\" specified neither primary_conninfo nor restore_command",
|
(errmsg("recovery command file \"%s\" specified neither primary_conninfo nor restore_command",
|
||||||
recoveryConfPath),
|
RECOVERY_COMMAND_FILE),
|
||||||
errhint("The database server will regularly poll the pg_xlog subdirectory to check for files placed there.")));
|
errhint("The database server will regularly poll the pg_xlog subdirectory to check for files placed there.")));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -4355,7 +4353,7 @@ readRecoveryCommandFile(void)
|
|||||||
if (recoveryRestoreCommand == NULL)
|
if (recoveryRestoreCommand == NULL)
|
||||||
ereport(FATAL,
|
ereport(FATAL,
|
||||||
(errmsg("recovery command file \"%s\" must specify restore_command when standby mode is not enabled",
|
(errmsg("recovery command file \"%s\" must specify restore_command when standby mode is not enabled",
|
||||||
recoveryConfPath)));
|
RECOVERY_COMMAND_FILE)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Enable fetching from archive recovery area */
|
/* Enable fetching from archive recovery area */
|
||||||
@ -4397,7 +4395,6 @@ static void
|
|||||||
exitArchiveRecovery(TimeLineID endTLI, XLogSegNo endLogSegNo)
|
exitArchiveRecovery(TimeLineID endTLI, XLogSegNo endLogSegNo)
|
||||||
{
|
{
|
||||||
char recoveryPath[MAXPGPATH];
|
char recoveryPath[MAXPGPATH];
|
||||||
char recoveryDonePath[MAXPGPATH];
|
|
||||||
char xlogpath[MAXPGPATH];
|
char xlogpath[MAXPGPATH];
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -4462,13 +4459,12 @@ exitArchiveRecovery(TimeLineID endTLI, XLogSegNo endLogSegNo)
|
|||||||
* Rename the config file out of the way, so that we don't accidentally
|
* Rename the config file out of the way, so that we don't accidentally
|
||||||
* re-enter archive recovery mode in a subsequent crash.
|
* re-enter archive recovery mode in a subsequent crash.
|
||||||
*/
|
*/
|
||||||
snprintf(recoveryDonePath, MAXPGPATH, "%s/%s", RecoveryConfDir, RECOVERY_COMMAND_DONE);
|
unlink(RECOVERY_COMMAND_DONE);
|
||||||
unlink(recoveryDonePath);
|
if (rename(RECOVERY_COMMAND_FILE, RECOVERY_COMMAND_DONE) != 0)
|
||||||
if (rename(recoveryConfPath, recoveryDonePath) != 0)
|
|
||||||
ereport(FATAL,
|
ereport(FATAL,
|
||||||
(errcode_for_file_access(),
|
(errcode_for_file_access(),
|
||||||
errmsg("could not rename file \"%s\" to \"%s\": %m",
|
errmsg("could not rename file \"%s\" to \"%s\": %m",
|
||||||
recoveryConfPath, recoveryDonePath)));
|
RECOVERY_COMMAND_FILE, RECOVERY_COMMAND_DONE)));
|
||||||
|
|
||||||
ereport(LOG,
|
ereport(LOG,
|
||||||
(errmsg("archive recovery complete")));
|
(errmsg("archive recovery complete")));
|
||||||
|
@ -46,7 +46,6 @@ int MyPMChildSlot;
|
|||||||
* explicitly.
|
* explicitly.
|
||||||
*/
|
*/
|
||||||
char *DataDir = NULL;
|
char *DataDir = NULL;
|
||||||
char *RecoveryConfDir = NULL;
|
|
||||||
|
|
||||||
char OutputFileName[MAXPGPATH]; /* debugging output file */
|
char OutputFileName[MAXPGPATH]; /* debugging output file */
|
||||||
|
|
||||||
|
@ -99,25 +99,6 @@ SetDataDir(const char *dir)
|
|||||||
DataDir = new;
|
DataDir = new;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Set recovery config directory, but make sure it's an absolute path. Use this,
|
|
||||||
* never set RecoveryConfDir directly.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
SetRecoveryConfDir(const char *dir)
|
|
||||||
{
|
|
||||||
char *new;
|
|
||||||
|
|
||||||
AssertArg(dir);
|
|
||||||
|
|
||||||
/* If presented path is relative, convert to absolute */
|
|
||||||
new = make_absolute_path(dir);
|
|
||||||
|
|
||||||
if (RecoveryConfDir)
|
|
||||||
free(RecoveryConfDir);
|
|
||||||
RecoveryConfDir = new;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Change working directory to DataDir. Most of the postmaster and backend
|
* Change working directory to DataDir. Most of the postmaster and backend
|
||||||
* code assumes that we are in DataDir so it can use relative paths to access
|
* code assumes that we are in DataDir so it can use relative paths to access
|
||||||
|
@ -424,7 +424,6 @@ int temp_file_limit = -1;
|
|||||||
int num_temp_buffers = 1024;
|
int num_temp_buffers = 1024;
|
||||||
|
|
||||||
char *data_directory;
|
char *data_directory;
|
||||||
char *recovery_config_directory;
|
|
||||||
char *ConfigFileName;
|
char *ConfigFileName;
|
||||||
char *HbaFileName;
|
char *HbaFileName;
|
||||||
char *IdentFileName;
|
char *IdentFileName;
|
||||||
@ -2961,17 +2960,6 @@ static struct config_string ConfigureNamesString[] =
|
|||||||
NULL, NULL, NULL
|
NULL, NULL, NULL
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
|
||||||
{"recovery_config_directory", PGC_POSTMASTER, FILE_LOCATIONS,
|
|
||||||
gettext_noop("Sets the server's recovery configuration directory."),
|
|
||||||
NULL,
|
|
||||||
GUC_SUPERUSER_ONLY
|
|
||||||
},
|
|
||||||
&recovery_config_directory,
|
|
||||||
NULL,
|
|
||||||
NULL, NULL, NULL
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
{
|
||||||
{"config_file", PGC_POSTMASTER, FILE_LOCATIONS,
|
{"config_file", PGC_POSTMASTER, FILE_LOCATIONS,
|
||||||
gettext_noop("Sets the server's main configuration file."),
|
gettext_noop("Sets the server's main configuration file."),
|
||||||
@ -4193,18 +4181,6 @@ SelectConfigFiles(const char *userDoption, const char *progname)
|
|||||||
*/
|
*/
|
||||||
SetConfigOption("data_directory", DataDir, PGC_POSTMASTER, PGC_S_OVERRIDE);
|
SetConfigOption("data_directory", DataDir, PGC_POSTMASTER, PGC_S_OVERRIDE);
|
||||||
|
|
||||||
/*
|
|
||||||
* If the recovery_config_directory GUC variable has been set, use that,
|
|
||||||
* otherwise use DataDir.
|
|
||||||
*
|
|
||||||
* Note: SetRecoveryConfDir will copy and absolute-ize its argument,
|
|
||||||
* so we don't have to.
|
|
||||||
*/
|
|
||||||
if (recovery_config_directory)
|
|
||||||
SetRecoveryConfDir(recovery_config_directory);
|
|
||||||
else
|
|
||||||
SetRecoveryConfDir(DataDir);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If timezone_abbreviations wasn't set in the configuration file, install
|
* If timezone_abbreviations wasn't set in the configuration file, install
|
||||||
* the default value. We do it this way because we can't safely install a
|
* the default value. We do it this way because we can't safely install a
|
||||||
|
@ -137,7 +137,6 @@ extern bool IsBinaryUpgrade;
|
|||||||
extern bool ExitOnAnyError;
|
extern bool ExitOnAnyError;
|
||||||
|
|
||||||
extern PGDLLIMPORT char *DataDir;
|
extern PGDLLIMPORT char *DataDir;
|
||||||
extern PGDLLIMPORT char *RecoveryConfDir;
|
|
||||||
|
|
||||||
extern PGDLLIMPORT int NBuffers;
|
extern PGDLLIMPORT int NBuffers;
|
||||||
extern int MaxBackends;
|
extern int MaxBackends;
|
||||||
@ -302,7 +301,6 @@ extern Oid GetCurrentRoleId(void);
|
|||||||
extern void SetCurrentRoleId(Oid roleid, bool is_superuser);
|
extern void SetCurrentRoleId(Oid roleid, bool is_superuser);
|
||||||
|
|
||||||
extern void SetDataDir(const char *dir);
|
extern void SetDataDir(const char *dir);
|
||||||
extern void SetRecoveryConfDir(const char *dir);
|
|
||||||
extern void ChangeToDataDir(void);
|
extern void ChangeToDataDir(void);
|
||||||
extern char *make_absolute_path(const char *path);
|
extern char *make_absolute_path(const char *path);
|
||||||
|
|
||||||
|
@ -220,7 +220,6 @@ extern int temp_file_limit;
|
|||||||
extern int num_temp_buffers;
|
extern int num_temp_buffers;
|
||||||
|
|
||||||
extern char *data_directory;
|
extern char *data_directory;
|
||||||
extern char *recovery_config_directory;
|
|
||||||
extern char *ConfigFileName;
|
extern char *ConfigFileName;
|
||||||
extern char *HbaFileName;
|
extern char *HbaFileName;
|
||||||
extern char *IdentFileName;
|
extern char *IdentFileName;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user