在CentOS系統中安裝Oracle11g是一個比較常見的需求,但是在安裝過程中會遇到一些問題,其中之一就是亂碼的問題。這個問題比較棘手,我們需要進行一些調整才能解決,本篇文章將詳細介紹在CentOS系統中安裝Oracle11g亂碼的解決方法。
在進行解決之前,我們先了解一下在CentOS系統中安裝Oracle11g出現亂碼問題的原因。由于CentOS系統默認是不支持UTF-8編碼的,而Oracle11g則是使用UTF-8編碼的,如果我們直接進行安裝,就會出現亂碼問題。例如:
[root@localhost ~]# ./runInstaller Starting Oracle Universal Installer... Checking Temp space: must be greater than 80 MB. Actual 5538 MB Passed Checking swap space: must be greater than 150 MB. Actual 762 MB Passed Preparing to launch Oracle Universal Installer from /tmp/OraInstall2019-09-23_01-30-10PM. Please wait ...[oracle@localhost database]$ Initializing Java Virtual Machine from /tmp/OraInstall2019-09-23_01-30-10PM/jre/bin/java. Please wait... # # An unexpected error has been detected by Java Runtime Environment: # # Internal Error (os_linux_zero.cpp:259), pid=3567, tid=1334823120 # fatal error: caught unhandled signal 11 # # JRE version: 7.0_79-b15 # Java VM: Java HotSpot(TM) Client VM (24.79-b02 mixed mode linux-x86 ) # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again # # If you would like to submit a bug report, please visit: # http://bugreport.sun.com/bugreport/crash.jsp #
以上就是運行Oracle Universal Installer時出現的亂碼問題。這個問題很讓人頭疼,但是我們可以通過在啟動Oracle Universal Installer時添加一個參數來解決。
[root@localhost ~]# ./runInstaller -ignoreSysPrereqs -ignorePrereq
通過添加-ignoreSysPrereqs和-ignorePrereq參數,我們可以跳過系統檢查,從而避免出現亂碼的問題。這兩個參數的具體作用如下:
- -ignoreSysPrereqs:用于跳過系統檢查,如果出現此錯誤:“Error in invoking target ‘ALL\_ORACLE\_HOME’ of makefile… You omitted a necessary library or executable file.”,則需要添加此參數。
- -ignorePrereq:用于跳過條件檢查,如果在安裝準備階段出現錯誤提示,就可以通過添加此參數來跳過檢查。
在上面的兩個參數中添加-ignoreSysPrereqs就可以避免出現亂碼的問題了。需要注意的是,如果出現其他錯誤,需要進行相應的調整。
在安裝完成后,如果仍然出現亂碼問題,可以修改環境變量來進行解決。具體的步驟如下:
- 編輯/etc/profile文件:vi /etc/profile
- 在文件末尾添加以下內容:
- 保存退出
- 執行以下命令:source /etc/profile
export LANG="en_US.UTF-8" export LC_ALL="en_US.UTF-8" export LANGUAGE="en_US.UTF-8"
通過以上方法可以在CentOS系統中解決安裝Oracle11g亂碼的問題。需要注意的是,如果出現其他錯誤,可能需要進行進一步的調整和修改。