123
返回列表 发新帖
楼主: ZALBB

[Tips] 告诉大家一个解决问题的好方法

[复制链接]
招聘 : 数据库管理员
论坛徽章:
66
ITPUB元老
日期:2005-07-16 18:49:11授权会员
日期:2005-10-30 17:05:33ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44现任管理团队成员
日期:2011-05-07 01:45:08版主3段
日期:2012-05-15 15:24:11
21#
发表于 2004-8-30 10:06 | 只看该作者
oracle与weblogic自动启动与停止


http://www.itpub.net/showthread.php?s=&threadid=214915


最近做开发时,发觉每次重新启动服务器时oracle数据库若没有关闭,则必须先关闭后在重新启动redhat advance server,oracle才能够正常运行。感觉这样麻烦,想到能否使数据库与web服务器与操作系统一同关闭与启动。在网上查找了一下相关资料,只找到一篇“Oracle Database HOWTO 自动启动及停止.htm”但是没有找到有关weblogic自动启动与停止的文章。经过摸索,我最初的想法实现了,因此想把它写出来,与大家交流。
服务器环境:
RedHat Advance Server2.1
Oracle 9.2.2 for Linux
Weblogic7.0 for Linux
一、 oracle自动启动与停止
1、 修改Oracle系统配置文件/etc/oratab
/etc/oratab 格式为: SID:ORACLE_HOME:AUTO
把AUTO域设置为Y(大写),只有这样,oracle 自带的dbstart和dbshut才能够发挥作用。我的为:
ora9i:/home/oracle/ora/products/9.2.0:Y
2、 编写服务脚本:如下
#!/bin/bash

case "$1" in
start)
echo "Starting Oracle Databases ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Starting Oracle Databasee as part of system up." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - oracle -c "dbstart" >> /var/log/oracle
echo "Done."
echo "Starting Oracle Listeners ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Starting Oracle Listeners as part of system up." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - oracle -c "lsnrctl start" >> /var/log/oracle
echo "Done."
echo ""
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Finished." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
touch /var/lock/subsys/oracle

;;
stop)
echo "Stoping Oracle Listeners ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Stoping Oracle Listener as part of system down." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - oracle -c "lsnrctl stop" >> /var/log/oracle
echo "Done."
rm -f /var/lock/subsys/oracle
echo "Stoping Oracle Databases ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Stoping Oracle Databases as part of system down." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - oracle -c "dbshut" >>/var/log/oracle
echo "Done."
echo ""
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Finished." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle

;;
restart)
$0 stop
$0 start

;;
*)
echo "Usage: oracle {start|stop|restart}"
exit 1
esac

将脚本命名为oracle,保存在/etc/rc.d/init.d下
改变文件属性:chmod 755 oracle

注意:在windows下编辑此文件时有DOS格式字符导致在linux下不能够正常运行,建议用gedit 或用 vi编辑

3、建立服务连接:
系统启动时启动数据库,我们需要以下连结∶
--------------------------------------------------------------------------------
$ ln -s ../init.d/oracle /etc/rc.d/rc2.d/S99oracle
$ ln -s ../init.d/oracle /etc/rc.d/rc3.d/S99oracle
$ ln -s ../init.d/oracle /etc/rc.d/rc5.d/S99oracle #rc4.d unused


--------------------------------------------------------------------------------

要在重新启动时停止数据库,我们需要以下连结∶


--------------------------------------------------------------------------------

$ ln -s ../init.d/oracle /etc/rc.d/rc0.d/K01oracle # 停止
$ ln -s ../init.d/oracle /etc/rc.d/rc6.d/K01oracle # 重新启动
二、weblogic自动启动与停止
假设weblogic安装在/home/weblogic/bea下。
1、 编写服务脚本:如下
#!/bin/bash
#
#################FUNCTION#############
#
# AutoStart Weblogic
# AutoStop Weblogic
#
#####################################
#
# Created by ZhouYS 2003-11-26
# Wellhope Information Technology Co.,Ltd
# PUJIANG Science Park(浦江科学园)
#
shutdownweblogic()
{
cd /
# make temp work dir ,you can create it in /tmp
mkdir -p /home/weblogic/zhouys
#
cd /home/weblogic/zhouys
#find weblogic main process
ps -aux | grep /home/weblogic >tmp01
#
awk '{print $2}' tmp01 | sort > tmp02
#produce kill-main-process script
echo "kill -9 " `sed -n '1p' tmp02` > tmp03
#
chmod 755 tmp03
# kill weblogic
./tmp03
cd /home/weblogic/
sleep 3
rm -rfv zhouys
}

case "$1" in
start)
echo "Starting Weblogic ... "
echo "-------------------------------------------------" >> /var/log/weblogic
date +" %T %a %D : Starting Weblogic as part of system up." >> /var/log/weblogic
echo "-------------------------------------------------" >> /var/log/weblogic
cd /home/weblogic/bea/user_projects/mydomain/ >> /dev/null
. startWebLogic.sh & >> /var/log/weblogic
echo "Done."
echo ""
echo "-------------------------------------------------" >> /var/log/weblogic
date +" %T %a %D : Finished." >> /var/log/weblogic
echo "-------------------------------------------------" >> /var/log/weblogic
touch /var/lock/subsys/weblogic

;;
stop)
echo "Stopping Weblogic ... "
echo "-------------------------------------------------" >> /var/log/weblogic
date +" %T %a %D : Stopping Weblogic as part of system down." >> /var/log/weblogic
echo "-------------------------------------------------" >> /var/log/weblogic
shutdownweblogic
echo "Done."
echo ""
echo "-------------------------------------------------" >> /var/log/weblogic
date +" %T %a %D : Finished." >> /var/log/weblogic
echo "-------------------------------------------------" >> /var/log/weblogic

;;
restart)
$0 stop
#sleep 2 sec to stop all weblogic-process
sleep 2
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac

将脚本命名为weblogic,保存在/etc/rc.d/init.d下
改变文件属性:chmod 755 weblogic

注意:在windows下编辑此文件时有DOS格式字符导致在linux下不能够正常运行,建议用gedit 或用 vi编辑, shutdownweblogic函数中没有加入错误控制,各位可以自己完善。
2、 建立服务连接:
要在重新启动时停止weblogic,我们需要以下连结∶
[root@js-oracle init.d]# ln -s ../init.d/weblogic /etc/rc.d/rc0.d/K01weblogic
[root@js-oracle init.d]# ln -s ../init.d/weblogic /etc/rc.d/rc6.d/K01weblogic

系统启动时启动weblogic,我们需要以下连结∶
[root@js-oracle init.d]# ln -s ../init.d/weblogic /etc/rc.d/rc2.d/S99weblogic
[root@js-oracle init.d]# ln -s ../init.d/weblogic /etc/rc.d/rc3.d/S99weblogic
[root@js-oracle init.d]# ln -s ../init.d/weblogic /etc/rc.d/rc5.d/S99weblogic



以上在RedHat Advance Server2.1版上配置 level 4 保留unused

三、 解释:
linux启动时:
图形界面 :自动调用/etc/rc.d/rc5.d下的符号连接名称以S开头(意为:start/启动)的脚本文件所指的服务,并自动传递命令行参数 start。
Linux关闭时:
图形界面 :自动调用/etc/rc.d/rc5.d下的符号连接名称以K开头(意为:kill/关闭)的文件所指的服务,并自动传递命令行参数 stop。

其它运行级别与此类似(具体可以参照/etc/rc.d/rc脚本)


e-mail:jccz_zys@163.net
qq:15210449



#!/bin/sh

# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.

ORA_HOME=/oracle/product/10.1
ORA_OWNER=oracle
LOG=$ORA_HOME/startup.log

touch $LOG
chmod a+r $LOG

if [! -f $ORA_HOME/bin/dbstart]
then
     echo "Oracle startup: cannot start"
     exit
fi

#case "$1" in
#     'start')
#
#          # Start the Oracle databases:
#          # The following command assumes that the oracle login
#          # will not prompt the user for any values
#
#     su - $ORA_OWNER -c $ORA_HOME/bin/dbstart &
#     ;;
#
#     'stop')
#
#          # Stop the Oracle databases:
#          # The following command assumes that the oracle login
#          # will not prompt the user for any values
#
#     su - $ORA_OWNER -c $ORA_HOME/bin/dbshut &
#     ;;
#
#esac

case $1 in
'start')
        echo "$0: starting up" >> $LOG
        date >> $LOG
        # Start Oracle Net
        if [ -f $ORA_HOME/bin/lsnrctl ] ;
        then
                echo "starting Oracle Net listener"
                su - $ORA_OWNER -c '/oracle/product/10.1/bin/lsnrctl start LISTENER1'>> $LOG 2>&1 &
        fi
        echo "starting Oracle databases"
        su - $ORA_OWNER -c $ORA_HOME/bin/dbstart >> $LOG 2>&1
        ;;
'stop')
        echo "$0: shutting down" >> $LOG
        date >> $LOG
        # Stop Oracle Net
        if [ -f $ORA_HOME/bin/lsnrctl ] ;
        then
                echo "stopping Oracle Net listener"
                su - $ORA_OWNER -c '/oracle/product/10.1/bin/lsnrctl stop LISTENER1'>> $LOG 2>&1
        fi
        echo "stopping Oracle databases"
        su - $ORA_OWNER -c $ORA_HOME/bin/dbshut >> $LOG 2>&1
        ;;
*)
        echo "usage: $0 {start|stop}"
        exit
        ;;
esac
#
exit--------------------------------------------------------------------------------

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
22#
发表于 2004-8-30 11:25 | 只看该作者
是的,可见ITPUB的知名度非同一斑,高手如林

使用道具 举报

回复
论坛徽章:
2
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34
23#
发表于 2005-2-17 11:25 | 只看该作者
这是个好贴哦

使用道具 举报

回复
招聘 : 系统架构师
论坛徽章:
372
双子座
日期:2015-08-18 12:18:21摩羯座
日期:2015-09-20 17:10:27秀才
日期:2015-09-21 09:46:16秀才
日期:2015-09-21 11:16:42秀才
日期:2015-10-08 17:57:58天枰座
日期:2015-10-28 18:28:29秀才
日期:2015-11-11 09:48:44秀才
日期:2015-11-11 10:07:14秀才
日期:2015-11-11 10:22:49秀才
日期:2015-09-11 10:43:06
24#
发表于 2005-2-17 13:23 | 只看该作者
呵呵,
偶一直这么用的

使用道具 举报

回复
论坛徽章:
10
授权会员
日期:2005-10-30 17:05:332010年世界杯参赛球队:科特迪瓦
日期:2010-04-15 12:20:472010年世界杯参赛球队:智利
日期:2010-04-13 17:15:21生肖徽章2007版:蛇
日期:2009-09-24 13:54:11生肖徽章2007版:龙
日期:2009-09-22 13:56:012009日食纪念
日期:2009-07-22 09:30:00生肖徽章2007版:龙
日期:2009-02-10 13:45:15生肖徽章2007版:狗
日期:2009-02-03 13:53:34会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28
25#
发表于 2005-2-17 14:29 | 只看该作者
最初由 TsuLeon 发布
[B]另外使用google并将结果绑定pub的方法是在搜索关键字后添加 site:itpub.net [/B]


用这种方法试一下,果然不错!

使用道具 举报

回复
论坛徽章:
10
授权会员
日期:2005-10-30 17:05:332010年世界杯参赛球队:科特迪瓦
日期:2010-04-15 12:20:472010年世界杯参赛球队:智利
日期:2010-04-13 17:15:21生肖徽章2007版:蛇
日期:2009-09-24 13:54:11生肖徽章2007版:龙
日期:2009-09-22 13:56:012009日食纪念
日期:2009-07-22 09:30:00生肖徽章2007版:龙
日期:2009-02-10 13:45:15生肖徽章2007版:狗
日期:2009-02-03 13:53:34会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28
26#
发表于 2005-2-17 14:52 | 只看该作者
最初由 TsuLeon 发布
[B]另外使用google并将结果绑定pub的方法是在搜索关键字后添加 site:itpub.net [/B]


用这种方法包装一下就可以搜索本站,那不是不用花那么大力气自己去做吗!

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
27#
发表于 2005-2-18 09:46 | 只看该作者
感谢斑竹们的辛勤劳动!
本来俺也想向斑竹的方向努力试试(呵呵,水平差得太远!)
不过想想,还是喂马,劈柴吧。。。,真的很辛苦啊!(不过也很有趣!)

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表