rhcs進程監控問題
我當前集群配置
系統RHEL5.2
/etc/hosts
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
10.235.197.206 db-01
10.235.197.207 db-02
/etc/cluster/cluster.conf
<?xml version="1.0" ?>
<cluster alias="db-test" config_version="6" name="db-test">
<fence_daemon post_fail_delay="0" post_join_delay="3"/>
<clusternodes>
<clusternode name="db-01" nodeid="1" votes="1">
<fence>
<method name="1">
<device name="CNG938S29H"/>
</method>
</fence>
</clusternode>
<clusternode name="db-02" nodeid="2" votes="1">
<fence>
<method name="1">
<device name="CNG938S29J"/>
</method>
</fence>
</clusternode>
</clusternodes>
<cman expected_votes="1" two_node="1"/>
<fencedevices>
<fencedevice agent="fence_ilo" hostname="192.168.0.11" login="Administrator" name="CNG938S29J" passwd="tomy"/>
<fencedevice agent="fence_ilo" hostname="192.168.0.10" login="Administrator" name="CNG938S29H" passwd="tomy"/>
</fencedevices>
<rm>
<failoverdomains>
<failoverdomain name="db-test" ordered="0" restricted="0">
<failoverdomainnode name="db-01" priority="1"/>
<failoverdomainnode name="db-02" priority="1"/>
</failoverdomain>
</failoverdomains>
<resources>
<script file="/etc/rc.d/init.d/oracle" name="oracle_script"/>
<ip address="10.235.197.208" monitor_link="1"/>
<fs device="/dev/mapper/mpath0p1" force_fsck="0" force_unmount="0" fsid="19927" fstype="ext3" mountpoint="/oradata" name="/oradata" options="" self_fence="0"/>
<fs device="/dev/mapper/mpath0p2" force_fsck="0" force_unmount="0" fsid="18666" fstype="ext3" mountpoint="/datafile" name="/datafile" options="" self_fence="0"/>
<fs device="/dev/mapper/mpath1p1" force_fsck="0" force_unmount="0" fsid="11127" fstype="ext3" mountpoint="/cdrdata" name="/cdrdata" options="" self_fence="0"/>
<fs device="/dev/mapper/mpath1p4" force_fsck="0" force_unmount="0" fsid="12427" fstype="ext3" mountpoint="/databak" name="/databak" options="" self_fence="0"/>
<fs device="/dev/mapper/mpath2p5" force_fsck="0" force_unmount="0" fsid="23504" fstype="ext3" mountpoint="/cfgbak" name="/cfgbak" options="" self_fence="0"/>
</resources>
<service autostart="1" domain="db-test" name="db-test">
<script ref="oracle_script"/>
<ip ref="10.235.197.208"/>
<fs ref="/oradata"/>
<fs ref="/datafile"/>
<fs ref="/cdrdata"/>
<fs ref="/databak"/>
<fs ref="/cfgbak"/>
</service>
</rm>
</cluster>
oracle啟動腳本
#!/bin/bash
#
# standalone oracle databases
#
# description: oradb10g is a database daemon, which is the program
# that answer incoming database service requests.
# this script start listener and database daemon
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
unset ORACLE_HOME
unset ORACLE_OWNER
ORACLE_HOME=/oracle/product/10.2.0.1
ORACLE_OWNER=oracle
export ORACLE_OWNER ORACLE_HOME
LISTENER=$ORACLE_HOME/bin/lsnrctl
DBSTART=$ORACLE_HOME/bin/dbstart
DBSHUTDOWN=$ORACLE_HOME/bin/dbshut
LOG=$ORACLE_HOME/logs
# gernel logs file
if [ -e $LOG ] ; then
touch $LOG
chown $ORACLE_OWNER $LOG
fi
start() {
# Start daemons.
RETVAL=$?
echo "Starting oracle linstener and databases"
/bin/date '+%F %X Starting oracle linstener and databases' >> $LOG
/bin/su - $ORACLE_OWNER -c "$LISTENER start >> $LOG"
/bin/su - $ORACLE_OWNER -c "$DBSTART >>$LOG"
return $RETVAL
}
stop() {
# Stop daemons.
echo $"Shutting down listener and databases "
RETVAL=$?
/bin/date '+%F %X Shutting down listener and databases ' >> $LOG
/bin/su - $ORACLE_OWNER -c "$LISTENER stop >> $LOG"
/bin/su - $ORACLE_OWNER -c "$DBSHUTDOWN >> $LOG"
return $RETVAL
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
RETVAL=$?
;;
status)
ps -ef |grep -v grep |grep -q ora_smon_dams
if [ $? = 0 ]
then
exit 0
else
exit 1
fi
;;
*)
echo $"Usage: $0 {start|stop|restart|}"
exit 1
esac
exit $RETVAL
我現在的問題有:
1、沒有配置仲裁盤,是否會對集群功能有影響
2、集群的心跳機制,通過資料了解集群是通過檢測網路連通的形式來檢測,我沒有指定multicast addr,也沒有使用2台機器間的直連線(這個直連線有用嗎),那我當前設置是否有問題呢
3、集群日誌能否指定輸出到另外文件
4、另外還有一個需求,我想實現當前集群的主機rgmanager都正常,服務都正常,資源組有VIP、文件系統、oracle啟動腳本,手動停止資料庫后讓備機去接管整個服務,這個大家是怎麼實現的呢?我當前的情況是手動殺掉主機的oracle進程,主機會自動拉起oracle進程,而不是備機接管
《解決方案》
1.雙節點集群不需要仲裁盤,不設置qdisk比設置好;
2.不指定multicast addr的話不意味著沒有,等你集群啟動的時候用cman_tool status就能看到;看你這個環境,用到ilo應該是生產環境,既然這樣永遠不要在生產環境中用直連線來配置心跳,心跳應該走交換機;從你目前的配置文件看,應該沒有問題,就看集群啟動、服務切換還有fence的功能能否實現;
3.一部分集群的日誌可以輸出到另外的文件,但是沒有這個必要,否則你看日誌會十分痛苦;
4.在system-config-cluster上有一個relocate標籤,表示服務一出問題即可切換,你可以選成restart,不過多數人選relocate。
《解決方案》
回復 #1 qqjb 的帖子
學習
《解決方案》
原帖由 jerrywjl 於 2010-1-26 17:09 發表 http://linux.chinaunix.net/bbs/images/common/back.gif
1.雙節點集群不需要仲裁盤,不設置qdisk比設置好;
2.不指定multicast addr的話不意味著沒有,等你集群啟動的時候用cman_tool status就能看到;看你這個環境,用到ilo應該是生產環境,既然這樣永遠不要在生產環 ...
受教了,看來我很多都理解的不透徹啊
另外你說的「在system-config-cluster上有一個relocate標籤,表示服務一出問題即可切換,你可以選成restart,不過多數人選relocate」,我當前是使用的restart,我手動殺掉oracle是在當前主機自己重新啟動oracle,我等下試試relocate看是否是oracle當掉就切到備機上去,謝謝了!
《解決方案》
:lol: :lol: :lol:
問題已解決
《解決方案》
積分是自動轉過去的吧 :lol: :lol:
《解決方案》
分已經收到,這兄弟信譽不錯。