|
33 | 33 | #include "coord_cmd.h" |
34 | 34 | #include "gtm_util.h" |
35 | 35 |
|
| 36 | +/* Tune-up base-backup and ALTER NODE usage for slave and failover */ |
| 37 | +#define USE_PG_BASEBACKUP |
| 38 | +#define USE_ALTER_NODE |
36 | 39 |
|
37 | 40 | static int failover_oneCoordinator(int coordIdx); |
38 | 41 |
|
@@ -233,7 +236,7 @@ cmd_t *prepare_initCoordinatorSlave(char *nodeName) |
233 | 236 | cmd_t *cmd, |
234 | 237 | *cmdBuildDir, |
235 | 238 | *cmdStartMaster, |
236 | | -#if 0 |
| 239 | +#ifdef USE_PG_BASEBACKUP |
237 | 240 | *cmdBaseBkup, |
238 | 241 | #else |
239 | 242 | /* |
@@ -286,7 +289,7 @@ cmd_t *prepare_initCoordinatorSlave(char *nodeName) |
286 | 289 | /* |
287 | 290 | * Obtain base backup of the master |
288 | 291 | */ |
289 | | -#if 0 |
| 292 | +#ifdef USE_PG_BASEBACKUP |
290 | 293 | appendCmdEl(cmdBuildDir, (cmdBaseBkup = initCmd(aval(VAR_coordSlaveServers)[idx]))); |
291 | 294 | snprintf(newCommand(cmdBaseBkup), MAXLINE, |
292 | 295 | "pg_basebackup -p %s -h %s -D %s -x", |
@@ -1152,7 +1155,7 @@ int add_coordinatorSlave(char *name, char *host, char *dir, char *archDir) |
1152 | 1155 | "pg_ctl stop -Z coordinator -D %s -m fast", aval(VAR_coordMasterDirs)[idx]); |
1153 | 1156 | doImmediate(aval(VAR_coordMasterServers)[idx], NULL, |
1154 | 1157 | "pg_ctl start -Z coordinator -D %s -w", aval(VAR_coordMasterDirs)[idx]); |
1155 | | -#if 0 |
| 1158 | +#ifdef USE_PG_BASEBACKUP |
1156 | 1159 | /* pg_basebackup */ |
1157 | 1160 | doImmediate(host, NULL, "pg_basebackup -p %s -h %s -D %s -x", |
1158 | 1161 | aval(VAR_coordPorts)[idx], aval(VAR_coordMasterServers)[idx], dir); |
@@ -1932,17 +1935,21 @@ static int failover_oneCoordinator(int coordIdx) |
1932 | 1935 | elog(ERROR, "ERROR: failed to start psql for coordinator %s, %s\n", aval(VAR_coordNames)[jj], strerror(errno)); |
1933 | 1936 | continue; |
1934 | 1937 | } |
| 1938 | +#ifdef USE_ALTER_NODE /* Now alter node dies not work well in this context. */ |
1935 | 1939 | fprintf(f, |
1936 | | -#if 0 /* Now alter node dies not work well in this context. */ |
1937 | 1940 | "ALTER NODE %s WITH (HOST='%s', PORT=%s);\n" |
| 1941 | + "select pgxc_pool_reload();\n" |
| 1942 | + "\\q\n", |
| 1943 | + aval(VAR_coordNames)[coordIdx], aval(VAR_coordMasterServers)[coordIdx], aval(VAR_coordPorts)[coordIdx]); |
1938 | 1944 | #else |
| 1945 | + fprintf(f, |
1939 | 1946 | "DROP NODE %s;\n" |
1940 | 1947 | "CREATE NODE %s WITH (type = coordinator, HOST='%s', PORT=%s);\n" |
1941 | | -#endif |
1942 | 1948 | "select pgxc_pool_reload();\n" |
1943 | 1949 | "\\q\n", |
1944 | 1950 | aval(VAR_coordNames)[coordIdx], |
1945 | 1951 | aval(VAR_coordNames)[coordIdx], aval(VAR_coordMasterServers)[coordIdx], aval(VAR_coordPorts)[coordIdx]); |
| 1952 | +#endif |
1946 | 1953 | fclose(f); |
1947 | 1954 | } |
1948 | 1955 | } |
|
0 commit comments