1 安装了,但相对应的lib版本不兼容
2 安装了,版本也对了,但lib(.so.version-num)的symbolic link 不正确,没有连结到正确的函式库文件(.so)
1、32位 与 64位 冲突问题
解决 yum provides libX11.so
libX11-devel-1.3-2.el6.x86_64 : Development files for libX11
Repo : base
Matched from:
Filename : /usr/lib64/libX11.so
解决:
yum install libX11-devel-1.3-2.el6.x86_64
安装 x86_64 兼容包
2、平台不兼容ARM X86
ln -s libjpeg.so.6 libjpeg.so
修改
CFLAGS = -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC
为
CFLAGS = -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC-I/home/wu/jpeg-6b/jpeg/include
修改
$(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
为
$(CC) $(CFLAGS) -ljpeg -L/home/wu/jpeg-6b/jpeg/lib -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
############################
64位的centos下安装oracle10g安装找不到libgcc_s , 原因是没有32位的gcc,找一个32位的,放到/usr/lib下就行了。
上几天在安装oracle数据库时出现错误提示,通过查询解决了相关问题,在此做记录备查;
安装平台:
硬件:HP DL385 G7
软件:Liux 5.4(RHEL_5.4 x86_64)
安装过程:
在安装过程中,出现如下提示:
经查询log日志如下:
INFO: mv -f /opt/oracle/product/10.2.0/db_1/bin/ctxlc /opt/oracle/product/10.2.0/db_1/bin/ctxlcO
INFO: mv ctxlc /opt/oracle/product/10.2.0/db_1/bin/ctxlc
INFO: chmod 751 /opt/oracle/product/10.2.0/db_1/bin/ctxlc
INFO: gcc -m32 -o ctxhx -L/opt/oracle/product/10.2.0/db_1/ctx//lib32/ -L/opt/oracle/product/10.2.0/db_1/lib32/ -L/opt/oracle/product/10.2.0/db_1/lib32/stubs/ /opt/oracle/product/10.2.0/db_1/ctx/lib/ctxhx.o -L/opt/oracle/product/10.2.0/db_1/ctx/lib/ -ldl -lm -lctxhx -Wl,-rpath,/opt/oracle/product/10.2.0/db_1/ctx/lib -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /opt/oracle/product/10.2.0/db_1/lib/sysliblist`
INFO: /usr/bin/ld: crt1.o: No such file: No such file or directory
collect2:
INFO: ld returned 1 exit status
make: *** [ctxhx] Error 1
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 '/opt/oracle/product/10.2.0/db_1/ctx/lib/ins_ctx.mk'. See '/opt/oracle/oraInventory/logs/installActions2011-12-19_04-13-15PM.log' for details.
Exception Severity: 1
INFO: The output of this make operation is also available at: '/opt/oracle/product/10.2.0/db_1/install/make.log'
INFO:
经查是由于缺少:glibc-devel包原因,查询并安装相关包:glibc-devel-2.5-42.i386(如果是64位的操作系统,则安装glibc-devel-2.5-42.x86_64数据包)
后继续安装,后出现提示:Error in invoking target 'agent nmo nmb' of makefile '/opt/oracle/product/10.2.0/db_1/sysman/lib/ins_sysman.mk',See
'/opt/oracle/oraInvetory/logs/InstallAction2011-12-19_04-13-15PM.log' for details.
后继续搜索,发现是由于缺少:libaio-devel包引起的,安装:libaio-devel-0.3.106-3.2.i386 libaio-devel-0.3.106-3.2.x86_64包后,问题解决。
相关网址:http://blog.sina.com.cn/s/blog_65f2d7050100pybr.html
该网址有相关命令:rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' +命令 可用来查询系统是否已经安装该命令,及命令版本等信息,比较有效。
错误信息与以上帖子描述一致,但是glibc-devel已经安装,所以并没有解决我的问题,后来想到在~oracle/.bash_profile中有没有LD_LIBRARY_PATH变量,其中的路径有/usr/lib, 但是我locate了一下缺少的crt1.o,是在/usr/lib64中,于是将/usr/lib64加入该变量,看看是否可以解决该问题
应该是已经解决了,或者直接在bash中执行export LD_LIBRARY_PATH=XXXXX:/usr/lib64:/usr/lib
但是又出现一个问题:
INFO: gcc -o /opt/oracle/product/10.2.0/db_1/sysman/lib/nmccollector -L/opt/oracle/product/10.2.0/db_1/lib/ -L/opt/oracle/product/10.2.0/db_1/sysman/lib/ `cat /opt/oracle/product/10.2.0/db_1/lib/sysliblist` -Wl,-rpath,/opt/oracle/product/10.2.0/db_1/lib -lm `cat /opt/oracle/product/10.2.0/db_1/lib/sysliblist` -ldl -lm -L/opt/oracle/product/10.2.0/db_1/lib -Wl,-export-dynamic /opt/oracle/product/10.2.0/db_1/sysman/lib/snmccolm.o /opt/oracle/product/10.2.0/db_1/sysman/lib/libnmccol.a /opt/oracle/product/10
INFO: .2.0/db_1/sysman/lib/libnmcbuf.a /opt/oracle/product/10.2.0/db_1/sysman/lib//libnmadbg.a /opt/oracle/product/10.2.0/db_1/rdbms/lib/libdsga10.a /opt/oracle/product/10.2.0/db_1/lib/libserver10.a /opt/oracle/product/10.2.0/db_1/lib/libclntsh.so `cat /opt/oracle/product/10.2.0/db_1/lib/sysliblist` -ldl -lm
INFO: make[1]: Leaving directory `/opt/oracle/product/10.2.0/db_1/sysman/lib'
INFO: /opt/oracle/product/10.2.0/db_1/sysman/lib/snmccolm.o: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
INFO: make[1]: *** [/opt/oracle/product/10.2.0/db_1/sysman/lib/nmccollector] Error 1
make: *** [nmccollector] Error 2
INFO: End output from spawned process.
INFO: ----------------------------------
ps:这个错误 /home/oracle/database/product/10.2.0/db_1/sysman/lib/snmccolm.o: could not read symbols: File in wrong format
可以忽略,看起来是10.2.0.1安装介质的BUG,那个snmccolm.o是IA32架构的。可以忽略,安装完成后打10.2.0.3补丁即可解决。
创建实例时出现下面的错误:
ORA-27125: unable to create shared memory segment
【转】http://www.eygle.com/rss/20111202.html
在某些操作系统上,当启动数据库或者创建数据库时都可能出现ORA-27125错误,我在Oracle Linux 6上安装Oracle 10.2.0.1,创建数据库时就遇到了这个错误。
这个错误的解决就是修改 /proc/sys/vm/hugetlb_shm_group 文件。
以下是老杨提到过的一个问题,解决方法相同:
帮客户解决一个Linux上数据库无法启动的问题。
客户的Linux 5.6 x86-64环境,安装数据库后,启动数据库报错:ORA-27125。
Oracle文档上关于ORA-27125错误的描述为:
ORA-27125: unable to create shared memory segment
Cause: shmget() call failed
Action: contact Oracle support
查询了一下,发现问题和linux上的hugetbl有关。
解决方法也很简单,首先检查oracle用户的组信息:
[oracle@yans1 ~]$ id oracle
uid=500(oracle) gid=502(oinstall) groups=502(oinstall),501(dba)
[oracle@yans1 ~]$ more /proc/sys/vm/hugetlb_shm_group
0
下面用root执行下面的命令,将dba组添加到系统内核中:
# echo 501 > /proc/sys/vm/hugetlb_shm_group
然后启动数据库,问题消失。
那么hugetlb_shm_group组是什么呢?以下是解释:
hugetlb_shm_group contains group id that is allowed to create SysV shared memory segment using hugetlb page
这里反复提到了HugePage,以下是关于HugePage的说明和解释:
When a process uses some memory, the CPU is marking the RAM as used by that process. For efficiency, the CPU allocate RAM by chunks of 4K bytes (it's the default value on many platforms). Those chunks are named pages. Those pages can be swapped to disk, etc.
Since the process address space are virtual, the CPU and the operating system have to remember which page belong to which process, and where it is stored. Obviously, the more pages you have, the more time it takes to find where the memory is mapped. When a process uses 1GB of memory, that's 262144 entries to look up (1GB / 4K). If one Page Table Entry consume 8bytes, that's 2MB (262144 * 8) to look-up.
Most current CPU architectures support bigger pages (so the CPU/OS have less entries to look-up), those are named Huge pages (on Linux), Super Pages (on BSD) or Large Pages (on Windows), but it all the same thing.
另在安装过程中遇到的操作系统验证错误,可以通过如下方式解决:
在Linux系统中安装oralce的过程中,如果Linux发行版本不是oracle的推荐版本,可能会报如下错误,导致runInstaller无法完成:
Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
Failed <<<<
遇到这个问题,可以通过如下三种方式解决
1、修改Linux的发行标记
如在redhat-5上安装oracle的时候,需要将文件 '/etc/redhat-release'的内容由
Red Hat Enterprise Linux Server release 5 (Tikanga)
修改为Oracle支持的版本
Red Hat Enterprise Linux Server release 4 (Tikanga)
2、runInstaller的时候加上-ignoreSysPreReqs参数,如:
./runInstaller -ignoreSysPreReqs
3.修改oraparam.ini的参数
增加你的系统版本号
###################################################
关闭和开启Oracle数据库
关闭
#su - oracle
$lsnrctl stop
$sqlplus '/as sysdba'
sql>shutdown immediate
启动
#su - oracle
$lsnrctl start
$sqlplus '/as sysdba'
sql>startup
15、其他关闭和开启Oracle数据库的方法