64位linux oracle10gr2 64位 安装一些问题,多数情况下,就是少包
首先讲讲问题解决的总体思路:安装时出现的错误,通常都是由于缺少某个库文件或者环境中没有将指定正确的库路径;所以,安装该库文件相应的rpm包或者修改环境变量指定正确的库路径即可。
安装前,先使用以下命令,确认需要安装的包是否都存在,可以省去后续的众多莫名其妙的错误。
rpm -q --qf '%{name}-%{version}-%{release} (%{arch})\n' \
binutils compat-db control-center gcc gcc-c++ glibc glibc-common gnome-libs \
libstdc++ libstdc++-devel make pdksh sysstat xscreensaver libaio
要注意,如果安装的是64位的oracle,这几个包是i386和x86-64的版本都需要的:glibc-2.3.4-2.41,libstdc++-,libstdc++-devel,libaio
具体的排查步骤如下:
1. 界面上报错的时候,可以查看相应的$oracle_base/orainventory/logs目录下的installactions+安装时间戳.log日志,通常这里都会显示具体的报错信息;可以通过相应的报错信息来查找解决办法;
2. 如果日志中报告说某文件缺失时,可以找找类似环境下已经正常安装起oracle的服务器,看看这个文件是否存在,然后执行 rpm -qf '文件绝对路径/文件名'查看缺少的文件在哪个rpm包中,如果的确没装,则从光盘中找到相应的rpm,装上即可。当然,如果rpm包还有依赖的包需要装,也需要按顺序装好。
3. 退出安装进程,重新启动安装。这步很关键,一些重要的lib库如果在安装程序启动的时候没有被安装程序加载的话,后续即使补装好也没办法正常load,还是会报错。
接下来看看几个比较典型的问题:
1. 首先是make -f $oracle_home/ctx/lib/ins_ctx.mk install错误
make -f $oracle_home/ctx/lib/ins_ctx.mk install
日志信息如下:
info: gcc -o ctxload -l/oracle/product/10.2.0/ctx/lib/ -l/oracle/product/10.2.0/lib/ -l/oracle/product/10.2.0/lib/stubs/ /oracle/product/10.2.0/ctx/lib/sdrz.o -lctxs10 -lctx10 -lctxs10 -lzx10 -lgx10 -lctx10 -lzx10 -lgx10 /oracle/product/10.2.0/rdbms/lib/defopt.o -lclntsh `cat /oracle/product/10.2.0/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /oracle/product/10.2.0/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn
info: 10 -lcommon10 -lgeneric10 -lmm -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /oracle/product/10.2.0/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /oracle/product/10.2.0/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -l
info: core10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /oracle/product/10.2.0/lib/sysliblist` -wl,-rpath,/oracle/product/10.2.0/lib -lm `cat /oracle/product/10.2.0/lib/sysliblist` -ldl -lm -l/oracle/product/10.2.0/lib
info: mv -f /oracle/product/10.2.0/bin/ctxload /oracle/product/10.2.0/bin/ctxloado
info: mv ctxload /oracle/product/10.2.0/bin/ctxload
info: chmod 751 /oracle/product/10.2.0/bin/ctxload
info: gcc -o ctxlc -l/oracle/product/10.2.0/ctx/lib/ -l/oracle/product/10.2.0/lib/ -l/oracle/product/10.2.0/lib/stubs/ /oracle/product/10.2.0/ctx/lib/sdrllc.o -lctxs10 -lctx10 -lctxs10 -lzx10 -lgx10 -lctx10 -lzx10 -lgx10 /oracle/product/10.2.0/rdbms/lib/defopt.o -lclntsh `cat /oracle/product/10.2.0/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /oracle/product/10.2.0/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn
info: 10 -lcommon10 -lgeneric10 -lmm -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /oracle/product/10.2.0/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /oracle/product/10.2.0/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -l
info: core10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /oracle/product/10.2.0/lib/sysliblist` -wl,-rpath,/oracle/product/10.2.0/lib -lm `cat /oracle/product/10.2.0/lib/sysliblist` -ldl -lm -l/oracle/product/10.2.0/lib
info: mv -f /oracle/product/10.2.0/bin/ctxlc /oracle/product/10.2.0/bin/ctxlco
info: mv ctxlc /oracle/product/10.2.0/bin/ctxlc
info: chmod 751 /oracle/product/10.2.0/bin/ctxlc
info: gcc -m32 -o ctxhx -l/oracle/product/10.2.0/ctx//lib32/ -l/oracle/product/10.2.0/lib32/ -l/oracle/product/10.2.0/lib32/stubs/ /oracle/product/10.2.0/ctx/lib/ctxhx.o -l/oracle/product/10.2.0/ctx/lib/ -ldl -lm -lctxhx -wl,-rpath,/oracle/product/10.2.0/ctx/lib -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /oracle/product/10.2.0/lib/sysliblist`
info: /usr/bin/ld: crt1.o: no such file: no such file or directory
info: collect2: ld returned 1 exit status
info: make:
info: *** [ctxhx] error 1
info:
info: end output from spawned process.
info: ----------------------------------
info: exception thrown from action: make
exception name: makefileexception
exception string: error in invoking target 'install' of makefile '/oracle/product/10.2.0/ctx/lib/ins_ctx.mk'. see '/oracle/orainventory/logs/installactions2010-02-03_02-16-38pm.log' for details.
exception severity: 1
info: the output of this make operation is also available at: '/oracle/product/10.2.0/install/make.log'
我们可以看到日志中报告说“info: /usr/bin/ld: crt1.o: no such file: no such file or directory ”,缺少crt1.o这个文件。
很简单,首先查自己安装环境下,这个文件在哪个目录下。 find / -name 'crt1.o' ,一查,原来只有/usr/lib64下有,说明是少了某个32位的i386的包;再找其他环境上的oracle服务器查一下,发现还有/usr/lib目录下也有;那么在那台服务器上执行 rpm -qf /usr/lib/crt1.o,就知道在glibc-devel-2.3.4-2.41包中带这个文件,那么你去光盘上找到这个文件,装上就好了。
如果某个包已经装了x86-64的版本了,在执行rpm -ivh 的时候,可能会报告说该包已经安装,这个时候要加上-f的参数,强行安装。
所以最好是安装前先确认一下前文要求的那些开发包是否都装好了,再进行安装,就能够避免出现这些问题了。
解决方法:rpm -ivh glibc-devel-2.3.4-2.41.i386.rpm
2. 还有一个问题,是在安装好数据库后,准备使用sqlplus执行的时候出现的报错:
oraclescdx: error while loading shared libraries: libaio.so.1: cannot open shared object file: no such file or directory
error:
ora-12547: tns:lost contact
这个就是因为libaio.so.1 库文件不存在的缘故,检查一下libaio的包,看看漏装了哪个版本,是32位的还是64位的漏掉了,相应的装上即可。
所以最后建议,在安装redhat的时候,数据库服务器上,像那些www、db、mail等服务都可以不装的,但是一定要选上所有的开发包都装,就不容易出现这些报错了;
btw,listener启动很慢的时候,在/etc/hosts文件里配上主机名就可以解决了。。。
3.
INFO: /oracle/app/product/10.2.0/db_1/lib32//libnls10.a(lmsagb.o):
INFO: In function `lmsagbcmt':
lmsagb.c:(.text+0xa3): undefined reference to `SltsPrRead'
lmsagb.c:(.text+0x10a): undefined reference to `SltsPrUnlock'
/oracle/app/product/10.2.0/db_1/lib32//libnls10.a(lmsagb.o): In function `lmsagb1':
lmsagb.c:(.text+0x47e): undefined reference to `SltsPrUnlock'
lmsagb.c:(.text+0x48a): undefined reference to `SltsPrWrite'
/oracle/app/product/10.2.0/db_1/lib32//libnls10.a(lmsamts.o): In function `lmsamtsini':
lmsamts.c:(.text+0xa5): undefined reference to `SltsPrInit'
/oracle/ap
INFO: p/product/10.2.0/db_1/lib32//libnls10.a(lmsamts.o): In function `lmsamtster':
lmsamts.c:(.text+0x255): undefined reference to `SltsPrDestroy'
/oracle/app/product/10.2.0/db_1/lib32//libnls10.a(lxldlbb.o): In function `lxldlbb':
lxldlbb.c:(.text+0x37f): undefined reference to `slste2a'
/oracle/app/product/10.2.0/db_1/lib32//libnls10.a(lxlfrd.o): In function `lxladjobj':
lxlfrd.c:(.text+0x551): undefined reference to `slste2a'
lxlfrd.c:(.text+0x147d): undefined reference to `slste2a'
lxlfrd.c:(.text+0x1510): u
INFO: ndefined reference to `slste2a'
lxlfrd.c:(.text+0x15aa): undefined reference to `slste2a'
/oracle/app/product/10.2.0/db_1/lib32//libnls10.a(lxlfrd.o):lxlfrd.c:(.text+0x1607): more undefined references to `slste2a' follow
/oracle/app/product/10.2.0/db_1/lib32//libnls10.a(lxlgsz.o): In function `lxlgsz':
lxlgsz.c:(.text+0x82): undefined reference to `lcvb2w'
/oracle/app/product/10.2.0/db_1/lib32//libnls10.a(lxocmpst.o): In function `lxoCmpStr':
lxocmpst.c:(.text+0x3a3): undefined reference to `lmebucp'
/oracl
INFO: e/app/product/10.2.0/db_1/lib32//libnls10.a(slms.o): In function `slmspe':
slms.c:(.text+0x6c5): undefined reference to `slcgems'
/oracle/app/product/10.2.0/db_1/lib32//libnls10.a(lxscdj.o): In function `lxscdja':
lxscdj.c:(.text+0x1a4): undefined reference to `slmaacb'
lxscdj.c:(.text+0x1bc): undefined reference to `slmaacb'
/oracle/app/product/10.2.0/db_1/lib32//libnls10.a(lxscdj.o): In function `lxscdjl':
lxscdj.c:(.text+0x3dc): undefined reference to `slmaacb'
lxscdj.c:(.text+0x3f1): undefined reference
INFO: to `slmaacb'
/oracle/app/product/10.2.0/db_1/lib32//libnls10.a(lxscdt.o): In function `lxscdth':
lxscdt.c:(.text+0x125): undefined reference to `slmaacb'
/oracle/app/product/10.2.0/db_1/lib32//libnls10.a(lxscdt.o):lxscdt.c:(.text+0x13d): more undefined references to `slmaacb' follow
/oracle/app/product/10.2.0/db_1/lib32//libnls10.a(lxecg2e.o): In function `lxecg2e':
lxecg2e.c:(.text+0xb0): undefined reference to `ldxnbeg'
lxecg2e.c:
INFO: (.text+0xf2): undefined reference to `ldxdtd'
lxecg2e.c:(.text+0x270): undefined reference to `ldxdtd'
lxecg2e.c:(.text+0x2d7): undefined reference to `ldxdtd'
lxecg2e.c:(.text+0x493): undefined reference to `ldxdtd'
lxecg2e.c:(.text+0x681): undefined reference to `ldxdtd'
lxecg2e.c:(.text+0x6b7): undefined reference to `ldxdfd'
/oracle
INFO: /app/product/10.2.0/db_1/lib32//libnls10.a(lxecg2i.o): In function `lxecg2i':
lxecg2i.c:(.text+0xf0): undefined reference to `ldxnbeg'
lxecg2i.c:(.text+0x120): undefined reference to `ldxdfd'
lxecg2i.c:(.text+0x164): undefined reference to `ldxdtd'
lxecg2i.c:(.text+0x204): undefined reference to `ldxnbeg'
lxecg2i.c:(.text+0x231): undefined reference to `ldxdtd'
lxecg2i.c:(.text+0x314): undefined reference to `ldxnbeg'
lxecg2i.c:(.text+0x340): undefined reference to `ldxdfd'
/oracle/app/product/10.2.0/db_1/l
INFO: ib32//libnls10.a(lxecg2l.o): In function `lxecg2l':
lxecg2l.c:(.text+0x13f): undefined reference to `ldxnbeg'
lxecg2l.c:(.text+0x16f): undefined reference to `ldxdtd'
lxecg2l.c:(.text+0x48b): undefined reference to `ldxnbeg'
lxecg2l.c:(.text+0x4b7): undefined reference to `ldxdfd'
/oracle/app/product/10.2.0/db_1/lib32//libunls10.a(lxu4tstc.o): In function `lxu4TstClsXMLPubidChar0':
lxu4tstc.c:(.text+0x8b4): undefined reference to `lxpTstClsXMLPubidCharTbl'
/oracle/app/product/10.2.0/db_1/lib32//libunls10.a(
INFO: lxu4dec.o): In function `lxu4Decomposition':
lxu4dec.c:(.text+0x18b): undefined reference to `lxujmd'
collect2: ld returned 1 exit status
INFO: make[1]: *** [/oracle/app/product/10.2.0/db_1/sysman/lib/e2eme] Error 1
INFO: make[1]: Leaving directory `/oracle/app/product/10.2.0/db_1/sysman/lib'
INFO: make: *** [e2eme] Error 2
INFO: End output from spawned process.
INFO: ----------------------------------
INFO: Exception thrown from action: make
Exception Name: MakefileException
Exception String: Error in invoking target 'agent nmo nmb' of makefile '/oracle/app/product/10.2.0/db_1/sysman/lib/ins_sysman.mk'. See '/oracle/app/oraInventory/logs/installActions2010-11-23_12-04-56PM.log' for details.
Exception Severity: 1
解决办法: 确认以下包有没有安装,然后重启图形界面再次安装
libgomp-4.4.0-6.el5.x86_64.rpm
kernel-headers-2.6.18-164.el5.x86_64.rpm
glibc-headers-2.5-42.x86_64.rpm
libstdc++-devel-4.1.2-46.el5.x86_64.rpm
sysstat-7.0.2-3.el5.x86_64.rpm
glibc-devel-2.5-42.x86_64.rpm
libaio-devel-0.3.106-3.2.x86_64.rpm
gcc-4.1.2-46.el5.x86_64.rpm
gcc-c++-4.1.2-46.el5.x86_64.rpm
elfutils-libelf-devel-static-0.137-3.el5.x86_64.rpm
elfutils-libelf-devel-0.137-3.el5.x86_64.rpm
libtermcap-devel-2.0.8-46.1.x86_64.rpm
readline-devel-5.1-3.el5.x86_64.rpm
unixODBC-2.2.11-7.1.x86_64.rpm
unixODBC-devel-2.2.11-7.1.x86_64.rpm
glibc-devel-2.5-42.i386.rpm
libaio-devel-0.3.106-3.2.i386.rpm
compat-db-4.2.52-5.1.x86_64.rpm
compat-gcc-34-3.4.6-4.x86_64.rpm
compat-gcc-34-c++-3.4.6-4.x86_64.rpm
gdb-6.8-37.el5.x86_64.rpm
libXp-1.0.0-8.1.el5.i386.rpm
libstdc++-devel-4.1.2-46.el5.i386.rpm
compat-libstdc++-296-2.96-132.7.2.i386.rpm
compat-libstdc++-33-3.2.3-47.3.i386.rpm
以上是oracle安装时oracle后台编译的编译错误!
因生产环境的主机在安装linux系统时一般不会把软件包安装完整,所以在安装oracle前要检查oracle所需的软件包是否完整,以避免安装时出现不必要的麻烦!
对于一般的生产环境来说,linux主机是不会安装桌面程序的。
我们可以Xmanager 等工具将安装界面显示在工作环境下的windows主机上,具体步骤如下:
1>首先为你的windows主机安装ssh远程工具。
2>通过ssh远程工具连接到oracle服务器。
3>#export DISPLAY=windows主机ip:0
通过以上3步操作,就完成了把oracle安装界面显示到windows主机上的操作了!
接下来执行安装命令就可以了!
发表评论