ITPub博客

首页 > 数据库 > Oracle > 使用relink解决国产操作系统上安装11g的问题

使用relink解决国产操作系统上安装11g的问题

原创 Oracle 作者:a960549548 时间:2025-06-23 16:53:22 0 删除 编辑

欧拉操作系统上安装11G单机的问题:

·安装完成软件之后,发现rman和sqlplus功能有问题(还有其他的功能应该也是),查看安装日志发现部分lib下link文件报错。

例如:

INFO: collect2: error: ld returned 1 exit status
INFO: make: *** [/u01/app/oracle/product/db_1/network/lib/ins_net_client.mk:46: tnsping] Error 1
INFO: n/ld: cannot find /usr/lib64/libpthread_nonshared.a
collect2: error: ld returned 1 exit status
INFO: make: *** [/u01/app/oracle/product/db_1/sqlplus/lib/ins_sqlplus.mk:43: /u01/app/oracle/product/db_1/sqlplus/bin/sqlplus] Error 1
/usr/bin/ld: cannot find /usr/lib64/libpthread_nonshared.a
INFO: collect2: error: ld returned 1 exit status
INFO: make: *** [/u01/app/oracle/product/db_1/rdbms/lib/ins_rdbms.mk:867: /u01/app/oracle/product/db_1/rdbms/lib/rman] Error 1
......

relink一下看看情况:

具体操作步骤如下
1、Verify umask value is set as 022 , in case umask value is
not correct , set umask to 022 ( run command "umask 022" )
2、As Oracle user perform following Command:
$ORACLE_HOME/bin/relink all
3、Check relink log:
$ORACLE_HOME/install/relink.log

查看relink日志,类似如下报错:

collect2: error: ld returned 1 exit status
make: *** [/u01/app/oracle/product/db_1/network/lib/ins_net_client.mk:46: tnsping] Error 1
......

处理步骤,从a依次做到e步骤:

a)Take backup and make changes to sysliblist file(备份sysliblist文件,并将from后的内容替换为to后面的内容)
cd <DB_Oracle_Home>/lib/
cp sysliblist sysliblist.bkp
from
-ldl -lm -lpthread -lnsl -lirc -lipgo -lsvml -laio
to
-ldl -lm -lpthread -l:libnsl.so.1 -lirc -lipgo -lsvml -laio
b) Change the value of NMEHL_OSLIBS and MK_EMAGENT_NMECTL in(同上步骤)
<DB_Oracle_Home>/sysman/lib/env_emagent.mk
from
NMEHL_OSLIBS=$(LDLIBFLAG)pthread$(LIB_SUFFIX) $(LDLIBFLAG)nsl$(LIB_SUFFIX) \
$(LDLIBFLAG)m$(LIB_SUFFIX) $(LDLIBFLAG)dl$(LIB_SUFFIX)
To
NMEHL_OSLIBS=$(LDLIBFLAG)pthread$(LIB_SUFFIX) $(LDLIBFLAG)m$(LIB_SUFFIX) \
$(LDLIBFLAG)dl$(LIB_SUFFIX)
c)(同上步骤,和b修改同一文件)
from
MK_EMAGENT_NMECTL=$(LDCCOM) $(NMECTLMAIN) $(LIBNMECTL_LINK) $(LLIBCLNTSH) \
$(NMEFET_STACKLIBS_LINK) $(USRLIBS) $(LDLIBS)
To
MK_EMAGENT_NMECTL=$(LDCCOM) $(NMECTLMAIN) $(LIBNMECTL_LINK) $(LLIBCLNTSH) \
$(NMEFET_STACKLIBS_LINK) $(USRLIBS) $(LDLIBS) $(LLIBNZ)
d) Incase of if you notice $ORACLE_HOME/rdbms/lib/config.o as 0 bytes
$ cd $ORACLE_HOME/rdbms/lib
$ rm config.o
$ make -f ins_rdbms.mk config.o ioracle 
---该步骤报错/usr/bin/ld: cannot find /usr/lib64/libpthread_nonshared.a,无法找到该文件libpthread_nonshared.a,需要操作系统安装这个package:compat-libpthread_nonshared
安装完该包后,重做d步骤
$ ls -la config.o
e) Re-link oracle binaries
cd $ORACLE_HOME/bin
./relink all

relink完成后,rman和sqlplus等功能已正常,relink日志还剩emagent的报错,这个用不上,问题处理完成

$(MK_EMAGENT_NMECTL)


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70013625/viewspace-3088677/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE,MySQL 8.0 OCP,PMP,拥有OceanBase OBCP,TiDB PCTP,GoldenDB GDCP等多项认证,ITPUB认证专家,微信公众号:DBA之友。

注册时间:2022-02-08

  • 博文量
    132
  • 访问量
    171518