CENTOS6中文版安装ORACLE10g问题可谓不少,主要体现在ORACLE的OUI界面无法启动、OUI界面乱码。
环境:
[oracle@centos6 database]$ uname -a
Linux centos6 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
[oracle@centos6 database]$
安装数据库版本:10.2.0.1
首先是OUI无法启动:
[oracle@centos6 database]$ ./runInstaller -ignoresysprereqs
正在启动 Oracle Universal Installer...
正在检查安装程序要求...
检查操作系统版本: 必须是redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
未通过 <<<<
>>> 忽略未通过的必需先决条件。继续...
准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2015-08-02_06-07-21PM. 请稍候...[oracle@centos6 database]$ Oracle Universal Installer, 版本 10.2.0.1.0 正式版
版权所有 (c) 1999, 2005, Oracle。保留所有权利。
Exception java.lang.UnsatisfiedLinkError: /tmp/OraInstall2015-08-02_06-07-21PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory occurred..
java.lang.UnsatisfiedLinkError: /tmp/OraInstall2015-08-02_06-07-21PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at sun.security.action.LoadLibraryAction.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.NativeLibLoader.loadLibraries(Unknown Source)
at sun.awt.DebugHelper.<clinit>(Unknown Source)
at java.awt.Component.<clinit>(Unknown Source)
at oracle.sysman.oii.oiif.oiifm.OiifmGraphicInterfaceManager.<init>(OiifmGraphicInterfaceManager.java:222)
at oracle.sysman.oii.oiic.OiicSessionInterfaceManager.createInterfaceManager(OiicSessionInterfaceManager.java:193)
at oracle.sysman.oii.oiic.OiicSessionInterfaceManager.getInterfaceManager(OiicSessionInterfaceManager.java:202)
at oracle.sysman.oii.oiic.OiicInstaller.getInterfaceManager(OiicInstaller.java:436)
at oracle.sysman.oii.oiic.OiicInstaller.runInstaller(OiicInstaller.java:926)
at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:866)
Exception in thread "main" java.lang.NoClassDefFoundError
at oracle.sysman.oii.oiif.oiifm.OiifmGraphicInterfaceManager.<init>(OiifmGraphicInterfaceManager.java:222)
at oracle.sysman.oii.oiic.OiicSessionInterfaceManager.createInterfaceManager(OiicSessionInterfaceManager.java:193)
at oracle.sysman.oii.oiic.OiicSessionInterfaceManager.getInterfaceManager(OiicSessionInterfaceManager.java:202)
at oracle.sysman.oii.oiif.oiifm.OiifmAlert.<clinit>(OiifmAlert.java:151)
at oracle.sysman.oii.oiic.OiicInstaller.runInstaller(OiicInstaller.java:984)
at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:866)
OUI无法启动的原因是,CENTOS6系统缺少以下RPM包(在系统光盘下Packages中):
libXp-1.0.2-2.1.el6.i686.rpm
libXt-1.1.4-6.1.el6.i686.rpm
libXext-1.3.2-2.1.el6.i686.rpm
libXtst-1.2.2-2.1.el6.i686.rpm
libX11-1.6.0-2.2.el6.i686.rpm
libXau-1.0.6-4.el6.i686.rpm
libSM-1.2.1-2.el6.i686.rpm
libICE-1.0.6-1.el6.i686.rpm
libXi-1.7.2-2.2.el6.i686.rpm
libxcb-1.9.1-2.el6.i686.rpm
libuuid-2.17.2-12.18.el6.i686.rpm
使用rpm -ivh pkgs_name.rpm --nodeps进行安装,安装完毕后可以启动10.2.0.1的OUI。
虽然启动了OUI,但是另外一个问题出现了,就是OUI乱码如下:看网上“解决”OUI乱码的帖子是不少啊,总结来有3点:一个是设置会话字符集export LANG=zh_CN.utf-8;一个是按照JDK,修改JRE下的字符集设置;还有修改系统字符集的。我都试了一下,没有一个是管用的,找到了简单的解决方法,为系统安装中文字符集zysong(下载地址:http://download.csdn.net/download/otypedef/4733076)。系统字符集的安装方法很简单:先检查是否有文件目录/usr/share/fonts/zh_CN/TrueType/,没有的话就mkdir -p /usr/share/fonts/zh_CN/TrueType/,然后将zysong上传到/usr/share/fonts/zh_CN/TrueType/下。在oracle会话下启动OUI前设置:export LANG=zh_CN.utf-8,可以使用locale查看设置是否生效,然后再启动OUI,就能在中文CENTOS6下使用中文OUI提示进行10.2.0.1的安装了。
[oracle@centos6 database]$ ./runInstaller -ignoresysprereqs
正在启动 Oracle Universal Installer...
正在检查安装程序要求...
检查操作系统版本: 必须是redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
未通过 <<<<
>>> 忽略未通过的必需先决条件。继续...
准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2015-08-03_08-16-07AM. 请稍候...[oracle@centos6 database]$ Oracle Universal Installer, 版本 10.2.0.1.0 正式版
版权所有 (c) 1999, 2005, Oracle。保留所有权利。
[oracle@centos6 database]$注意这里启动OUI使用的是:./runInstaller -ignoresysprereqs,虽然OUI启动了,也是中文提示,但是却无法执行操作系统的验证,无法获知系统不满足的内核参数、缺失数据库安装必须的包,如下所示:
这些验证是必须的,如果潜在不通过,数据库不会成功安装。解决方法是:修改系统的版本注册文件:
[root@centos6 etc]# pwd
/etc
[root@centos6 etc]# cat centos-release
redhat-4
[root@centos6 etc]#
再次执行./runInstaller,会发现OUI的初始页面都不一样了,系统的内核及必须包验证也执行了,如下所示:
[oracle@centos6 database]$ ./runInstaller
正在启动 Oracle Universal Installer...
正在检查安装程序要求...
检查操作系统版本: 必须是redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
通过
所有安装程序要求均已满足。
准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2015-08-03_08-58-35AM. 请稍候...[oracle@centos6 database]$
[oracle@centos6 database]$
其中,有 1 警告是 swap 空间未满足 2802 ,此项要求直接忽略掉即可。
在安装到83%时有相关client_sharedlib.mk(缺失gcc_devel.i686包可以打上这个包消除报错)、ins_sysman.mk、ins_emdb.mk的报错,继续安装,等安装完毕,执行$ORACLE_HOME/bin/relink all即可。
数据库软件安装完毕后,netca创建监听通过,但是dbca 2%时又报错如下:
处理方法如下:
安装完毕,如下图所示: