mirror of
https://gitee.com/he3db/he3pg.git
synced 2024-12-02 04:07:34 +08:00
feat: switch primary to he3pg from pg
This commit is contained in:
commit
d050aa93e4
75
script/activehe3pgfrompg.sh
Normal file
75
script/activehe3pgfrompg.sh
Normal file
@ -0,0 +1,75 @@
|
||||
#!/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
|
Loading…
Reference in New Issue
Block a user