以 root 身份运行 SQLPlus Oracle 命令返回错误答案

以 root 身份运行 SQLPlus Oracle 命令返回错误答案

我正在尝试创建一个脚本来检查 ASMDISK 组中每个磁盘的使用情况。我在每个 RAC 集群的一个节点上设置了脚本。它在几台服务器上运行没有问题,但在其中两台服务器上它返回了错误的值。

在本例中,它返回值 0 而预期值 1。

# export ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/db_1
# export ORACLE_SID=db1
# export PATH=$PATH:$ORACLE_HOME/bin
# sqlplus ****/****

SQL*Plus: Release 12.1.0.2.0 Production on Tue Dec 6 18:57:13 2016

SQL> select count(*) from  V$asm_disk_stat;

  COUNT(*)
----------
         0

当我从 oracle 用户帐户运行完全相同的 SQL,但仍然使用相同的 oracle db 用户时,我得到了正确的结果。 DB_EN​​V 源文件具有与其他用户手动输入的完全相同的导出。

# su - oracle
$ source db_env 
$ sqlplus ****/****

SQL*Plus: Release 12.1.0.2.0 Production on Tue Dec 6 19:07:18 2016

SQL> select count(*) from  V$asm_disk_stat;

  COUNT(*)
----------
         1

我不确定为什么会发生这种情况。我有其他脚本使用完全相同的方式进行连接,并且能够从 Oracle 数据库获取正确的数据。

根据 roaima,我明确说明了输出:

以 root 身份运行时:

# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/dell/srvadmin/bin:/opt/dell/srvadmin/sbin:/etc/opt/emcpower/bin:/root/bin:/u01/app/oracle/product/12.1.0.2/db_1/bin:/u01/app/oracle/product/12.1.0.2/db_1/bin

# echo $ORACLE_HOME
/u01/app/oracle/product/12.1.0.2/db_1

echo $ORACLE_SID
db1

当作为 Oracle 运行时:

echo $PATH
/u01/app/oracle/product/12.1.0.2/db_1/bin:/usr/sbin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/dell/srvadmin/bin:/etc/opt/emcpower/bin:/home/oracle/bin

echo $ORACLE_HOME
/u01/app/oracle/product/12.1.0.2/db_1

echo $ORACLE_SID
db1

相关内容