1. 程式人生 > >ORA-12547: TNS:lost contact報錯的處理方法

ORA-12547: TNS:lost contact報錯的處理方法

oracle ora-12547

最近兩天在虛擬機上搞Oracle 12.2的安裝,安裝的過程挺順利的。但虛擬機重啟之後就無法連接數據庫,執行sqlplus / as sysdba報錯ORA-12547: TNS:lost contact

技術分享

為什麽呢?安裝完後測試都好好的,怎麽重啟之後會這樣呢。在網上找了很多方法來處理:

網上給出的解決思路如下:

1、查看操作系統內核參數是否無誤  
[[email protected] database]$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 15738
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 2047
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
  
2、確認$ORACLE_HOME/bin/oracle文件權限是否有問題  
(在rac下需要查看$ORACLE_HOME/bin/oracle和$GRID_HOME/bin/oracle兩個文件),  
正確權限為:  
[[email protected]
/* */ adump]$ ll $ORACLE_HOME/bin/oracle -rwsr-s--x 1 oracle oinstall 232399083 Aug 28 17:23 /u01/app/oracle/product/11.2.0/db_1/bin/oracle 如果權限不對 chmod 6751 $ORACLE_HOME/bin/oracle 3、檢查一下環境變量 echo $ORACLE_HOME echo $ORACLE_SID echo $LD_LIBRARY_PATH --註意:不同的操作系統此環境變量會不同 echo $PATH 4、檢查$ORACLE_HOME/bin/oracle 和 $ORACLE_HOME/rdbms/lib/config.o 的文件大小是否為0, 如果大小為0,需要重新編譯oracle軟件: [[email protected]
/* */ backup]$ relink all writing relink log to: /u01/app/oracle/product/11.2.0/db_1/install/relink.log 5、使用操作系統跟蹤命令跟蹤sqlplus連接過程,從而觀察跟蹤文件。 ltrace -f -o /tmp/sqlplus.log sqlplus / as sysdba 或truss命令

參考自:http://blog.csdn.net/ch7543658/article/details/38901355

按照上面的五個步驟都做了一遍還是一直報錯。

最後仔細檢查了一下內核配置和oracle用戶的limit參數配置,發現limits.conf中有一個參數配置的值太小,我配置的是:

oracle hard stack 1024

而官方文檔中建議的是10240。

這才想起來,當時安裝Oracle時偷懶沒有配置內核參數和limits.conf文件,而是使用fix.sh腳本修改的,修改完後發現有些配置沒有寫到配置文件裏,就又手動把漏掉的配置寫了進去,結果還寫錯了,最終導致了上面的錯誤的出現。

修改limits.conf文件後重新使用oracle用戶登錄,不再報錯。

技術分享

本文出自 “DBA Fighting!” 博客,請務必保留此出處http://hbxztc.blog.51cto.com/1587495/1945049

ORA-12547: TNS:lost contact報錯的處理方法