| |
| INITDB |
| ======= |
| |
| HA |
| === |
| |
| 1. check $GPHOME/bin/initdb exists |
| 2. check data directory exists (data directory should not exist) |
| 3. check database is running (database should not run) |
| 4. running initdb |
| |
| $GPHOME/bin/initdb -E %s -D %s --locale=%s --max_connections=%d --shared_buffers=%s > /dev/null 2>&1" % |
| (encoding, data_dir, locale, max_connect, shared_buffer) |
| |
| 5. append host and IP to pg_hba.conf |
| |
| Please see function gpcc_pg_hba_append in libgpcc/gpcc_pg.c |
| Please see function gpcc_master_pg_hba_append in libgpcc/gpcc_pg.c |
| |
| |
| 6. update postgresql.conf |
| |
| please see function gpcc_pg_update_postgresql_conf in libgpcc/gpcc_pg.c |
| |
| 7. start QD or QE in utility mode (see start) |
| |
| 8. update gp_id table |
| |
| "insert into gp_id (gpname, numsegments, dbid, content) values ('%s', %d, %d, %d)", |
| gpname, numseg, dbid, content); |
| |
| 9. updata gp_configuraton table |
| |
| "insert into gp_configuration (dbid, isprimary, content, valid, definedprimary, hostname, port, datadir) values (%d, '%s', %d, 't', '%s', '%s', %d, '%s')", |
| dbid, primary, content, primary, hostname, seg_port, data_dir); |
| |
| 10. if QD, change password |
| "alter user %s password '%s'", user, password); |
| |
| 11. stop segment |
| |
| waitflag = (wait ? "-w" : "-W") |
| option= "-i -p %d", port |
| |
| PGPORT=%d $GPHOME/bin/pg_ctl stop -D %s -o \"%s\" -m %s %s >> %s.log 2>&1" % |
| (port, GPHOME, data_dir, option, mode, waitflag, data_dir) |
| |
| |
| |
| MA |
| === |
| |
| 1. do initdb for all segment except standby QD |
| 2. copy data from coordinator QD to standby QD |
| "scp -r %s %s:%s" % ( seginfo[coordinator_qd_idx].dir, |
| seginfo[standby_qd_idx].host, |
| seginfo[standby_qd_idx].dir) |