在redhat linux 上设定oracle自动启动 系统无法启动的处理过程

环境:
本机为 win7 32 位操作系统,安装了 Microsoft Virtual PC vmware 的虚拟机,在 vmware 虚拟机里面安装的是 redhat linux 4.3 的企业版,里面安装的 oracle 10g  
根据网上的说法,做了的自动启动过程,遇到几个问题:
首先建立好系统服务一定要先测试下,还要把等系统服务加上,可以从外面连接到该机器上,我这里就是遇到了问题,结果开机后机器正常启动过程没什么问题,也看到启动我追加的服务的信息,就停在那里,也不再出现什么输入登录用户的界面了,屏幕就变成了灰白色,鼠标也变大了,然后什么都不显示了,也进入不了命令行的模式。我是菜鸟,在气愤脆弱的同时(也许用词不对,但真是着急),也总觉得应该有什么命令终止启动的自动执行过程,或者进入到命令行的方式。偏偏我用的是,默认没有命令(需使用程序和功能里面,自行去添加,加客户端即可),后来上添加完了命令之后,同时又更改了我网络的设定,原来本机能连接该的网络死活也不通了,从外边访问虚拟机的想法也无法实施了。
查了网上的文档,说通过可以进入单用户方式,即方式,默认的启动方式都是,进入。在启动过程中看了下,显示按任意键可以进入,但是什么键都不起作用。还有说快速,大小写无关,还咨询了下某国内的工程师,说是可以,可是在我的虚拟机上,就是死活都进入不了,不论我按什么键。倒数读秒的时间只有秒,我启动了次也不行,看网上写的可以修改一些设置,启动时显示,或者默认进入多用户,但是这一切我都无法进行。还看到读秒过后,有提示说按可以进入交互启动模式,也是按了次后才进入交互,发现确实是在我添加的服务后,系统就显示异常了,但是我仍然不能进入命令行模式。折腾了多分钟后,才不知道怎么终于进入了的菜单,赶紧找到一行,按键编辑该引导菜单选项,在后面添加,然后按启动机器,即进入命令行模式,先是的似乎是,具体什么忘记了。
据说进入〉提示符后,实际输入也会出现内核信息,或者自己看启动过程也能读到相应信息,但是我看到这些信息都不用自己修改,只是找到相应的行,在后面添加就可以了。
赶紧在命令行上输入自行添加的服务名,然后赶紧按网上说的,将项,将其注释掉,同时看到有行设置,为保险起见,我修改为秒;同时更改系统缺省运行级,防止无法启动不能进入系统。方法为:编辑文件,更改引导级别为,即将:中的改为,默认为进入注意,这些都是系统设置文件,为防止更改出现问题,修改之前请做备份
同时赶紧设置网络的地址,给定地址,使其和主机在一个网段上,之前为自动获取的,等内部网址(与虚拟网卡在同一网段),还出现过主机名突然变成的情况,后续再写。然后安装包,在第四块盘上。系统默认只安装了包。测试网络已和主机连上,也可以连接。
  此时测试自行添加的服务:
#cd /etc/init.d
两种方式测试服务:
# sh oradbstart stop  或者#./oradbstart stop  
  不可以直接敲命令执行,如果出错,则继续调试,直到功能可以正常进行为止。
    
/etc/rc.d/init.d 下建立脚本文件,其中 shell 里面的 $0 是指程序名   $1 是指参数名 可以跟着 start stop restart/reload
#!/bin/bash   
#chkconfig:345 99 10  
#description:start or shut service script. for  oracle database
#/etc/rc.d/init.d/oradbstart 
export ORACLE_BASE=/home/app/oracle
export ORACLE_HOME=/home/app/oracle/product/10.2.0/db_1
export ORACLE_SID=lucy0
export PATH=$PATH;$ORACLE_HOME/bin 
case "$1" in
start) 
echo "----starting oracle ---">>/var/log/oradbstartlog
su - oracle -c $ORACLE_HOME/bin/dbstart
su - oracle -c "$ORACLE_HOME/bin/lsnrctl start"
touch /var/lock/subsys/oradbstart
echo "start oracle succeeded ">>/var/log/oradbstartlog 
echo "OK"
;; 
stop) 
echo "---shutdown oracle ----">>/var/log/oradbstartlog
su - oracle -c $ORACLE_HOME/bin/dbshut
su - oracle -c "$ORACLE_HOME/bin/lsnrctl stop"
rm -f /var/lock/subsys/oradbstart 
echo "shutdown oracle succeeded ">>/var/log/oradbstartlog 
echo "OK"
;;
reload/restart) 
$0 stop 
$0 start
;;
*)   # CASE其他值
echo "usage :`basename $0 `  start|stop|restart|reload"
exit 1 
esac  # the end sub statement of the case statement
exit 0
 
其中的#chkconfig:后面定义的使启动服务的运行级别(例子中使2345启动改服务),以及关闭和启动服务的顺序.
 
需要注意几点
1、第一行#!/bin/bash  !前面不可加. 
2、调用监听程序的时候,后面的命令行要加””,否则进入监听的命令提示符,得自己手动退出。
命令如下su - oracle -c "$ORACLE_HOME/bin/lsnrctl start"
3、反引号 ` 是用做什么来着????  反引号(`)这个字符所对应的键一般位于键盘的左上角,不要将其同单引号(')混淆。反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分。 
4自己是什么shell 可以用命令查看下
[root@myredhat ~]# echo $SHELL
/bin/bash
5、使用chmod oracle 添加该服务的执行权限以及对文件的操作权限
Chmod +x /etc/rc.d/init.d/oradbstart
Chown  oracle:Oinstall /var/log/oradbstartlog 

修改完系统的设置,再次启动机器时, 会显示GRUB菜单:

Rehat....  直接回车即可,会提示 runlevel:, 在此输入运行的级别,在显示启动自己的服务时,可输入参数 start   
 
  
if [ $USER = "oracle" ]; then
   if [ $SHELL = "/bin/ksh" ]; then
      ulimit -p 16384
      ulimit -n 65536
   else
      ulimit -u 16384 -n 65536
   fi
fi
 
启动时候显示

oradbstart: line 9: /home/app/oracle/product/10.2.0/db_1/bin: is a directory

/etc/profile: line 53: [/bin/bash: No such file or directory
切换到Oracle 用户,也显示:
[root@myredhat ~]# su - oracle
-bash: [/bin/bash: No such file or directory
至此,设置oracle 自动启动成功,但似乎还要输入参数,如何能预先设置给定的参数呢?原来以为如果是启动该服务,S99oradbstart ,是不自动选择START  关机的时候自动选择STOP,后来测试了几次,似乎不是这样的。还有Oracle默认的dbstart  dbshut 不起作用! 

未完待续

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7177735/viewspace-719971/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7177735/viewspace-719971/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值