!4903 禁止资源池化单集群使用gs_ctl failover

Merge pull request !4903 from Carl/xx
This commit is contained in:
opengauss_bot
2024-02-29 08:07:43 +00:00
committed by Gitee
3 changed files with 18 additions and 4 deletions

View File

@ -2174,7 +2174,7 @@ static void do_failover(uint32 term)
}
origin_run_mode = run_mode = get_runmode();
if (ss_instance_config.dss.enable_dorado) {
if (ss_instance_config.dss.enable_dorado || ss_instance_config.dss.enable_stream) {
if (run_mode == PRIMARY_MODE) {
pg_log(PG_WARNING,
_(" failover completed; "
@ -2183,9 +2183,14 @@ static void do_failover(uint32 term)
} else if (run_mode != MAIN_STANDBY_MODE) {
pg_log(PG_WARNING,
_(" cannot failover server; "
"server is not main standby node in ss dorado cluster\n"));
"server is not main standby node in ss double cluster\n"));
exit(1);
}
} else if (ss_instance_config.dss.enable_dss) {
pg_log(PG_WARNING,
_(" cannot failover server; "
"server is share storage single cluster mode\n"));
exit(1);
} else {
if (run_mode == PRIMARY_MODE) {
pg_log(PG_WARNING, _(" failover completed (%s)\n"), pg_data);
@ -2266,10 +2271,11 @@ static void do_failover(uint32 term)
break;
}
pg_log(PG_PRINT, "\n");
if ((origin_run_mode == STANDBY_MODE && get_runmode() != PRIMARY_MODE) ||
(origin_run_mode == MAIN_STANDBY_MODE && get_runmode() != PRIMARY_MODE) ||
(origin_run_mode == CASCADE_STANDBY_MODE && get_runmode() != STANDBY_MODE)) {
pg_log(PG_WARNING, _(" \nfailover timeout after %d seconds. please manually check the cluster status or backtrack log.\n"), wait_seconds);
pg_log(PG_WARNING, _(" failover timeout after %d seconds. please manually check the cluster status or backtrack log.\n"), wait_seconds);
pg_log(PG_WARNING, _(" failover failed (%s)\n"), pg_data);
exit(1);
}

View File

@ -32,6 +32,7 @@ SSInstanceConfig ss_instance_config = {
.dss = {
.enable_dss = false,
.enable_dorado = false,
.enable_stream = false,
.instance_id = 0,
.primaryInstId = -1,
.interNodeNum = 0,
@ -476,6 +477,7 @@ bool ss_read_config(const char* pg_data)
char config_file[MAXPGPATH] = {0};
char enable_dss[MAXPGPATH] = {0};
char enable_dorado[MAXPGPATH] = {0};
char enable_stream[MAXPGPATH] = {0};
char inst_id[MAXPGPATH] = {0};
char interconnect_url[MAXPGPATH] = {0};
char** optlines = NULL;
@ -496,10 +498,15 @@ bool ss_read_config(const char* pg_data)
}
(void)find_guc_optval((const char**)optlines, "ss_enable_dorado", enable_dorado);
if(strcmp(enable_dorado, "on") == 0) {
if (strcmp(enable_dorado, "on") == 0) {
ss_instance_config.dss.enable_dorado = true;
}
(void)find_guc_optval((const char**)optlines, "ss_stream_cluster", enable_stream);
if (strcmp(enable_stream, "on") == 0) {
ss_instance_config.dss.enable_stream = true;
}
ss_instance_config.dss.enable_dss = true;
ss_instance_config.dss.socketpath = (char*)malloc(sizeof(char) * MAXPGPATH);
ss_instance_config.dss.vgname = (char*)malloc(sizeof(char) * MAXPGPATH);

View File

@ -122,6 +122,7 @@ typedef struct st_datadir_t {
typedef struct DssOptions {
bool enable_dss;
bool enable_dorado;
bool enable_stream;
int instance_id;
int primaryInstId;
int interNodeNum;