44 lines
1.3 KiB
Bash
44 lines
1.3 KiB
Bash
#!/usr/bin/env bash
|
|
# shellcheck shell=bash
|
|
|
|
[ ! -z "$DEBUG" ] && set -x
|
|
|
|
# first argument should be '15' or '16' for the version
|
|
if [ "$1" == "15" ]; then
|
|
echo "Starting server for PSQL 15"
|
|
PSQL15=@PSQL15_BINDIR@
|
|
BINDIR="$PSQL15"
|
|
elif [ "$1" == "16" ]; then
|
|
echo "Starting server for PSQL 16"
|
|
PSQL16=@PSQL16_BINDIR@
|
|
BINDIR="$PSQL16"
|
|
elif [ "$1" == "orioledb-16" ]; then
|
|
echo "Starting server for PSQL ORIOLEDB 16"
|
|
PSQLORIOLEDB16=@PSQLORIOLEDB16_BINDIR@
|
|
BINDIR="$PSQLORIOLEDB16"
|
|
else
|
|
echo "Please provide a valid Postgres version (15, 16 or orioledb-16)"
|
|
exit 1
|
|
fi
|
|
|
|
export PATH=$BINDIR/bin:$PATH
|
|
|
|
PGSQL_SUPERUSER=@PGSQL_SUPERUSER@
|
|
MASTER_PORTNO="$2"
|
|
REPLICA_PORTNO="$3"
|
|
REPLICA_SLOT="replica_$RANDOM"
|
|
DATDIR=$(mktemp -d)
|
|
mkdir -p "$DATDIR"
|
|
|
|
echo "NOTE: runing pg_basebackup for server on port $MASTER_PORTNO"
|
|
echo "NOTE: using replica slot $REPLICA_SLOT"
|
|
|
|
pg_basebackup -p "$MASTER_PORTNO" -h localhost -U "${PGSQL_SUPERUSER}" -X stream -C -S "$REPLICA_SLOT" -v -R -D "$DATDIR"
|
|
|
|
echo "NOTE: using port $REPLICA_PORTNO for replica"
|
|
echo "NOTE: using temporary directory $DATDIR for data, which will not be removed"
|
|
echo "NOTE: you are free to re-use this data directory at will"
|
|
echo
|
|
|
|
exec postgres -p "$REPLICA_PORTNO" -D "$DATDIR" -k /tmp
|