建站学 - 轻松建站从此开始!

建站学-个人建站指南,网页制作,网站设计,网站制作教程

当前位置: 建站学 > 数据库 > Oracle教程 >

解密在Linux系统下怎么将Oracle安装为服务(2)

时间:2011-03-31 08:22来源: 作者: 点击:
#!/bin/bash # chkconfig: 345 80 10 # description: Startup Script for oracle Databases # /etc/rc.d/init.d/oracle export ORACLE_BASE=/u01/oracle export ORACLE_HOME=/u01/oracle/product export ORACLE_SID


#!/bin/bash 
# chkconfig: 345 80 10 
# description: Startup Script for oracle Databases 
# /etc/rc.d/init.d/oracle 
export ORACLE_BASE=/u01/oracle 
export ORACLE_HOME=/u01/oracle/product 
export ORACLE_SID=pa
export PATH=$PATH:$ORACLE_HOME/bin 
ORA_OWNR="oracle"
# if the executables do not exist -- display error 
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ] 
then 
echo "oracle startup: cannot start" 
exit 1 
fi 
# depending on parameter -- startup, shutdown, restart 
# of the instance and listener or usage display 
case "$1" in 
start) 
# oracle listener and instance startup 
echo -n "Starting oracle: " 
su - $ORA_OWNR -c "$ORACLE_HOME/bin/dbstart" 
touch /var/lock/oracle 
su - $ORA_OWNR -c "$ORACLE_HOME/bin/emctl start dbconsole" 
su - $ORA_OWNR -c "$ORACLE_HOME/bin/isqlplusctl start" 
echo "OK" 
;; 
stop) 
# oracle listener and instance shutdown 
echo -n "Shutdown oracle: " 
su - $ORA_OWNR -c "$ORACLE_HOME/bin/emctl stop dbconsole" 
su - $ORA_OWNR -c "$ORACLE_HOME/bin/isqlplusctl stop" 
su - $ORA_OWNR -c "$ORACLE_HOME/bin/dbshut" 
su - $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop" 
rm -f /var/lock/oracle 
echo "OK" 
;; 
reload|restart) 
$0 stop 
$0 start 
;; 
*) 
echo "Usage: `basename $0` start|stop|restart|reload" 
exit 1 
esac 
exit 0

脚本2(只启动数据库和监听)

以下红色字体的3行是必需的

345:定义运行级别

80:开机时服务启动优先级(数字越小启动越早)

10:关机时服务停止优先级(数字越小关闭越早)

#!/bin/bash 
# chkconfig: 345 80 10 
# description: Startup Script for oracle Databases 
# /etc/rc.d/init.d/oracle 
export ORACLE_BASE=/u01/oracle 
export ORACLE_HOME=/u01/oracle/product 
export ORACLE_SID=pa
export PATH=$PATH:$ORACLE_HOME/bin 
case "$1" in 
start) 
su oracle -c $ORACLE_HOME/bin/dbstart 
touch /var/lock/oracle 
echo "OK" 
;; 
stop) 
echo -n "Shutdown oracle: " 
su oracle -c $ORACLE_HOME/bin/dbshut 
rm -f /var/lock/oracle 
echo "OK" 
;; 
*) 
echo "Usage: 'basename $0' start|stop" 
exit 1 
esac 
exit 0
 

保存退出。

打开终端执行:

$su - root 
#chown oracle.oinstall /etc/rc.d/init.d/oracle 
#chmod 775 /etc/rc.d/init.d/oracle

然后执行:
#chkconfig --add oracle

或者运行如下命令
#chkconfig --level 345 oracle on 
#chkconfig --list oracle
正常输出:

oracle 0:off 1:off 2:off 3:on 4:on 5:on 6:off

5. 检查

根据上面的运行结果,当相应的运行级别为on时(例如:5:on),在对应的/etc/rc.d/rcN.d(例如:和

5:on对应的是:/etc/rc.d/rc5.d)下面会生成一个文件:S99oradbstart,使用vi S99oradbstart打开

该文件,可以看到该文件的内容和/etc/rc.d/init.d/oradbstart内容相同,表示配置成功,其实

S99oradbstart是一个到/etc/rc.d/init.d/oradbstart的链接,我们可以使用file命令来查看:
$file /etc/rc.d/rc5.d/S99oradbstart 
S99oradbstart:symbolic link to '../init.d/oradbstart

这样开机后,oracle服务将自启动。

也可以手动控制服务运行:

#service oracle start   启动

#service oracle stop    关闭

$ps -ef | grep ora 查看oracle相关的进程是否启动了

6. 一点说明:

6.1 脚本文件中的:# chkconfig: 345 99 10

指出3,4,5级别启动这个服务,99是在相应的/etc/rc.d/rcN.d(N为前面指定的级别,这里是345)目录下生成的链接文件的序号(启动优先级别)S99oradbstart,10为在除前面指出的级别对应

的/etc/rc.d/rcN.d(N为除345之外的级别)目录生成的链接文件的序号(服务停止的优先级别)

K10oradbstart。

6.2 命令说明:

ps:监控后台进程

-e 显示所有进程。

-f 全格式。

-h 不显示标题。

   -l 长格式。

-w 宽输出。

grep:是linux下用于搜索输出内容中所含内容的一个命令。

1.例如我要搜索名为aaa.txt中的一串字符"bbb",可以用

cat aaa.txt|grep bbb

2.我要搜索当前目录含有bb的文件,可以用

ls |grep bb

例:ps -efw | grep LISTEN | grep -v grep:查看含有LISTEN的监听,除去含有grep的监听。

6.3 chkconfig:功能说明

检查,设置系统的各种服务。

语法:chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset]

(责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片