SUNOS export命令执行与bash

    今天,一小弟去巡检ORACLE数据库,出现了点小插曲,情况是:一台服务器上有2个oracle数据库实例,均是10.2.0.1的,ORACLE_SID分别是APP、etos。
操作系统用户oracle的默认环境变量配置ORACLE_SID是etos,从root切换到oracle时,以sqlplus / as sysdba默认登录到etos实例,且etos数据库的巡检也很顺利,
但是,到巡检APP时,那小弟傻了,登录不进去,使用export ORACLE_SID=APP指定ORACLE_SID时,系统无法执行export命令,报错如下:

    然后,那小弟打电话向我求助,对于这种情况,总有点有家不能回,进家无门的感觉,让人哭笑不得。
    我的做法是,首先确定操作系统类型:
$uname -a
SunOS kdswapdb01 5.10 Generic_127111-06 sun4u sparc SUNW,Sun-Fire-V890
    然后,查看oracle家目录下.profile的环境变量设置是如何声明的:
$ vi .profile
".profile" 12 lines, 491 characters 
#       This is the default standard profile provided to a user.
#       They are expected to edit it to meet their own needs.
MAIL=/usr/mail/${LOGNAME:?}
ORACLE_BASE=/u01/oracle
ORACLE_HOME=$ORACLE_BASE/product/10.0.2
ORACLE_SID=etos
NLS_LANG=AMERICAN_AMERICA.ZHS16CGB231280
PATH=$ORACLE_HOME/bin:/bin:/sbin:/usr/ccs/bin:/usr/local/bin
BRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:/usr/local/lib:/usr/lib
TMPDIR=/var/tmp
export ORALCE_BASE ORACLE_HOME ORACLE_SID NLS_LANG PATH LD_LIBRARY_PATH
    明确SUNOS的用户环境变量声明是使用export的,然而当前export命令不能执行,SUNOS还有一种环境变量声明方式即setenv,尝试setenv ORACLE_SID=APP:

    当前SUNOS不支持setenv,这时结合linux操作系统进行对比,可能没有执行bash,切换至bash环境下尝试:
$ bash
bash-3.00$ 
bash-3.00$ export ORACLE_SID=APP
bash-3.00$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jul 21 20:49:01 2016
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
SQL>
    问题解决,这里不得不提LINUX和SUNOS的一点不同: shell,两个操作系统的默认shell虽然都是/bin/sh,但linux默认shell是bash,/bin/sh仅是一个指向到/bin/bash的符号链接,
而solaris的默认shell是Bourne shell,名为/bin/sh。 所以,操作SUNOS时,最好首先执行bash,让当前环境切换至bash状态。





来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29357786/viewspace-2122374/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29357786/viewspace-2122374/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值