案例:使用sqlplus登錄報ORA-12547錯誤


現象:Exadata刷機之后grid/oracle用戶的環境變量是沒有設置的,需要手工進行設置,設置完成后發現grid用戶執行報錯ORA-12547:

[grid@dbm0dbadm01 ~]$ sqlplus / as sysasm

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Nov 11 09:09:37 2020
Version 19.8.0.0.0

Copyright (c) 1982, 2020, Oracle.  All rights reserved.

ERROR:
ORA-12547: TNS:lost contact


Enter user-name: ^C

使用oerr查看錯誤描述:

[grid@dbm0dbadm01 ~]$ oerr ora 12547
12547, 00000, "TNS:lost contact"
// *Cause: Partner has unexpectedly gone away, usually during process
// startup.
// *Action: Investigate partner application for abnormal termination. On an
// Interchange, this can happen if the machine is overloaded.

這個oerr的描述在這里有些迷惑性,我們知道實際新刷機環境也沒有什么負載,根據經驗查看基本信息:

[grid@dbm0dbadm01 ~]$ ps -ef|grep pmon
grid     138569      1  0 Nov06 ?        00:00:21 asm_pmon_+ASM1
oracle   148750      1  0 Nov06 ?        00:00:47 ora_pmon_cdb1db11
grid     219063 217084  0 09:09 pts/0    00:00:00 grep --color=auto pmon
[grid@dbm0dbadm01 ~]$ echo $ORACLE_SID
+ASM1
[grid@dbm0dbadm01 ~]$ env|grep ORA
ORACLE_SID=+ASM1
ORACLE_BASE=/u01/app/grid
ORACLE_HOME=/u01/app/19.0.0.0/grid/
[grid@dbm0dbadm01 ~]$ env|grep PATH
PATH=/u01/app/19.0.0.0/grid//bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin
PYTHONPATH=:/opt/oracle.cellos/lib/python

確認進程ok,環境變量看起來是最后多了一個斜杠,修正:

[grid@dbm0dbadm01 ~]$ vi ~/.bash_profile

去掉ORACLE_HOME變量值最后多余的/,然后再次登錄,檢查ok后重新執行可以成功。

[grid@dbm0dbadm01 ~]$ env|grep ORA
ORACLE_SID=+ASM1
ORACLE_BASE=/u01/app/grid
ORACLE_HOME=/u01/app/19.0.0.0/grid
[grid@dbm0dbadm01 ~]$ env|grep PATH
PATH=/u01/app/19.0.0.0/grid/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin
PYTHONPATH=:/opt/oracle.cellos/lib/python
[grid@dbm0dbadm01 ~]$ sqlplus / as sysasm

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Nov 11 09:13:04 2020
Version 19.8.0.0.0

Copyright (c) 1982, 2020, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.8.0.0.0

SQL>

之前其實遇到過類似問題,還對比了不同版本下有無斜杠是否都會發生問題,確實證明在某些版本下多寫斜杠不會有問題。
總結:這個案例固然非常簡單且初級,但也有警醒的意義:千萬不要寄希望於某些特定版本是否可以智能識別處理,保持細心,按最佳規范來做事。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM