安装oracle11.20g报all_no_orcl错误

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lzxlfly/article/details/84556881

由于其他原因测试数据库挂了,需要重装数据库,没有运维,无奈只能开发兼运维自己装了

然而在安装的过程中出现了all_no_orcl错误,也上网搜寻了一番,别人遇到的问题大致类似,但是好像和这个不一样,没能解决这个问题

一、错误再现

Error in invoking target 'all_no_orcl' of makefile '/opt/oracle/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/ins_rdbms.mk'

二、原因分析

1、具体日志查看

根据提示/opt/oracle/app/oraInventory/logs/installActions2018-11-26_05-34-12PM.log,去查看错误具体日志
 

可以看到/lib64/libgcc_s.so.1: could not read symbols: File in wrong format ,意思是:因为文件格式错误不能读取libgcc_s.so.1,这也是错误的起始原因。

从看出/opt/oracle/app/oracle/product/11.2.0/dbhome_1/bin/genorasdksh:Failed to link liborasdkbase.so.11.1, 以及前后日志,在执行genorasdksh命令编译ins_rdbms.mk文件时候出现错误,从而导致liborasdkbase.so.11.1链接创建失败,最终导致直接呈现在我们眼前的错误,如下:

Error in invoking target 'all_no_orcl' of makefile '/opt/oracle/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/ins_rdbms.mk'

2、进一步分析 

从以上可以看出/lib64/libgcc_s.so.1文件格式错误是起始原因,于是就去查看libgcc_s.so.1文件

ls -l /lib64/libgcc_s.so.1,可以看到libgcc_s.so.1文件指向了libgcc_s-4.4.7-20120601.so.1

也就是libgcc_s-4.4.7-20120601.so.1有问题,经过查找libgcc_s-4.4.7-20120601.so.1也在/lib64/下,查看文件格式

问题看到了,libgcc_s-4.4.7-20120601.so.1文件是个32位的, 然而我的oracle11g包是64位的,难怪32位的libgcc格式错误

在查看文件格式的时候,在/lib64/下还发现了libgcc_s-3.4.6-20060404.so.1,低版本的libgcc,于是看下它的格式

 可以看到libgcc_s-3.4.6-20060404.so.1是个64位的,于是便有了解决方案

 三、解决方案

方案二是一种可行思路,我没有实践过,如果方案一不能解决问题你可以尝试方案二

1、方案一 

把/lib64/libgcc_s.so.1删除或备份:mv /lib64/libgcc_s.so.1  /lib64/libgcc_s.so.1.bak

让libgcc_s.so.1指向低版本的64位故libgcc:ln -s /lib64/libgcc_s-3.4.6-20060404.so.1  /lib64/libgcc_s.so.1

在安装界面点击“重试”按钮,果然就好了,问题解决,接着安装

建议有低版本64位的ibgcc_s.so.1尽量用低版本的吧,不要再去下载了

2、方案二

去这里下载rpm安装包:https://pkgs.org/download/libgcc_s.so.1()(64bit),选择适合自己系统的rpm包,我是CentOS6

因为依赖很多包,rpm安装不能下载依赖包,最好是yum install安装

猜你喜欢

转载自blog.csdn.net/lzxlfly/article/details/84556881