歡迎您光臨本站 註冊首頁

centos4.5+RHCS4.0+oracle9i集群,切換失敗!求教高手!

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

centos4.5+RHCS4.0+oracle9i集群,切換失敗!求教高手!

centos4.5+RHCS4.0+oracle9i   
兩台IBM伺服器+共享磁碟陣列

原來我沒有fence設備,所以切換失敗我理解,但是現在我的兩台IBM伺服器裡面已經插入了遠程管理二代卡,我聽說只需要分別給兩台伺服器的RSA2配置上IP 和修改默認的用戶名即可加入到RHCS配置裡面去了。但是我把兩張卡都加入到RHCS裡面做fence后,出現以下問題,幾乎和原來沒有fence的時候一樣,這就使我鬱悶不已了!!!!
1、比如,dbserver1資料庫處於活躍狀態,這時我dbshut關閉資料庫,發現雖然dbserver1上的資料庫關閉了,oracce進程也沒有,但是文件系統依然掛載,集群也檢測不到dbserver1上的資料庫down了。並沒有切換到dbserver2上去。我懷疑是我的腳本有問題!
2、拔掉dbserver1的網線。集群檢測到dbserver1離開了網路。按照常理,我加入了RSA2作fence之後,集群應該指示RSA2去重啟dbserver1吧,然後把資源釋放出來,讓dbserver2開始工作,但是dbserver1並沒有被重啟,也沒有釋放資源出來。我認為是RSA2問題!!
現在是,我發現了這些問題,但不知道怎麼去解決,希望有過類似配置經驗的人指點一下。謝謝!
真的狠急,現在系統已經開始試運行了。下面給出RHCS的配置文件和我的oracle腳本。大家看一看有沒有什麼錯誤:
另外:測試rsa2是否正常的命令:
在dbserver1中測試:
# fence_rsa -a 192.168.1.3 -l redhat -p redhat -o status
在dbserver2中測試:
# fence_rsa -a 192.168.1.2 -l redhat -p redhat -o status
如果返回正確,證明fence已經正常

但是我輸入這條命令,沒任何反應!但是操作系統肯定是支持這個命令的,所以我懷疑我的fence工作不正常。

RHCS配置文件:

<?xml version="1.0" ?>
<cluster alias="oracluster" config_version="80" name="oracluster">
<fence_daemon post_fail_delay="0" post_join_delay="3"/>
<clusternodes>
<clusternode name="dbserver1" votes="1">
<fence>
<method name="1">
<device name="fence_1"/>
</method>
</fence>
</clusternode>
<clusternode name="dbserver2" votes="1">
<fence>
<method name="1">
<device name="fence_2"/>
</method>
</fence>
</clusternode>
</clusternodes>
<cman expected_votes="1" two_node="1"/>
<fencedevices>
<fencedevice agent="fence_rsa" ipaddr="192.168.1.2" login="centos4" name="fence_1" passwd="centos4"/>
<fencedevice agent="fence_rsa" ipaddr="192.168.1.3" login="centos4" name="fence_2" passwd="centos4"/>
</fencedevices>
<rm>
<failoverdomains>
<failoverdomain name="failover" ordered="0" restricted="1">
<failoverdomainnode name="dbserver1" priority="1"/>
<failoverdomainnode name="dbserver2" priority="1"/>
</failoverdomain>
</failoverdomains>
<resources>
<ip address="10.218.226.139" monitor_link="1"/>
<fs device="/dev/vg_data/lv_oradata" force_fsck="0" force_unmount="0" fsid="14982" fstype="ext3" mountpoint="/opt/oracle/oradata" name="oradata" options="" self_fence="1"/>
<script file="/etc/init.d/ora9" name="oracle"/>
</resources>
<service autostart="1" domain="failover" name="oracle" recovery="relocate">
<ip ref="10.218.226.139">
<fs ref="oradata">
<script ref="oracle"/>
</fs>
</ip>
</service>
</rm>
</cluster>



oracle腳本:



syntax()
{
echo " "
echo " Syntax: `basename $0` <signal>"
echo " <signal> include following options(ignore case):"
echo " status Get database status."
echo " start Start dataorclbase."
echo " stop Stop database."
echo " restart Restart database."
echo " "
}

get_status()
{
echo " "
ps -ef |grep -v grep |grep -q ora_smon_orcl
if [ $? = 0 ]
then echo "Database orcl is running."
else echo "Database orcl is not running."
fi
echo " "
}

