linux oracle自动启动笔记

系统启动时自动启动数据库可以通过修改/etc/rc.d/rc.local文件
一开始我写的命令是
su oracle -c /app/product/10.2.0/db_1/bin/lsnrctl start
su oracle -c /app/product/10.2.0/db_1/bin/dbstart
但是su oracle -c /app/product/10.2.0/db_1/bin/lsnrctl start是参数start不起作用,它进入了lsnrctl命令提示符,并没有启动,后来把命令用双引号引起来就可以了如下:
su oracle -c "/app/product/10.2.0/db_1/bin/lsnrctl start"

 

启动脚本,但是启动时报错如下:
Message 1053 not found; No message file for product=network, facility=TNSTNS-12541: Message 12541 not found; No message file for product=network, facility=TNS
TNS-12560: Message 12560 not found; No message file for product=network, facility=TNS
但 是如果我用oracle用户登陆执行lsnrctl start就不报错,看来是在root用户中执行su oracle -c "/app/product/10.2.0/db_1/bin/lsnrctl start"有些Oracle环境变量没有设置。查了一下su 命令的参数,其中有个-l参数
 -.-l或--login  改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,LOGNAME。此外,也会变更PATH变量。  
加上参数
su oracle -lc "ora_App/product/10.2.0/db_1/bin/lsnrctl start"

 

 

linux下执行oracle的dbstart脚本没有反应
原因:
1./etc/oratab的设置问题,比如:
*:/opt/oracle/product/9.2.0.4:N
ORCL:/opt/oracle/product/9.2.0.4:Y
最右侧是N的,dbstart不会管它,dbstart只启动为Y的。

2.认证方式问题。
oracle9的dbstart是在sqlplus中使用connect / as sysdba,然后用startup命令启动数据。即打算使用操作系统认证。如果$ORACHE_HOME/network/admin/sqlnet.ora中有这样一行:
SQLNET.AUTHENTICATION_SERVICES=(NONE)
那么操作系统认证就被禁止了,dbstart会无法用sqlplus以sysdba登录,也就无法启动数据库了。

3.没有pfile,即文本的初始化参数。
oracle9 以后是可以使用spfile的,即二进制的初始化参数文件,因此pfile可以没有。但我看到的dbstart中不知道为何,启动前先找一下pfile, 如果找不到就直接退出,不启动数据库。因此,如果打算用dbstart启动oracle,那么必须要创建一个文本的参数文件,或者干脆去修改 dbstart脚本,把判断参数文件的地方改一下,或者去掉。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值