免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4605 | 回复: 19
打印 上一主题 下一主题

linux下oracle启动脚本的问题。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-02 09:17 |只看该作者 |倒序浏览
网上找到一脚本,有一处不明,特来请教!

脚本中写了一个查询oracle status的函数,我查了下linux好像没有status这个命令吧?
status_oracle() {
        status /oracle/product/10.1.0/bin/tnslsnr
        status /oracle/product/10.1.0/bin/oracle
}



哎,又有个问题。。。。。

oracle这个脚本放在/etc/init.d下面无法使用service oracle start来启动服务,但是可以直接
/etc/init.d/oracle start

[ 本帖最后由 dk.fung 于 2009-11-2 14:41 编辑 ]

论坛徽章:
1
寅虎
日期:2015-01-23 02:35:47
2 [报告]
发表于 2009-11-02 09:23 |只看该作者
linux下用$?来看上一个命令执行的状态

论坛徽章:
0
3 [报告]
发表于 2009-11-02 09:29 |只看该作者
原帖由 cuci 于 2009-11-2 09:23 发表
linux下用$?来看上一个命令执行的状态


晕,回答跟我的问题对不上。。。。

论坛徽章:
0
4 [报告]
发表于 2009-11-02 11:04 |只看该作者
原帖由 dk.fung 于 2009-11-2 09:17 发表
网上找到一脚本,有一处不明,特来请教!

脚本中写了一个查询oracle status的函数,我查了下linux好像没有status这个命令吧?
status_oracle() {
        status /oracle/product/10.1.0/bin/tnslsnr
    ...



status 不是命令的话,可能就是脚本内的一个函数,发上你全部的脚本来

论坛徽章:
0
5 [报告]
发表于 2009-11-02 11:20 |只看该作者
也感觉 status 应该是一个函数, 你 find 下文档内 第一处 status 出现在什么地方,然后贴过来

论坛徽章:
0
6 [报告]
发表于 2009-11-02 11:39 |只看该作者
上面两位说对了是/etc/init.d/functions里面的
#!/bin/bash
#chkconfig: 2345 98 01
#description: Oracle database server
#Starts the oracle database server
#

# processname: oracle

# Source function library.
. /etc/init.d/functions

test -x /oracle/product/10.1.0/bin/oracle || exit 0

RETVAL=0

start() {
# Check if oracle is already running
if [ ! -f /var/lock/subsys/oracle ]; then
prog="listener"
echo -n $"Starting $prog: "
su - oracle -c "lsnrctl start" >> /var/log/listener.log
RETVAL=$?
[ $RETVAL -eq 0 ] && success || failed
echo
prog="oracle"
echo -n $"Starting $prog: "
su - oracle -c "sqlplus / as sysdba" << EOF >>/var/log/oracle.log
startup
exit
EOF
RETVAL=$?
[ $RETVAL -eq 0 ] && success || failed
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/oracle || RETVAL=1
fi
return $RETVAL
}

stop() {
prog="listener"
echo -n $"Stopping $prog: "
su - oracle -c "lsnrctl stop" >> /var/log/listener.log
RETVAL=$?
[ $RETVAL -eq 0 ] && success || failed
echo
prog="oracle"
echo -n $"Stopping $prog: "
su - oracle -c "sqlplus / as sysdba" << EOF >>/var/log/oracle.log
shutdown immediate
exit
EOF
RETVAL=$?
[ $RETVAL -eq 0 ] && success || failed
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/oracle
return $RETVAL
}


restart() {
        stop
        start
}

reload() {
        restart
}

status_oracle() {
        status /oracle/product/10.1.0/bin/tnslsnr
        status /oracle/product/10.1.0/bin/oracle
}

case "$1" in
start)
        start
        ;;

stop)
        stop
        ;;

reload|restart)
        restart
        ;;

status)
        status_oracle
        ;;

*)
        echo $"Usage: $0 {start|stop|restart|status}"
        exit 1
esac
exit $?
exit $RETVAL

[ 本帖最后由 dk.fung 于 2009-11-2 11:40 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2009-11-02 11:42 |只看该作者
现在又个新问题,我执行这个脚本没反应,oracle起不了也不报错!不知道哪有问题

论坛徽章:
0
8 [报告]
发表于 2009-11-02 11:52 |只看该作者
原帖由 dk.fung 于 2009-11-2 11:42 发表
现在又个新问题,我执行这个脚本没反应,oracle起不了也不报错!不知道哪有问题


你怎么执行的?

试试 比如脚本名字 为 aa
执行 ./aa start


最好是把 aa   放到 /etc/init.d/  下面

然后,在 /etc/rc.d/rc3.d       /etc/rc.d/rc5.d/  下面建立链接,

然后, chkconfig 把 aa 加到自启动里

论坛徽章:
1
寅虎
日期:2015-01-23 02:35:47
9 [报告]
发表于 2009-11-02 11:59 |只看该作者
sorry,理解成你想看执行状态了。
sh -x 执行看看debug信息,就应该知道哪里出问题

论坛徽章:
0
10 [报告]
发表于 2009-11-02 12:01 |只看该作者
OK,谢谢各位。是我自己把脚本里有两个地方改错了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP