読者です 読者をやめる 読者になる 読者になる

めもぶろぐ

お勉強したこと、趣味なんかを適当に書いてます。。。

Linux Postgres DRBDを使用したHAの現用系、予備系の切り替え スワップシェル

適当ですけどシェル作っておきました

タブとかは貼付け時にずれました

 

意味不明なコメントあったら適当に直して使います

 

ちなみに予備系と現用系のどちらにおいても使えるように作ってみました。

時間を無駄にしました。これをやる意味は特にないのですが、適当にお勉強としてやってみました 

 

#!/bin/bash

echo

 

#現用系と予備系の判断

export ROLE=`/etc/rc.d/init.d/drbd status | grep Primary | awk '{print $3}'`

if [ $ROLE = "Secondary/Primary" ]

then

export STB=`hostname`

if [ $STB="postgres01" ]

then

export ACT="postgres02"

else

export ACT="postgres01"

fi

echo

 

echo =====================================================

echo " $ACT"

echo =====================================================

 

rsh $ACT /root/stop.sh

 

#unmount mirroring device

rsh $ACT /bin/umount /dev/drbd0

/bin/logger "successful: unmounting /dev/drbd0"

 

#primary ⇛ secondary

rsh $ACT /sbin/drbdadm secondary r0

status=$?

 

#echo logs

if [ $status="0" ]

then

/bin/logger "successful: to standby postgres"

fi

rsh $ACT /etc/rc.d/init.d/drbd status

 

echo

echo

 

echo =====================================================

echo " $STB"

echo =====================================================

 

#secondary ⇛ primary

/sbin/drbdadm primary r0

status=$?

if [ $status="0" ]

then

/bin/logger "successful: to primary postgres"

fi

 

#mount mirroring device to /pgdata

/bin/mount /dev/drbd0 /pgdata

/bin/logger "successful: mounting /dev/sdb1 /pgdata"

 

/etc/rc.d/init.d/drbd status

/root/start.sh

 

echo

echo "[drbd] swapは正常に完了しました"

echo

 

else

export ACT=`hostname`

if [ $ACT = "postgres01" ]

then

export STB="postgres02"

else

export STB="postgres01"

fi

echo =====================================================

echo " $ACT"

echo =====================================================

 

#DBの停止

/root/stop.sh

 

#unmount mirroring device

/bin/umount /dev/drbd0

/bin/logger "successful: unmounting /dev/drbd0"

 

#secondary ⇛ primary

/sbin/drbdadm secondary r0

status=$?

 

#echo logs

if [ $status="0" ]

then

/bin/logger "successful: to standby postgres"

fi

/etc/rc.d/init.d/drbd status

 

echo

echo

 

echo =====================================================

echo " $STB"

echo =====================================================

 

#secondary ⇛ primary

rsh $STB /sbin/drbdadm primary r0

 

status=$?

if [ $status="0" ]

then

/bin/logger "successful: to standby postgres"

fi

 

#mount mirroring device

rsh $STB /bin/mount /dev/drbd0 /pgdata

/bin/logger "successful: mounting /dev/sdb1 /pgdata"

 

rsh $STB /etc/rc.d/init.d/drbd status

 

#DBの開始

rsh $STB /root/start.sh &

sleep 2

 

echo

echo "[drbd] swapは正常に完了しました"

echo

fi

 

 

 

 

追記:なんか足りないのあったから追記というか重複するけど

Swap postgres DB

 

終わり

 

 

広告を非表示にする