su oracle 和 su - oracle的区别

一、症状


在启动oracle数据库时,报了这个错:

[oracle@ltdit3 ~]$ ./startOracle.sh start
Starting Oracle:
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 27-JUN-2013 10:20:45

Copyright (coffee) 1991, 2009, Oracle.  All rights reserved.

TNS-01106: Listener using listener name LISTENER has already been started

SQL*Plus: Release 11.2.0.1.0 Production on Thu Jun 27 10:20:45 2013

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

SQL> Connected to an idle instance.
SQL> ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/opt/oracle/112/dbs/initorcaleexport.ora'
SQL> Disconnected
OK


二、原因


注意其中这句话:

SQL> ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/opt/oracle/112/dbs/initorcaleexport.ora'


应该是找不到参数文件,但明明我的SID=orcl,并且已经设置了环境变量ORACLE_SID,为什么没生效呢?

还原启动过程,发现执行者用的是su oracle切换到oracle用户,查了一下资料,su oracle 和 su - oracle是有区别的:

-, -l ,--login make the shell a login shell

加了"-",是以login shell登陆的,所以会设置环境变量,如果不加,使用的还是切换前用户的环境变量,所以会出错。


[oracle@ltdit3 ~]$ su --help
Usage: su [OPTION]... [-] [USER [ARG]...]
Change the effective user id and group id to that of USER.


  -, -l, --login               make the shell a login shell
  -c, --command=COMMAND       pass a single COMMAND to the shell with -c
  --session-command=COMMAND    pass a single COMMAND to the shell with -c
                               and do not create a new session
  -f, --fast                   pass -f to the shell (for csh or tcsh)
  -m, --preserve-environment   do not reset environment variables
  -p                           same as -m
  -s, --shell=SHELL            run SHELL if /etc/shells allows it
      --help     display this help and exit
      --version  output version information and exit


A mere - implies -l.   If USER not given, assume root.


Report bugs to <bug-coreutils@gnu.org>.
[oracle@ltdit3 ~]$ 


三、解决方法


用su - oracle 取代 su oracle就可以了。


四、总结


1、做事要细心。

2、遇到问题多问一个为什么。

开始用户报错给我的时候,直接就在本地解决了,之后突发奇想,为什么用户那里会报错,过去看了一下,发现问题所在,就在一个“-”上,打了一下su --help,就知道加和不加的原因了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值