start_orcl()
{
su - oracle -c "export ORACLE_SID=orcl;
lsnrctl start;
sqlplus '/as sysdba' << EOF
startup
exit
EOF;
"
}

stop_orcl()
{
su - oracle -c "export ORACLE_SID=orcl;
lsnrctl stop;
sqlplus '/as sysdba' << EOF
shutdown immediate
exit
EOF
"
}

v_signal=$1
v_signal=`echo $v_signal |tr "A-Z" "a-z"`

if [ X"$v_signal" == X"status" ]
then get_status
elif [ X"$v_signal" = X"start" ]
then start_orcl
elif [ X"$v_signal" = X"stop" ]
then stop_orcl
elif [ X"$v_signal" = X"restart" ]
then stop_orcl
start_orcl
else echo " "
echo "Invalid input"
syntax
fi
exit 0
《解決方案》

應該是Oracle腳本的問題,沒返回正確的值(只有exit 0),即使你的服務停了,rhcs還是認為服務是正常的。
《解決方案》

那應該怎麼解決呢?
我也猜到是我的腳本問題
可是我對腳本不懂
這個腳本也是我在網上找的
我找了很多腳本
經過測試,只有這個還能啟動oracle和停止oracle
但是監控oracle運行狀態有點問題
但是我不知道解決
《解決方案》

腳本先改成這樣試試,根據你的描述,fence應該還有問題的。
get_status()
{
echo " "
ps -ef |grep -v grep |grep -q ora_smon_orcl
return $?
}
《解決方案》

謝謝您的回答!
明天我過去測試一下
有情況再向您請教
還有就是fence
您說沒什麼問題
但是它確實沒有起到作用啊
和我原來沒有fence的時候配置的效果一樣
我看官方問題檔上說的,配置rsa2最好不要和伺服器一個網段,所以我就把兩張rsa2單獨配成一個網段,我懷疑是不是個問題導致的。
他們和伺服器應該在一個網段嗎?
《解決方案》

自己頂一下,我現在真的非常的急 。問題一直解決不了。。。所以誠心求教各位
《解決方案》

原帖由 hmqq 於 2007-12-28 21:33 發表 http://linux.chinaunix.net/bbs/images/common/back.gif
腳本先改成這樣試試,根據你的描述,fence應該還有問題的。
get_status()
{
echo " "
ps -ef |grep -v grep |grep -q ora_smon_orcl
return $?
}


我用了這個腳本去測試了一下,發現還是不行啊
求教一下
謝謝俄
《解決方案》

原帖由 七殺書生 於 2007-12-28 17:47 發表 http://linux.chinaunix.net/bbs/images/common/back.gif
centos4.5+RHCS4.0+oracle9i   
兩台IBM伺服器+共享磁碟陣列

原來我沒有fence設備,所以切換失敗我理解,但是現在我的兩台IBM伺服器裡面已經插入了遠程管理二代卡,我聽說只需要分別給兩台伺服器的RSA2配置上IP 和修改默認的用戶名即可加入到RHCS配置裡面去了。但是我把兩張卡都加入到RHCS裡面做fence后,出現以下問題,幾乎和原來沒有fence的時候一樣,這就使我鬱悶不已了!!!!
1、比如,dbserver1資料庫處於活躍狀態,這時我dbshut關閉資料庫,發現雖然dbserver1上的資料庫關閉了,oracce進程也沒有,但是文件系統依然掛載,集群也檢測不到dbserver1上的資料庫down了。並沒有切換到dbserver2上去。我懷疑是我的腳本有問題!
2、拔掉dbserver1的網線。集群檢測到dbserver1離開了網路。按照常理,我加入了RSA2作fence之後,集群應該指示RSA2去重啟dbserver1吧,然後把資源釋放出來,讓dbserver2開始工作,但是dbserver1並沒有被重啟,也沒有釋放資源出來。我認為是RSA2問題!!
現在是,我發現了這些問題,但不知道怎麼去解決,希望有過類似配置經驗的人指點一下。謝謝!
真的狠急,現在系統已經開始試運行了。下面給出RHCS的配置文件和我的oracle腳本。大家看一看有沒有什麼錯誤:
另外:測試rsa2是否正常的命令:
在dbserver1中測試:
# fence_rsa -a 192.168.1.3 -l redhat -p redhat -o status
在dbserver2中測試:
# fence_rsa -a 192.168.1.2 -l redhat -p redhat -o status
如果返回正確,證明fence已經正常

