#!/bin/bash export PATH=/home/postgres/psql14/bin:$PATH primaryDataDir=/home/postgres/primary/pgdata primaryImdbPageDirectory=/tmp/primarypagedb primaryImdbWalDirectory=/tmp/primarywaldb primaryLogfile=/home/postgres/primarylogfile primaryPort=15432 primaryConninfo='application_name=pushstandby user=repl password=123456 host=127.0.0.1 port=15432 sslmode=disable sslcompression=0 gssencmode=disable target_session_attrs=any' pushDataDir=/home/postgres/push/pgdata pushImdbPageDirectory=/tmp/pushpagedb pushImdbWalDirectory=/tmp/pushwaldb pushLogfile=/home/postgres/pushlogfile if [ ! -d "$primaryDataDir" ]; then echo "$primaryDataDir does not exist!" exit 1 fi if [ "`ls -A $primaryDataDir`" != "" ]; then echo "$primaryDataDir is not enpty!" exit 1 fi pg_ctl -D $pushDataDir -l $pushLogfile stop if [ $? -ne 0 ] then echo "$(date "+%F %T"): He3DB stop failed!" exit 1 fi sed -i 's/^primary_conninfo/#primary_conninfo/g' $pushDataDir/postgresql.auto.conf sed -i 's/^primary_conninfo/#primary_conninfo/g' $pushDataDir/postgresql.conf sed -i 's/^he3mirror/#he3mirror/g' $pushDataDir/postgresql.conf rsync -av --exclude base --exclude global --exclude standby.signal --exclude backup_label.old --exclude backup_manifest $pushDataDir/* $primaryDataDir/ if [ $? -ne 0 ] then echo "$(date "+%F %T"): sync data file failed!" exit 1 fi ln -s $pushDataDir/base $primaryDataDir/base ln -s $pushDataDir/global $primaryDataDir/global echo -e "primary_conninfo = '$primaryConninfo'" >> $pushDataDir/postgresql.conf echo -e "he3mirror=false" >> $pushDataDir/postgresql.conf sed -i 's/^push_standby/#push_standby/g' $primaryDataDir/postgresql.conf sed -i 's/^hot_standby/#hot_standby/g' $primaryDataDir/postgresql.conf sed -i 's/^port/#port/g' $primaryDataDir/postgresql.conf sed -i 's/^lmdb_page_directory/#lmdb_page_directory/g' $primaryDataDir/postgresql.conf sed -i 's/^lmdb_wal_directory/#lmdb_wal_directory/g' $primaryDataDir/postgresql.conf echo -e "push_standby=off" >> $primaryDataDir/postgresql.conf echo -e "hot_standby=off" >> $primaryDataDir/postgresql.conf echo -e "port=$primaryPort" >> $primaryDataDir/postgresql.conf echo -e "he3mirror=false" >> $primaryDataDir/postgresql.conf echo -e "lmdb_page_directory='$primaryImdbPageDirectory'" >> $primaryDataDir/postgresql.conf echo -e "lmdb_wal_directory='$primaryImdbWalDirectory'" >> $primaryDataDir/postgresql.conf rm -rf $primaryImdbPageDirectory $primaryImdbWalDirectory $pushImdbPageDirectory $pushImdbWalDirectory pg_ctl -D $primaryDataDir -l $primaryLogfile start if [ $? -ne 0 ] then echo "$(date "+%F %T"): He3DB primary instance start failed!" exit 1 fi pg_ctl -D $pushDataDir -l $pushLogfile start if [ $? -ne 0 ] then echo "$(date "+%F %T"): He3DB push instance start failed!" exit 1 fi