SQLPlus Oracle 명령을 루트로 실행하면 잘못된 대답이 반환됩니다.

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_ENV 소스 파일에는 다른 사용자의 수동 입력과 정확히 동일한 내보내기가 있습니다.

# 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에 따르면 나는 출력을 명시적으로 언급했습니다.

루트로 실행하는 경우:

# 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

관련 정보