但是我輸入這條命令,沒任何反應!但是操作系統肯定是支持這個命令的,所以我懷疑我的fence工作不正常。

RHCS配置文件:

<?xml version="1.0" ?>
<cluster alias="oracluster" config_version="80" name="oracluster">
<fence_daemon post_fail_delay="0" post_join_delay="3"/>
<clusternodes>
<clusternode name="dbserver1" votes="1">
<fence>
<method name="1">
<device name="fence_1"/>
</method>
</fence>
</clusternode>
<clusternode name="dbserver2" votes="1">
<fence>
<method name="1">
<device name="fence_2"/>
</method>
</fence>
</clusternode>
</clusternodes>
<cman expected_votes="1" two_node="1"/>
<fencedevices>
<fencedevice agent="fence_rsa" ipaddr="192.168.1.2" login="centos4" name="fence_1" passwd="centos4"/>
<fencedevice agent="fence_rsa" ipaddr="192.168.1.3" login="centos4" name="fence_2" passwd="centos4"/>
</fencedevices>
<rm>
<failoverdomains>
<failoverdomain name="failover" ordered="0" restricted="1">
<failoverdomainnode name="dbserver1" priority="1"/>
<failoverdomainnode name="dbserver2" priority="1"/>
</failoverdomain>
</failoverdomains>
<resources>
<ip address="10.218.226.139" monitor_link="1"/>
<fs device="/dev/vg_data/lv_oradata" force_fsck="0" force_unmount="0" fsid="14982" fstype="ext3" mountpoint="/opt/oracle/oradata" name="oradata" options="" self_fence="1"/>
<script file="/etc/init.d/ora9" name="oracle"/>
</resources>
<service autostart="1" domain="failover" name="oracle" recovery="relocate">
<ip ref="10.218.226.139">
<fs ref="oradata">
<script ref="oracle"/>
</fs>
</ip>
</service>
</rm>
</cluster>



oracle腳本:



syntax()
{
echo " "
echo " Syntax: `basename $0` <signal>"
echo " <signal> include following options(ignore case):"
echo " status Get database status."
echo " start Start dataorclbase."
echo " stop Stop database."
echo " restart Restart database."
echo " "
}

get_status()
{
echo " "
ps -ef |grep -v grep |grep -q ora_smon_orcl
if [ $? = 0 ]
then echo "Database orcl is running."
else echo "Database orcl is not running."
fi
echo " "
}

start_orcl()
{
su - oracle -c "export ORACLE_SID=orcl;
lsnrctl start;
sqlplus '/as sysdba' << EOF
startup
exit
EOF;
"
}

stop_orcl()
{
su - oracle -c "export ORACLE_SID=orcl;
lsnrctl stop;
sqlplus '/as sysdba' << EOF
shutdown immediate
exit
EOF
"
}

v_signal=$1
v_signal=`echo $v_signal |tr "A-Z" "a-z"`

if [ X"$v_signal" == X"status" ]
then get_status
elif [ X"$v_signal" = X"start" ]
then start_orcl
elif [ X"$v_signal" = X"stop" ]
then stop_orcl
elif [ X"$v_signal" = X"restart" ]
then stop_orcl
start_orcl
else echo " "
echo "Invalid input"
syntax
fi
exit 0
紅色的部分:
1、你的rsa卡的用戶名密碼到底是什麼?
2、如果1沒有問題,把藍色的ip地址改成一個網段,沒有你的拓撲圖我只能猜測,
你可以畫個拓撲圖會更明了,但可能90%的問題在這裡。
3、帖日誌,需要更多的信息來判斷。
《解決方案》

謝謝您的解答,fence設備的問題已經解決。我把RSA的ip改成伺服器一個就好了。。
我是受官方文檔的影響,官方說是最好不要將RSA的ip一個網段。
現在改過來就好了。
但是那個腳本的問題還是沒解決。
你有什麼辦法嗎?
還需要什麼樣的信息
《解決方案》

腳本你不用些那麼複雜,在oracle安裝目錄有dbstart dbshut,拿過來用就行,status注意返回值,隨便怎麼些都可以,只要是服務在返回0,其他全部返回非0。

[火星人 ] centos4.5+RHCS4.0+oracle9i集群,切換失敗!求教高手!已經有468次圍觀

http://coctec.com/docs/service/show-post-7770.html