| |
以前做过Linux下Oracle 10g的自启动。基于版本是RedHat AS,CentOS其实都是一样的,添加了自启动脚本,非常方便,用chkconfig可以添加后,调整启动状态。下面说一下AIX下的自启动问题。

0:默认安装好后Oracle的启动脚本dbstart会报一个错误监听,咱们先搞定它。如下:

Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr

这点和linux下安装结果一样,修改如下:

su - oracle
vi `which dbstart`
找到ORACLE_HOME_LISTNER,修改为如下的样子
ORACLE_HOME_LISTNER=$ORACLE_HOME


1:修改/etc/oratab,将“N”改为“Y”,使之支持开机启动。如下:

glfsid:/home/oracle/OraHome_1:Y


2:创建启动脚本,并赋予相关权限

-bash-3.00$ touch /etc/rc.oracle
-bash-3.00$ chmod 700 /etc/rc.oracle
-bash-3.00$ chown oracle.oinstall /etc/rc.oracle
-bash-3.00$ vi /etc/rc.oracle
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=$ORACLE_BASE/OraHome_1
export ORACLE_PATH=$ORACLE_HOME/dbs
export ORA_DB=$ORACLE_HOME/dbs
export ORACLE_SID=glfsid
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export PATH=$HOME/bin:$ORACLE_HOME/bin:$PATH
umask 022

echo "Start Oracle instance: glfsid"
su  oracle -c dbstart

简单说一下这里,为什么把变量写在这里面,我习惯用了bash,关于命令(su  oracle -c dbstart),我发现当我执行,su - oracle -c dbstart 根本无法代入oracle自身的变量代入后面的命令“-c dbstart”,所以会提示找不到dbstart,说是PATH里面没有。拿我执行的命令说明这个问题吧。如下:

-bash-3.00# su oracle -c "which dbca"
which:0652-141  /usr/bin /etc /usr/sbin /usr/ucb /usr/bin/X11 /sbin /usr/java14/jre/bin /usr/java14/bin 中没有 dbca。
-bash-3.00# su - oracle -c "which dbca"
no dbca in /usr/bin /etc /usr/sbin /usr/ucb /usr/bin/X11 /sbin /usr/java14/jre/bin /usr/java14/bin
-bash-3.00# su - oracle
-bash-3.00$ which dbca
/home/oracle/OraHome_1/bin/dbca

看到我执行的命令,你就明白了。最让我气愤的是你su - 成了oracle用户就可以代入环境变量了。我曾经将环境变量写在文件.profile和.bash_profile里面,结果跟上面执行的结果一样。难道是我RPWT?
而在我安装的linux环境下就完全没有问题呢。如下:

[root@orathiz ~]# su oracle -c "which dbca"
which: no dbca in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin)
[root@orathiz ~]# su - oracle -c "which dbca"
/datas/apps/oracle/product/10.2.0/db_1/bin/dbca


3:添加到/etc/inittab最下面,实现自启动。并且创建启动日志。

vi /etc/inittab
oracle:2:wait:/etc/rc.oracle > /home/oracle/oracle.log 2>&1


4:创建关闭脚本/etc/rc.shutdown

-bash-3.00# vi  /etc/rc.shutdown
echo "Stop Oracle instance: glfsid"
su - oracle -c dbshut

关于为什么脚本叫/etc/rc.shutdown,以及怎么工作.如下注解
引用

系统管理员可以在 /etc/rc.shutdown shell 脚本中放置本地定制的关闭过程。如果该脚本存在,则在关闭开始时就运行。如果脚本运行但是失败(返回非零返回码),则关机停止。

此段写在shutdown命令里面。可以查询一下。http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp

本文链接:http://www.52zhe.cn/read.php/64.htm
本文作者:kook(若就博客内所涉及的技术问题交流,请用下面的MSN或Gmail联系我)
联系方式:(MSN:kook#live.com) (Google talk:kookliu)
没有版权:GNU,转载时请注明“转载人”欠本人一顿饭,来日见面之时兑现!谢谢合作!
by kook | 分类: AIX | 评论(0) | 引用(0) | 阅读(3273)
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]