坑人的/tmp/.oracle

myownstars發表於2012-11-21

看似是個臨時目錄,但是刪除它會導致RAC執行出錯,只能重啟RACserver解決;另外,若啟動RAC時該目錄仍殘留有關閉前的各種檔案,也會導致RAC無法正常啟動,此時需要將其刪除才能成功;

The hidden directory ‘/var/tmp/.oracle’ was removed while instances & the CRS stack were up and running. Typically this directory contains a number of “special” socket files that are used by local clients to connect via the IPC protocol (sqlnet) to various Oracle processes including the TNS listener, the CSS, CRS & EVM daemons or even database or ASM instances. These files are created when the “listening” process starts

不光是RAC程式,listener也有可能會因此該目錄而無法啟動

1.            Failure to startup after reboot:

Check if the hidden directory /tmp/.oracle or /var/tmp/.oracle is clean. Old sockets left from previous listener starts, can stop a listener from starting. Ensure tmp has space. Check permissions are correct (777) for these directories and that the owner is the oracle account who owns the binaries and correct group. Truss for failure could look similar to

25078: chmod("/tmp/.oracle", 01777) Err#1 EPERM

25078: socket(1, 1, 0) = 3

25078: access("/tmp/.oracle/sEXTPROC", 0) = 0

25078: connext(3, 0x0FFFFFFFFFFF7D00, 106) Err#79 ECONNREFUSED

--Troubleshooting TNS listener Startup Failures [ID 946508.1]

 

很難想象oracle把如此重要的東西放在/tmp目錄下,而他們給出的解釋是因為隱蔽所以估計沒有人會注意到,因而不會被誤刪除。

以下是一個外國同行的吐槽,相信中招的DBA不在少數

However, I really was dumbstruck that Oracle would have so critical a directory in /var/tmp! I politely note this to Oracle Support, who justified this location with a few solid reasons:

1. It has always been in this location (and still is in 11gR2).

2. /var/tmp/.oracle is a hidden directory, so it probably won’t be noticed by any miscreants looking to cause trouble

 

 

 

 

 

 

 

 

 

 

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15480802/viewspace-749687/,如需轉載,請註明出處,否則將追究法律責任。

相關文章