航班延误分析:利用Oracle CRS搭建应用的高可用集群-5

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 14:02:30
利用Oracle CRS搭建应用的高可用集群
[] []
作者:IT168 梁涛  2008-01-31
内容导航:
第1页:前言:CRS的简介和由来第2页:一、准备工作:软件安装,数据库创建第3页:第3页 第4页:三、Oracle 集群软件的资源的管理第5页:总结
五、总结 - 及其他说明/TIPS/文中提到的有用脚本:
从上面的配置及测试我们可以看到,只要掌握了应用程序的启动、关闭、检查的方法,我们就完全可以
利用Oracle CRS来搭建一般应用程序的高可用集群,从而保证了业务的连续性。
1.简单错误处理:如果在实施或测试过程中命令失败,或者有错误需要回退状态,
或者删除资源及相关信息,可以使用下面的几个命令:
crs_stop -f db
crs_unregister db
crs_profile -delete db
错误二:我在上面启动虚拟IP资源的时候报错:
root@rac01 # crs_start –all
….
Attempting to start `havip` on member `rac01`
`havip` on member `rac01` has experienced an unrecoverable failure.
Human intervention required to resume its availability.
…..
查看crs日志:
2008-01-10 17:30:22.526: [ CRSRES][1580] startRunnable: setting CLI values
2008-01-10 17:30:22.527: [ CRSRES][1580] Attempting to start `dg` on member `rac01`
2008-01-10 17:30:22.589: [ CRSRES][1581] startRunnable: setting CLI values
2008-01-10 17:30:22.629: [ CRSRES][1581] Attempting to start `havip` on member `rac01`
2008-01-10 17:30:22.688: [ CRSAPP][1581] StartResource error for havip error code = 1
2008-01-10 17:30:22.749: [ CRSAPP][1581] StopResource error for havip error code = 1
2008-01-10 17:30:22.757: [ CRSRES][1581] X_OP_StopResourceFailed : Stop Resource failed
(File: rti.cpp, line: 1796

2008-01-10 17:30:22.758: [ CRSRES][1581][ALERT] `havip` on member `rac01` has experienced an ...
2008-01-10 17:30:22.758: [ CRSRES][1581] Human intervention required to resume its availability.
2008-01-10 17:30:23.211: [ CRSRES][1580] Start of `dg` on member `rac01` succeeded.


这时候发现在输入网卡时候不小心输入了错误的网卡名称,公共网卡名称应该是e1000g0,
结果使用的bge0,使用下面命令修改
root@rac01 # crs_profile -update havip -o oi=e1000g0
再次启动资源成功。
2.文中的sysdba命令是我习惯用的alias,需要在oracle的.bash_profile或者.profile中添加:
alias sysdba="sqlplus '/as sysdba'"
文中的命令crs_start/crs_stop/crs_profile/crs_register等命令位于$CRS_HOME/bin/目录下,
为了使用方面,一般需要手工将该PATH添加到root和oracle的PATH环境变量中去。
3.磁盘组的启动、关闭、监测脚本db.sh
#!/bin/sh
# *****************************************************************
# shahand 2008-1-3

SCRIPT=$0
ACTION=$1 # Action (start, stop or check)

DG_NAME=oradata12
VOL_NAME=oradata
case $1 in
'start')
/usr/sbin/vxdg -tfC import $DG_NAME;
/usr/sbin/vxvol -g $DG_NAME startall
echo "Resource STARTED"
;;
'stop')
/usr/sbin/vxvol -g $DG_NAME stopall;
/usr/sbin/vxdg deport $DG_NAME
echo "Resource STOPPED"
;;
'check')
if [[ `/usr/sbin/vxprint -v -g $DG_NAME |grep $VOL_NAME|wc -c` -eq 0 ]]
then
exit 1
else
exit 0
fi
echo "Resource CHECKED"
;;
*)
echo "usage: $0 {start stop check}"
;;
esac
exit 0

