Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选

首页 / 数据库 / MySQL / Linux下Oracle环境变量无效问题解决

今天在Linux下维护Oracle数据库时,查看监听的状态,执行#lsnrctl status报错: -bash:lsnrctl:command not found。以前并不会这样,仔细想了一下,问题找到了,我是以root远程登录到服务器上,维护oracle时,直接 su oracle,这样操作虽然用户切换为oracle,但是环境变量仍然是root的环境变量,所以会报环境变量错误,正确的命令是su - oracle,这样环境变量也会切换为oracle的环境变量。
看一下 su 命令的 man pageNAME
 su - run a shell with substitute user and group IDsSYNOPSIS
 su [OPTION]... [-] [USER [ARG]...]DESCRIPTION
 Change the effective user id and group id to that of
 USER.-, -l, --login
 make the shell a login shell, clears all envvars
 except for TERM, initializes HOME, SHELL, USER,
 LOGNAME and PATH...A mere - implies -l. If USER not given, assume root.可以看到,加了 - 选项后,会清空除term外的环境变量,重新初始化HOME、SHELL、USER、LOGNAME和PATH。所以要多注意细节,尤其Linux下面,一点点的不一样,都有可能引起完全不同的结果。更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址