`

libpthread.so.0: cannot open shared object file解决方法(原创)

 
阅读更多

在linux 5上装10G RAC时,常常会碰到“libpthread.so.0: cannot open shared object file"这个报错的,这个报错是由于无法使用vipca导致的 该报错有以下两种解决方案:
方法1
不去理会,选择继续,然后安装10.2.0.4及以上版本的patchsets,然后在来手工执行vipca完成vip配置工作,因为这个错误在10.2.0.4版本中已经得到修复
方法2

手工配置
确认网络配置
# ./oifcfg getif
eth0 172.21.1.0 global public
eth1 10.10.10.0 global cluster_interconnect
# ./oifcfg iflist
eth0 172.21.1.0
eth1 10.10.10.0
如果不正确可以使用下列命令配置
# ./oifcfg setif -global eth0/172.21.1.0:public
# ./oifcfg setif -global eth1/10.10.10.0:cluster_interconnect
然后修改vipca和srvctl ,搜索LD_ASSUME_KERNEL,注释掉下列几行
arch='uname -m'
#       if [ "$arch" = "i686" -o "$arch" = "ia64" -o "$arch" = "x86_64" ]
#       then
#            LD_ASSUME_KERNEL=2.4.19
#            export LD_ASSUME_KERNEL
#       fi

再执行./vipca即可,二者原理相同
关于这个报错,Oracle有以下文档进行说明
10gR2 RAC Install issues on Oracle EL5 or RHEL5 or SLES10 (VIPCA / SRVCTL / OUI Failures) [ID 414163.1]


Modified 04-AUG-2010     Type PROBLEM     Status ARCHIVED

 

In this Document
   Symptoms
   Cause
   Solution
   References


Applies to:

Oracle Server - Enterprise Edition - Version: 10.2.0.1 to 10.2.0.3 - Release: 10.2 to 10.2
Linux x86
Generic Linux
Linux x86-64
***Checked for relevance on 04-Aug-2010***

Symptoms

When installing 10gR2 RAC on Oracle Enterprise Linux 5 or RHEL5 or SLES10 there are three issues that users must be aware of.

Issue#1 : To install 10gR2, you must first install the base release, which is 10.2.0.1. As these version of OS are newer, you should use the following command to invoke the installer:

$ runInstaller -ignoreSysPrereqs        // This will bypass the OS check //


Issue#2 :  At end of root.sh on the last node vipca will fail to run with the following error:

Oracle CRS stack installed and running under init(1M)
Running vipca(silent) for configuring nodeapps
/home/oracle/crs/oracle/product/10/crs/jdk/jre//bin/java: error while loading
shared libraries: libpthread.so.0: cannot open shared object file:
No such file or directory 

Also, srvctl will show similar output if workaround below is not implemented.

Issue#3 : After working around Issue#2 above, vipca will fail to run with the following error if the VIP IP's are in a non-routable range [10.x.x.x, 172.(16-31).x.x or 192.168.x.x]:

# vipca
Error 0(Native: listNetInterfaces:[3]) 
[Error 0(Native: listNetInterfaces:[3])]

Cause

These releases of the Linux kernel fix an old bug in the Linux threading that Oracle worked around using LD_ASSUME_KERNEL settings in both vipca and srvctl, this workaround is no longer valid on OEL5 or RHEL5 or SLES10 hence the failures.

Solution

If you have not yet run root.sh on the last node, implement workaround for issue#2 below and run root.sh (you may skip running the vipca portion at the bottom of this note). 
If you have a non-routable IP range for VIPs you will also need workaround for issue# 3 and then run vipca manually.

To workaround Issue#2 above, edit vipca (in the CRS bin directory on all nodes ) to undo the setting of LD_ASSUME_KERNEL. After the IF statement around line 120 add an unset command to ensure LD_ASSUME_KERNEL is not set as follows:

if [ "$arch" = "i686" -o "$arch" = "ia64" -o "$arch" = "x86_64" ]
then
  LD_ASSUME_KERNEL=2.4.19
  export LD_ASSUME_KERNEL
fi

unset LD_ASSUME_KERNEL         <<<== Line to be added

 

Similarly for srvctl (in both the CRS and, when installed, RDBMS and ASM bin directories on all nodes ), unset LD_ASSUME_KERNEL by adding one line, around line 168 should look like this:

LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL

unset LD_ASSUME_KERNEL          <<<== Line to be added

Remember to re-edit these files on all nodes :
<CRS_HOME>/bin/vipca
<CRS_HOME>/bin/srvctl
<RDBMS_HOME>/bin/srvctl
<ASM_HOME>/bin/srvctl

after applying the 10.2.0.2 or 10.2.0.3 patchsets, as these patchset will still include those settings unnecessary for OEL5 or RHEL5 or SLES10
.   This issue was raised with development and is fixed in the 10.2.0.4 patchsets .

Note that we are explicitly unsetting LD_ASSUME_KERNEL and not merely commenting out its setting to handle a case where the user has it set in their environment (login shell).

 

To workaround issue#3 (vipca failing on non-routable VIP IP ranges, manually or during root.sh), if you still have the OUI window open, click OK and it will create the "oifcfg" information, then cluvfy will fail due to vipca not completed successfully, skip below in this note and run vipca manually then return to the installer and cluvfy will succeed.  Otherwise you may configure the interfaces for RAC manually using the oifcfg command as root, like in the following example (from any node):

<CRS_HOME>/bin # ./oifcfg setif -global eth0/192.168.1.0:public 
<CRS_HOME>/bin # ./oifcfg setif -global eth1/10.10.10.0:cluster_interconnect 
<CRS_HOME>/bin # ./oifcfg getif 
 eth0 192.168.1.0 global public 
 eth1 10.10.10.0 global cluster_interconnect

 

The goal is to get the output of "oifcfg getif" to include both public and cluster_interconnect interfaces, of course you should exchange your own IP addresses and interface name from your environment. To get the proper IPs in your environment run this command:

<CRS_HOME>/bin # ./oifcfg iflist
eth0 192.168.1.0
eth1 10.10.10.0 

 

If you have not yet run root.sh on the last node, implement workaround for issue #2 above and run root.sh (you may skip running the vipca portion below. If you have a non-routable IP range for VIPs you will also need workaround for issue# 3 above, and then run vipca manually.


Running VIPCA:

After implementing the above workaround(s), you should be able invoke vipca (as root, from last node) manually and configure the VIP IPs via the GUI interface.

<CRS_HOME>/bin # export DISPLAY=<x-display:0>
<CRS_HOME>/bin # ./vipca

Make sure the DISPLAY environment variable is set correctly and you can open X-clock or other X applications from that shell.

Once vipca completes running, all the Clusterware resources (VIP, GSD, ONS) will be started, there is no need to re-run root.sh since vipca is the last step in root.sh. 

 

To verify the Clusterware resources are running correctly:

<CRS_HOME>/bin # ./crs_stat -t
Name           Type        Target State  Host
------------------------------------------------------------
ora....ux1.gsd application ONLINE ONLINE raclinux1
ora....ux1.ons application ONLINE ONLINE raclinux1
ora....ux1.vip application ONLINE ONLINE raclinux1
ora....ux2.gsd application ONLINE ONLINE raclinux2
ora....ux2.ons application ONLINE ONLINE raclinux2
ora....ux2.vip application ONLINE ONLINE raclinux2


You may now proceed with the rest of the RAC installation.


本文原创,转载请注明出处、作者
参考至:http://blog.csdn.net/tianlesoftware/article/details/6045128
             http://space.itpub.net/8797129/viewspace-694738
             http://cs.felk.cvut.cz/10gr2/relnotes.102/b15659/toc.htm#CJABAIIF
             http://blog.chinaunix.net/uid-7589639-id-2921631.html
如有错误,欢迎指正
邮箱:czmcj@163.com

0
0
分享到:
评论

相关推荐

    libpthread.so.0

    《深入理解Linux系统库:libpthread.so.0》 在Linux操作系统中,`libpthread.so.0`是一个至关重要的共享库,它包含了实现线程功能的接口和代码。这个库是POSIX线程(通常称为pthreads)在Linux上的实现,是多线程...

    libpthread.so

    《Linux系统中的libpthread.so库详解》 在Linux操作系统中,C语言开发过程中经常会遇到一个重要的动态链接库——libpthread.so。这个库是POSIX线程(也称为pthreads)的实现,对于编写多线程应用程序至关重要。本文...

    /usr/bin/ld:cannot find-lThreads的解决办法

    `-lpthread`是链接到静态库libpthread.a或动态库libpthread.so的标志,而`-pthread`是GCC和Clang的编译选项,它会在编译时自动添加必要的链接标志,通常等同于`-lpthread`,但有时可能更合适。 3. **`target_link_...

    gnu.rar_libpthread.so

    Distributed computing is a natural result of the use of networks to allow computers to efficiently communicate.

    libpthread_nonshared.a

    银河麒麟、统信服务器安装oracle19c时需要的文件(提示so文件不存在时使用的)需要放到/usr/lib64/目录下 解决 /usr/bin/ld: 找不到 -lclntshcore

    runtime library [libssl.so.1.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:/home/

    runtime library [libssl.so.1.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in: /home/rw/anaconda3/lib 首先查看路径,可以看到返回结果中,第一个查找路径是anaconda的。 export $PATH bash: export...

    免安装strace strace.zip

    免安装strace [root@vmtca-2003 strace-5.1]# ldd strace linux-vdso.so.1 (0x00007ffc14ffb... libpthread.so.0 =&gt; /lib64/libpthread.so.0 (0x00007fe61ff54000) /lib64/ld-linux-x86-64.so.2 (0x00007fe620741000)

    免安装的perf程序,基于内核4.18.0-553.27.1

    libpthread.so.0 =&gt; /lib64/libpthread.so.0 (0x00007f57ed065000) librt.so.1 =&gt; /lib64/librt.so.1 (0x00007f57ece5d000) libm.so.6 =&gt; /lib64/libm.so.6 (0x00007f57ecadb000) libdl.so.2 =&gt; /lib64/libdl.so...

    树莓派官方交叉编译器

    树莓派是一款基于ARM架构的微型计算机,广受开发者和DIY爱好者喜爱。为了在非树莓派系统(如Windows、macOS或Linux)上构建适用于树莓派的软件,就需要使用交叉编译器。交叉编译器允许你在一台设备上生成另一台设备...

    linux pthread libc静态库

    在Linux中,`pthread`和`libc`的静态库通常分别表示为`libpthread.a`和`libpthread.a`。`libpthread.a`包含了实现线程创建、同步、互斥等操作的函数,如`pthread_create`、`pthread_join`等。`libpthread.a`则包含了...

    ARM架构下,Qt打包时常缺少的库文件,包含了相关的network模块以及MYSQL驱动

    文件目录: ld-2.25.so libm.so.6 libQt5Core.so.5.9.9 ld-linux-aarch64.so.1 libmysqlclient_r.so libQt5Network.so.5 ld-linux-x86-64.so.2 libmysqlclient.so ...libgthread-2.0.so.0 libpthread.so.0 libstdc++.

    半静态编译的bpftrace:v0.16.0

    libpthread.so.0 =&gt; /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fef15408000) libdl.so.2 =&gt; /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fef15403000) libm.so.6 =&gt; /lib/x86_64-linux-gnu/libm.so.6 (0x...

    Linux -lpthread缺失时要用的arm arm64下的链接库

    可以通过`ldconfig -p | grep libpthread`命令查看。如果找不到,可能需要从源代码编译或通过软件包管理器(如`apt`或`yum`)安装。 2. **交叉编译**:如果你的目标是arm或arm64平台,但编译环境是其他架构(如x86_...

    ok6410开发板sqlite3移植

    sqlite3: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory ``` 这是因为SQLite依赖的一些库没有正确安装或配置。 #### 五、分析依赖库 1....

    linux下安装oracle所需要依赖程序大全

    - `libpthread.so.0`: 多线程库,Oracle数据库是多线程应用,需要这个库支持并发执行。 - `libclntsh.so`: Oracle客户端库,如果需要在服务器端执行SQL*Plus或其他Oracle客户端工具,这个库是必需的。 3. **内核...

    Pthread多线程编程指南

    通过学习并熟练掌握Pthread库,开发者能够构建高效、可靠、可移植的多线程应用程序,充分利用多核处理器的性能优势,解决复杂的并发问题。同时,了解线程同步和通信机制有助于预防和解决常见的并发问题,如死锁、...

    linux onvif-device-tool.tar.gz

    依赖包的版本如下: libssl.so.1.1 libcrypto.so.1.1 libz.so.1 libQt5GStreamerUi-1.0.so.0 libQt5GStreamer-1.0.so.0 libQt5GLib-2.0.so.0 ...libpthread.so.0 libstdc++.so.6 libgcc_s.so.1 libc.so.6

    数码天空破解文件cccam205

    libpthread.so.0 pthread_cond_wait recv connect pthread_create send accept pthread_cond_signal pthread_cond_init pthread_mutex_unlock pthread_mutex_lock pthread_mutex_init _Jv_RegisterClasses close ...

    libpthread-stubs_0.4.orig.tar.gz

    《libpthread-stubs:线程库的模拟与接口解析》 libpthread-stubs是一个轻量级的库,它提供了一组基本的线程API(应用程序编程接口)的模拟实现。这个库主要用于测试和验证目的,它并不具备完整功能,但能帮助...

Global site tag (gtag.js) - Google Analytics