4.文件系统的启动、关闭、监测脚本fs.sh
#!/bin/sh
# *****************************************************************
# shahand 2008-1-3
SCRIPT=$0
ACTION=$1 # Action (start, stop or check)
DG_NAME=oradata12
VOL_NAME=oradata
case $1 in
'start')
mount -F vxfs /dev/vx/dsk/$DG_NAME/$VOL_NAME /oradata
echo "Resource STARTED"
;;
'stop')
umount /oradata
echo "Resource STOPPED"
;;
'check')
if [[ `mount |grep $VOL_NAME |wc -c` -eq 0 ]]
then
exit 1
else
exit 0
fi
echo "Resource CHECKED"
;;
*)
echo "usage: $0 {start stop check}"
;;
esac
exit 0
5. 数据库的启动、关闭、监测脚本db.sh
#!/bin/sh
# *****************************************************************
# ## shahand 2008-1-3
# *****************************************************************
# /oracle/crs/crs/public/db.sh
SCRIPT=$0
ACTION=$1 # Action (start, stop or check)
CRS_HOME=/oracle/crs/
case $1 in
'start')
su - oracle -c "export ORACLE_SID=orcl;
sqlplus /nolog <connect /as sysdba;
startup;
exit;
EOF"
exit $?
;;
'stop')
su - oracle -c "export ORACLE_SID=orcl;
sqlplus /nolog <connect /as sysdba;
alter system checkpoint;
shutdown immediate;
exit;
EOF1"
exit $?
;;
'check')
if [ ! -f $CRS_HOME/crs/public/db.sql ]
then
echo "connect /as sysdba;" > $CRS_HOME/crs/public/db.sql;
echo "spool /tmp/db_check.out;" >>$CRS_HOME/crs/public/db.sql;
echo "select status from v\$instance ;" >> $CRS_HOME/crs/public/db.sql;
echo "exit;" >> $CRS_HOME/crs/public/db.sql;
fi
su - oracle -c "export ORACLE_SID=orcl;sqlplus /nolog @$CRS_HOME/crs/public/db.sql";
if [ `cat /tmp/db_check.out|grep OPEN|wc -c` -eq 0 ]
then
exit 1
else
exit 0
fi
;;
*)
echo "usage: $0 {start stop check}"
;;
esac
exit 0
5. 监听的启动、关闭、监测脚本lsnr.sh    #!/bin/sh
# *****************************************************************
# ## shahand 2008-1-3
# *****************************************************************
# /oracle/crs/crs/public/lsnr.sh

SCRIPT=$0
ACTION=$1 # Action (start, stop or check)

case $1 in
'start')
su - oracle -c "lsnrctl start"
exit $?
;;

'stop')
su - oracle -c "lsnrctl stop"
exit $?
;;
'check')
if [ `ps -ef|grep tnslsnr |wc -c` -eq 0 ]
then
echo "bad";
exit 1
else
echo "good";
exit 0
fi
;;
*)
echo "usage: $0 {start stop check}"
;;
esac
exit 0

7.Oracle集群软件的安装响应文件crs.rsp ,其中在####之前需要修改   ORACLE_HOME="/oracle/crs"
sl_tableList={"rac01:rac01-priv:rac01-vip:N:Y","rac02:rac02-priv:rac02-vip:N:Y"}
ret_PrivIntrList={"e1000g0:10.198.88.0:1","e1000g1:192.168.0.0:2"}
n_storageTypeOCR=2
s_ocrpartitionlocation="/oracle/ocrfile1"
s_ocrMirrorLocation=""
n_storageTypeVDSK=2
s_votingdisklocation="/oracle/vdfile1"
s_OcrVdskMirror1RetVal=""
s_VdskMirror2RetVal=""
ORACLE_HOME_NAME="OraCRS10ghome1"
################# complete modify #####################
RESPONSEFILE_VERSION=2.2.1.0.0
UNIX_GROUP_NAME="oinstall"
FROM_LOCATION="../stage/products.xml"
NEXT_SESSION_RESPONSE=
TOPLEVEL_COMPONENT={"oracle.crs","10.2.0.1.0"}
DEINSTALL_LIST={"oracle.crs","10.2.0.1.0"}
SHOW_SPLASH_SCREEN=false
SHOW_WELCOME_PAGE=false
SHOW_NODE_SELECTION_PAGE=false
SHOW_SUMMARY_PAGE=false
SHOW_INSTALL_PROGRESS_PAGE=false
SHOW_CONFIG_TOOL_PAGE=false
SHOW_XML_PREREQ_PAGE=false
SHOW_ROOTSH_CONFIRMATION=true
SHOW_END_SESSION_PAGE=false
SHOW_EXIT_CONFIRMATION=false
NEXT_SESSION=false
NEXT_SESSION_ON_FAIL=false
SHOW_DEINSTALL_CONFIRMATION=false
SHOW_DEINSTALL_PROGRESS=false
RESTART_SYSTEM=false
RESTART_REMOTE_SYSTEM=false
REMOVE_HOMES=
ORACLE_HOSTNAME=
SHOW_END_OF_INSTALL_MSGS=false
COMPONENT_LANGUAGES={"en"}
s_clustername="crs"
CLUSTER_CONFIGURATION_FILE=""

8. Oracle数据库软件的安装响应文件db.rsp,其中在####之前需要修改

CLUSTER_NODES={}
ORACLE_HOME_NAME="OraDB10ghome1"
ORACLE_HOME="/oracle/10g"
##########################################################
FROM_LOCATION="../stage/products.xml"
RESPONSEFILE_VERSION=2.2.1.0.0
UNIX_GROUP_NAME="oinstall"
FROM_LOCATION_CD_LABEL=
SHOW_WELCOME_PAGE=true
SHOW_CUSTOM_TREE_PAGE=true
SHOW_COMPONENT_LOCATIONS_PAGE=true
SHOW_SUMMARY_PAGE=true
SHOW_INSTALL_PROGRESS_PAGE=true
SHOW_REQUIRED_CONFIG_TOOL_PAGE=true
SHOW_CONFIG_TOOL_PAGE=true
SHOW_RELEASE_NOTES=true
SHOW_ROOTSH_CONFIRMATION=true
SHOW_END_SESSION_PAGE=true
SHOW_EXIT_CONFIRMATION=true
NEXT_SESSION=false
NEXT_SESSION_ON_FAIL=true
NEXT_SESSION_RESPONSE=
DEINSTALL_LIST={"oracle.server","10.2.0.1.0"}
SHOW_DEINSTALL_CONFIRMATION=true
SHOW_DEINSTALL_PROGRESS=true
ACCEPT_LICENSE_AGREEMENT=false
TOPLEVEL_COMPONENT={"oracle.server","10.2.0.1.0"}
SHOW_SPLASH_SCREEN=true
SELECTED_LANGUAGES={"en"}
COMPONENT_LANGUAGES={"en"}
INSTALL_TYPE="Enterprise Edition"
sl_superAdminPasswds=
sl_dlgASMCfgSelectableDisks={}
s_superAdminSamePasswd=
s_globalDBName="orcl"
s_dlgASMCfgRedundancyValue="2 (Norm)"
s_dlgASMCfgNewDisksSize="0"
s_dlgASMCfgExistingFreeSpace="0"
s_dlgASMCfgDiskGroupName="DATA"
s_dlgASMCfgDiskDiscoveryString=""
s_dlgASMCfgAdditionalSpaceNeeded=" MB"
s_dbSelectedUsesASM=""
s_dbSIDSelectedForUpgrade=""
s_dbRetChar=""
s_dbOHSelectedForUpgrade=""
s_ASMSYSPassword=
n_performUpgrade=0
n_dlgASMCfgRedundancySelected=2
n_dbType=1
n_dbSelection=0
b_useSamePassword=false
b_useFileSystemForRecovery=true
b_receiveEmailNotification=false
b_loadExampleSchemas=false
b_enableAutoBackup=false
b_dlgASMShowCandidateDisks=true
b_centrallyManageASMInstance=true
sl_dlgASMDskGrpSelectedGroup={" "," "," "," "}
s_dlgRBOUsername=""
s_dlgEMCentralAgentSelected="No Agents Found"
b_useDBControl=true
s_superAdminSamePasswdAgain=
s_dlgEMSMTPServer=""
s_dlgEMEmailAddress=""
s_dlgRBORecoveryLocation="/oracle/db/flash_recovery_area/"
n_upgradeDB=1
n_configurationOption=3c
sl_upgradableSIDBInstances={}
n_upgradeASM=0
sl_dlgASMCfgDiskSelections={}
s_ASMSYSPasswordAgain=
n_dbStorageType=0
s_rawDeviceMapFileLocation=""
sl_upgradableRACDBInstances={}
s_dlgRBOPassword=
b_stateOfUpgradeDBCheckbox=false
s_dbSid="orcl"
b_dbSelectedUsesASM=false
sl_superAdminPasswdsAgain=
s_mountPoint="/oracle/db/oradata/"
b_stateOfUpgradeASMCheckbox=false
oracle.assistants.server:OPTIONAL_CONFIG_TOOLS="{}"
oracle.has.common:OPTIONAL_CONFIG_TOOLS="{}"
oracle.network.client:OPTIONAL_CONFIG_TOOLS="{}"
oracle.sqlplus.isqlplus:OPTIONAL_CONFIG_TOOLS="{}"
oracle.sysman.console.db:OPTIONAL_CONFIG_TOOLS="{}"
varSelect=1
s_nameForOPERGrp="dba"
s_nameForDBAGrp="dba"

1