oracle用户环境变量设置时犯的错--变量没有export出来的后果

   因为工作需要,我在Solaris上创建了zone,往里面安装了oracle。安装过程都还好好的,不过安装完成后启动数据库给报错了。
    报错信息是:Message 1070 not found。根据报错信息中的其它内容来看,是listener启动失败了。而我启动数据库时使用的是先前自己写的shell,shell的第一行正是lsnrctl start。
    这回我先在控制台上输入lsnrctl,这回报错信息变为“Message 850 not found;”,在lsnrctlshell中,输入start,报错信息“Message 1070 not found”果然又出现了。
    从网上找到一些出现类似错误的文章上来看,是我的oracle环境变量配置不正确,跑去oracle用户的.profile看了看,ORACLE_HOME环境变量是设置了的。怎么会找不到呢?
    仔细看时候,发现ORACLE_HOME这个环境变量没有export出来。根据shell的语法,如果一个变量没有export出来,这个变量的作用域就只在它所在的这个shell文件中和它调用的shell中,而出了所在的shell后,这个变量就不起效了。所以对于调用.profile的bash(用户初始登录shell)来说,用户登录完成后,.profile文件中没有export出来的变量就不起效了。
    因此,启动数据库监听器时候,自然会报错了。

补充下:
    $ORACLE_HOME/bin/netca 能检查oracle相关环境变量是否设置正确。

netca是oracle net configuration assistance的简称,主要作用是配置监听程序、命名方法配置、本地net服务配置、目录使用配置。



本文转自leipei博客园博客,原文链接:http://www.cnblogs.com/leipei2352/archive/2011/05/27/2059695.html,如需转载请自行联系原作者

上一篇:Corosync+pacemaker实现基于drbd分散式存储的mysql高可用集群


下一篇:Facebook 正式开源其大数据查询引擎 Presto