mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-23 07:06:30 +00:00
Set synchronous_commit to off for current session
Forward-ported from 2.x; need to verify it makes sense.
This commit is contained in:
26
dbutils.c
26
dbutils.c
@@ -804,3 +804,29 @@ stop_backup(PGconn *conn, char *last_wal_segment)
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
set_config_bool(PGconn *conn, const char *config_param, bool state)
|
||||
{
|
||||
char sqlquery[QUERY_STR_LEN];
|
||||
PGresult *res;
|
||||
|
||||
sqlquery_snprintf(sqlquery,
|
||||
"SET %s TO %s",
|
||||
config_param,
|
||||
state ? "TRUE" : "FALSE");
|
||||
|
||||
res = PQexec(conn, sqlquery);
|
||||
|
||||
if (PQresultStatus(res) != PGRES_COMMAND_OK)
|
||||
{
|
||||
log_err("Unable to set '%s': %s\n", config_param, PQerrorMessage(conn));
|
||||
PQclear(res);
|
||||
return false;
|
||||
}
|
||||
|
||||
PQclear(res);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -57,5 +57,6 @@ bool create_replication_slot(PGconn *conn, char *slot_name);
|
||||
|
||||
bool start_backup(PGconn *conn, char *first_wal_segment);
|
||||
bool stop_backup(PGconn *conn, char *last_wal_segment);
|
||||
bool set_config_bool(PGconn *conn, const char *config_param, bool state);
|
||||
|
||||
#endif
|
||||
|
||||
11
repmgr.c
11
repmgr.c
@@ -1114,6 +1114,17 @@ do_standby_clone(void)
|
||||
|
||||
if(runtime_options.rsync_only)
|
||||
{
|
||||
|
||||
/*
|
||||
* From pg 9.1 default is to wait for a sync standby to ack, avoid that by
|
||||
* turning off sync rep for this session
|
||||
*/
|
||||
if(set_config_bool(primary_conn, "synchronous_commit", false) == false)
|
||||
{
|
||||
PQfinish(primary_conn);
|
||||
exit(ERR_BAD_CONFIG);
|
||||
}
|
||||
|
||||
if(start_backup(primary_conn, first_wal_segment) == false)
|
||||
{
|
||||
r = ERR_BAD_BASEBACKUP;
|
||||
|
||||
Reference in New Issue
Block a user