mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-27 17:06:29 +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;
|
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 start_backup(PGconn *conn, char *first_wal_segment);
|
||||||
bool stop_backup(PGconn *conn, char *last_wal_segment);
|
bool stop_backup(PGconn *conn, char *last_wal_segment);
|
||||||
|
bool set_config_bool(PGconn *conn, const char *config_param, bool state);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
11
repmgr.c
11
repmgr.c
@@ -1114,6 +1114,17 @@ do_standby_clone(void)
|
|||||||
|
|
||||||
if(runtime_options.rsync_only)
|
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)
|
if(start_backup(primary_conn, first_wal_segment) == false)
|
||||||
{
|
{
|
||||||
r = ERR_BAD_BASEBACKUP;
|
r = ERR_BAD_BASEBACKUP;
|
||||||
|
|||||||
Reference in New Issue
Block a user