同事安装了一个10201 for linux X86-64的数据库。安装完成之后,有部署了应用程序。今天想起没有打补丁,结果在启动补丁的安装程序过程中,发现runinstaller程序无法正确的显示字符。
安装过程中,首先出现一个警告信息:
Warning: Cannot convert string "-isas-song ti-medium-r-normal--*-140-*-*-c-*-gb2312.1980-0" to type FontStruct
除了这个警告之外,还出现下面的错误提示信息:
An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : 11 occurred at PC=0x4DF57D15
Function=XFreeFontSet+0x15
Library=/usr/lib/libX11.so.6
Current Java thread:
at sun.awt.motif.X11InputMethod.disposeXIC(Native Method)
at sun.awt.motif.X11InputMethod.disposeImpl(Unknown Source)
- locked <0xe769ca78> (a sun.awt.motif.X11InputMethod)
at sun.awt.motif.X11InputMethod.dispose(Unknown Source)
at sun.awt.im.InputContext.dispose(Unknown Source)
.
.
.
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Dynamic libraries:
08048000-08056000 r-xp 00000000 08:03 10064374 /tmp/OraInstall2008-08-28_03-29-29PM/jre/1.4.2/bin/java
08056000-08059000 rwxp 0000d000 08:03 10064374 /tmp/OraInstall2008-08-28_03-29-29PM/jre/1.4.2/bin/java
08059000-084f6000 rwxp 08059000 00:00 0 [heap]
4dd57000-4dd70000 r-xp 00000000 08:03 7777041 /lib/ld-2.5.so
.
.
.
f7ffc000-f7ffd000 rwxp 00007000 08:03 10064262 /tmp/OraInstall2008-08-28_03-29-29PM/jre/1.4.2/lib/i386/nat
ive_threads/libhpi.so
ffc0b000-ffc20000 rwxp ffc0b000 00:00 0 [stack]
Heap at VM Abort:
Heap
def new generation total 576K, used 49K [0xe66e0000, 0xe6780000, 0xe7260000)
eden space 512K, 9% used [0xe66e0000, 0xe66ec6f0, 0xe6760000)
from space 64K, 0% used [0xe6760000, 0xe6760000, 0xe6770000)
to space 64K, 0% used [0xe6770000, 0xe6770000, 0xe6780000)
tenured generation total 7240K, used 4989K [0xe7260000, 0xe7972000, 0xefce0000)
the space 7240K, 68% used [0xe7260000, 0xe773f798, 0xe773f800, 0xe7972000)
compacting perm gen total 13312K, used 13174K [0xefce0000, 0xf09e0000, 0xf3ce0000)
the space 13312K, 98% used [0xefce0000, 0xf09bd840, 0xf09bda00, 0xf09e0000)
Local Time = Thu Aug 28 15:29:36 2008
Elapsed Time = 5
#
# The exception above was detected in native code outside the VM
#
# Java VM: Java HotSpot(TM) Client VM (1.4.2_08-b03 mixed mode)
#
而且页面上除了Oracle写死的一些文字之外,所有的文字都无法显示。
而此前Oracle的安装过程是没有任何的问题的。
根据这个信息和上面的错误信息描述,基本上可以确定问题的原因:Oracle启动runinstaller时加载的字体无法找到,从而导致显示异常。
检查当前用户的环境变量:
$ env|grep CTYPE
LC_CTYPE=zh_CN.GB18030
这个环境参数的设置导致Oracle无法找到字体文件。而这个环境参数正是数据库安装之后安装应用程序时设置的。
取消当前的设置:
$ export -n LC_CTYPE
再次启动runInstaller程序,字符显示正常。