试验对象:重新部署整个应用环境,整个网站的运维,通过weblogic 集成oracle数据库及网站页面等信息,统一管理,为了方便日常启动操作,下面针对weblogic ,oracle编写一个启动/关闭script. ;
1、oracle 启动及关闭,关于oracle的这两个功能,涉及到oracle自身的启动脚本 ,在$ORACLE_HOME/bin下,dbstart /dbshut 即是;
2、先简单测试下该脚本是否可用,直接进入目录后运行 ./dbstart ,发现没有任何现象,ps -ef | grep oracle,也未发现oracle有启动;因此需要修改下oracle的配置文件,su - root 后,
vi /etc/oratab
可以查看到
*:/opt/oracle/product/9.2.0.4:N
ora920:/opt/oracle/product/9.2.0.4:N #这个跟自身的版本及安装oracle的路径有关
3、再将
ego:/opt/oracle/product/9.2.0.4:N 中的N改为 Y,保存文件退出即可
4、重新进入$ORACLE_HOME/bin,运行dbstart ,发现会提示
Can't find init file for Database "ora920".
Database "ego" NOT started. #这是因为没有找到initora920.ora的参数文件导致的,我的instance_name='ora920',知道是这个原因的话,那就自己创建一个pfile即可,可以通过进入oracle 运行SQL语句,create pfile=`$ORACLE_HOME`/dbs/initora920.ora from spfile;
Database "ego" NOT started. #这是因为没有找到initora920.ora的参数文件导致的,我的instance_name='ora920',知道是这个原因的话,那就自己创建一个pfile即可,可以通过进入oracle 运行SQL语句,create pfile=`$ORACLE_HOME`/dbs/initora920.ora from spfile;
或者直接在OS上使用重定向功能处理,这样的话会启动pfile文件,因此最简单及好的方法就是使用符号链接,指向到spfile即可,ln -s spfileora920.ora initora920.ora ;完毕后,再运行dbstart 即可正常启动数据库了;
5、接着就是关于dbshut了,刚开始可能发现不了问题,不过具体看其脚本,发现脚本里使用的是正常关机,即shutdown ,这样的话,若其他有用户登录上数据库就会很麻烦,需要等其他用户自动关闭,才可以关闭,可自己却及等着关闭数据库,怎么办?而这种情况的发生是很正常的,因此需要修改下该脚本,将后面的shutdown 全部改为shutdown immediate 关闭数据库
6、数据库处理完毕,下面就是weblogic了,这个相对简单些,若都安装好后,直接在startWeblogic.sh脚本里添加上用户及密码,再在自启动脚本上运行该脚本即可;
下面是整个应用软件的自启动/关闭script,相关方面若想适应更全面的突发事件,还需要进一步调整语句及完善,为了方便自己日后查阅,暂时先保存:
#! /bin/bash
# description : Oracle auto start / stop script
# 09/09/2010 auther : Aaron
echo "Please input follow's choose : (eg: 1 / start)"
echo " 1. start "
echo " 2. stop "
echo " 3. restart "
echo " 4. quit"
ORACLE_HOME=/u01/oracle
ORACLE_USER=oracle
read -p "the choose is : " choose
case "$choose" in
start | 1)
if [ ! -e $ORACLE_HOME/bin/dbstart ]; then
echo "Sorry ! dbstart doesn't exist , can't startup oracle "
exit 1
fi
echo "****************** Listener && Oracle Startup ******************"
sleep 3
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart"
echo "****************** Weblogic Startup ******************"
sleep 3
. /etc/profile
if [ ! -e /var/weblogic ]; then
mkdir /var/weblogic
fi
cd /app/bea/user_projects/mydomain/
nohup ./startWebLogic.sh | tee -a /var/weblogic/wl.log &
echo "Congratulations ! Application && Database have started successfully"
;;
stop | 2)
echo "****************** Weblogic Shutdown ******************"
pkill java
pkill startWebLogic
echo "****************** Oracle && Listener shutdown ******************"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"
echo "Congratulations ! Application && Database have stoped successfully"
;;
restart | 3)
echo "****************** Listener && Oracle Shutdown *****************"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"
echo "****************** Weblogic shutdown ******************"
pkill java
pkill startWeblogic
echo "Congratulations ! Application && Database have stoped successfully"
echo "****************** Listener && Oracle Startup ******************"
sleep 3
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart"
echo "****************** Weblogic Start ******************"
sleep 3
. /etc/profile
if [ ! -e /var/weblogic ]; then
mkdir /var/weblogic
fi
cd /app/bea/user_projects/mydomain/
nohup ./startWebLogic.sh | tee /var/weblogic/wl.log &
echo "Congratulations ! Application && Database have started successfully"
;;
* | quit | 4)
echo "Thank you for using this script. !"
exit 1
;;
esac
exit 1
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24095423/viewspace-673077/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24095423/viewspace-673077/