資料庫安裝An unexpected error has been detected by HotSpot Virtual Machine

kingsql發表於2015-05-17
[oracle@rac1 database]$ ./runInstaller
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 120 MB.   Actual 14636 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 15998 MB    Passed
Checking monitor: must be configured to display at least 256 colors.    Actual 16777216    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2013-05-13_01-59-34PM. Please wait ...[oracle@rac1 database]$ #
# An unexpected error has been detected by HotSpot Virtual Machine:
#
#  SIGSEGV (0xb) at pc=0x0000003f91a14d70, pid=27143, tid=140264133601040
#
# Java VM: Java HotSpot(TM) 64-Bit Server VM (1.5.0_30-b03 mixed mode)
# Problematic frame.:
# C  [ld-linux-x86-64.so.2+0x14d70]
#
# An error report file with more information is saved as hs_err_pid27143.log
#
# If you would like to submit a bug report, please visit:
#  
 
 
解決方法:
 .bash_profile
增加export LD_BIND_NOW=1
 
說明:

 LD_BIND_NOW環境變數能夠改變動態連線行為。如果這個環境變數不為空,動態聯結器在把控制權交給程式之前會先為程式連線表賦值。也就是說,在程式初始化期間,動態聯結器為R_386_JMP_SLOT型別的重定位入口賦值,以便在第一次呼叫時,不必透過動態聯結器就能夠跳轉到目標地址。反之,如果這個環境變數為空,動態聯結器就暫不為程式連線表入口賦值,不對符號進行解析和重定位,直到第一次呼叫一個程式連線表入口,才對其做相應的處理。這種方式叫作後期連線(lazy binding)方式。
  注意:後期連線(lazy binding)方式一般會大大提高應用程式的效能,因為不必為解析無用的符號浪費動態聯結器的開銷。不過,有兩種情況例外。第一,對一個共享目標函式進行初始化處理花費的時間比呼叫正式的執行時間長,因為動態聯結器會攔截呼叫以解析符號,而這個函式功能又比較簡單;第二,如果發生錯誤和動態聯結器無法解析符號,動態聯結器就會終止程式。使用後期連線方式,這種錯誤可能會在程式執行過程中,隨時發生。而有些應用程式對這種不確定性有比較嚴格的限制。因此,需要關閉後期連線方式,在應用程式接受控制權之前,讓動態聯結器處理程式初始化期間發生的這些錯誤。

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

相關文章