自oracle安装及使用中出现的问题及解决.docx

上传人:b****6 文档编号:5166150 上传时间:2022-12-13 格式:DOCX 页数:12 大小:36.18KB
下载 相关 举报
自oracle安装及使用中出现的问题及解决.docx_第1页
第1页 / 共12页
自oracle安装及使用中出现的问题及解决.docx_第2页
第2页 / 共12页
自oracle安装及使用中出现的问题及解决.docx_第3页
第3页 / 共12页
自oracle安装及使用中出现的问题及解决.docx_第4页
第4页 / 共12页
自oracle安装及使用中出现的问题及解决.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

自oracle安装及使用中出现的问题及解决.docx

《自oracle安装及使用中出现的问题及解决.docx》由会员分享,可在线阅读,更多相关《自oracle安装及使用中出现的问题及解决.docx(12页珍藏版)》请在冰豆网上搜索。

自oracle安装及使用中出现的问题及解决.docx

自oracle安装及使用中出现的问题及解决

系统默认选项值取自于:

E:

\ProgramFiles\ora92\precomp\admin\pcscfg.cfg

PCC-F-02101,无法打开输入文件:

"E:

\precomp_main_nt_011204\oracle\precomp\demo\proc\samp

Le.pc"一种情况是你COMILE之前,没有保存

解决办法是先保存

另一种情况可能是你的PC文件可能不能用了,

解决办法是'删除重新生成

除此之外有可能是你的PC文件放的位置不正确哈

1、在ORACLE10g安装准备的过程中:

缺少libXp.so.6依赖

上网搜过不少文章,但是都不是很好的解决

我自己摸索出一个解决方法:

在RHEL5的安装盘中找到libXp-1.0.0-8.i386.rpm,进行安装后,便可解决。

2、在ORACLE10g安装过程中Xlib:

connectionto":

0.0"refusedbyserver

Xlib:

connectionto":

0.0"refusedbyserver

Xlib:

Noprotocolspecified

Error:

Can'topendisplay:

:

0.0

以root用户登陆,在shell中运行

[root@brady~]#xhostlocal:

oracle

non-networklocalconnectionsbeingaddedtoaccesscontrollist

然后oracle身份就可以运行X程序了。

manxhost中有这样一段

Acompletenamehasthesyntax‘‘family:

name’’wherethefamiliesareasfollows:

inetInternethost(IPv4)

inet6Internethost(IPv6)

dnetDECnethost

nisSecureRPCnetworkname

krbKerberosV5principal

localcontainsonlyonename,theemptystring

siServerInterpreted

其中local那个是用来解决同一台机器的不同用户访问X的问题的。

3.proc:

errorwhileloadingsharedlibraries:

libclntsh.so.10.1:

cannotopensharedobjectfile:

Nosuchdirectory

解决方法:

在/etc/profile中添加

LD_LIBRARY_PATH=$ORACLE_HOME/lib:

/usr/lib:

/usr/local/lib;

exportLD_LIBRARY_PATH

然后可以用source/etc/profile生效一下

改后如果也不行,你可能没有权限执行libclntsh.so.10.1,请ls-l看一下执行权限吧(有时root也不能执行它的哦)

4、PCC-S-02201错误

在用proc进行编译的时候(prociname=test.pc)出错

错误信息有很多:

PCC-S-02201,Encounteredthesymbol";"whenexpectingoneofthefollowing....

发生PCC-S-02201错误时有两种解决办法:

1)升级编译器

2)设置parse=none

更正后的命令:

prociname=test.pcparse=none

结果生成test.c文件

5、error:

sqlca.h:

Nosuchdirectory

执行gcc-otesttest.c时:

test.c:

152:

19:

error:

sqlca.h:

Nosuchdirectory

sqlca.h在$ORACLE_HOME/precomp/public/下

更正后的命令:

gcc-otesttest.c-I$ORACLE_HOME/precomp/public

6、undefinedreferenceto`sqlcxt'

执行5中的命令时出现错误如下:

test.c:

(.text+0x5e5):

undefinedreferenceto`sqlcxt'

需要用到$ORACLE_HOME/lib/libclntsh.so

故需加上-L$ORACLE_HOME/lib-lclntsh

更正后的命令为:

gcc-otesttest.c-I/home/oracle/oracle/product/10.2.0/db_1/precomp/public-L$ORACLE_HOME/lib-lclntsh

OK!

至此编译成功!

但是这样写太麻烦

7、errorwhileloadingsharedlibraries:

$ORACLE_HOME/lib/libnnz10.so:

cannotrestoresegmentprotafterreloc:

Permissiondenied

执行程序(./test)时提示错误:

errorwhileloadingsharedlibraries:

$ORACLE_HOME/lib/libnnz10.so:

cannotrestoresegmentprotafterreloc:

Permissiondenied

相关的文章:

Topic:

SomeLinuxdistributionswithSELinuxenabledmaypreventIDLfromrunningunderthedefaultsecuritycontext.ThisTechTipisaworkaroundforCR#41937

Discussion:

NewerLinuxdistributionshaveenablednewkernelsecurityextensionsfromtheSELinuxprojectattheNSA.Theseextensionsallowfiner-grainedcontroloversystemsecurity.However,SELinuxalsochangessomedefaultsystembehaviors,suchassharedlibraryloading,thatcanbeproblematictothirdpartyprograms.Ifyoureceivetheerrormessage"cannotrestoresegmentprotafterreloc:

Permissiondenied"whenlaunchingIDL,thenyourSELinuxconfigurationispreventingIDLfromlaunching.

Torectifythisissue,youcaneither:

(1)ChangethedefaultsecuritycontextforIDLbyissuingthecommand:

chcon-ttexrel_shlib_t/usr/local/rsi/idl_6.1/bin/bin.linux.x86/*.so

(2)DisablingSELinuxaltogetherbysettingtheline

SELINUX=disabled

inyour/etc/sysconfig/selinuxfile.

我使用的解决办法:

chcon-ttexrel_shlib_t$ORACLE_HOME/lib/*.so

PCC-S-02015错误

1、配置好$ORACLE_HOME/precomp/admin/pcscfg.cfg文件

根据你的系统不同,大概像这样

Erroratline33,column10in

#include

.........1

PCC-S-02015,unabletoopenincludeatline34,column11in

#include

..........1

PCC-S-02015,unabletoopenincludefile

但是在RHEL4上都是好的,检查后发现/u01/app/oracle/product/10.2.0/db_1/precomp/admin/pcscfg.cfg文件中指定的搜索路径有问题,

[oracle@rzgh~]$less/u01/app/oracle/product/10.2.0/db_1/precomp/admin/pcscfg.cfg

sys_include=(/ade/aime_rdbms_9819/oracle/precomp/public,/usr/include,/usr/lib/gcc-lib/i486-suse-linux/2.95.3/include,/usr/lib/gcc-lib/i386-redhat-linux/3.2.3/include,/usr/lib/gcc-lib/i386-redhat-linux7/2.96/include)

ltype=short

/u01/app/oracle/product/10.2.0/db_1/precomp/admin/pcscfg.cfg(END)

由于CentOS5.5升级后,gcc的版本已经到了4.1.2,相关的头文件路径也发生了变化,所以这里配置的头文件是找不到的。

按照上面的报错,逐个解决,添加头文件:

[handsome@rzgh~]$find/usr-namestddef.h-print

/usr/src/kernels/2.6.18-238.19.1.el5-i686/include/linux/stddef.h

/usr/src/kernels/2.6.18-194.el5-i686/include/linux/stddef.h

/usr/include/linux/stddef.h

/usr/lib/syslinux/com32/include/stddef.h

/usr/lib/syslinux/com32/include/bitsize/stddef.h

find:

/usr/lib/audit:

Permissiondenied

/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h

/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h

/usr/lib/bcc/include/stddef.h

选择使用4.1.1的头文件目录,添加到/u01/app/oracle/product/10.2.0/db_1/precomp/admin/pcscfg.cfg中,重新进行编译,不再报错了。

 

同题sys_include=(/usr/lib/gcclib/i386redhatlinux/3.2.2/include,/u01/oracle/product/8.1.7/precomp/public,/usr/include,/usr/include/sys)

include=(/u01/oracle/product/8.1.7/precomp/public)

include=/u01/oracle/product/8.1.7/precomp/hdrs

include=/u01/oracle/product/8.1.7/tpcc2x_2/src

include=/u01/oracle/product/8.1.7/precomp/precomp/include

include=/u01/oracle/product/8.1.7/precomp/oracore/include

include=/u01/oracle/product/8.1.7/precomp/oracore/public

include=/u01/oracle/product/8.1.7/precomp/rdbms/include

include=/u01/oracle/product/8.1.7/precomp/rdbms/public

include=/u01/oracle/product/8.1.7/precomp/rdbms/demo

include=/u01/oracle/product/8.1.7/precomp/nlsrtl/include

include=/u01/oracle/product/8.1.7/precomp/nlsrtl/public

include=/u01/oracle/product/8.1.7/precomp/network_src/include

include=/u01/oracle/product/8.1.7/precomp/network_src/public

include=/u01/oracle/product/8.1.7/precomp/network/include

include=/u01/oracle/product/8.1.7/precomp/network/public

include=/u01/oracle/product/8.1.7/precomp/plsql/public

ltype=short

2、预编译的时候加上parse=none选项

prociname=***parse=none

3、编译的时候要链接oracle的库文件,加选项-lclntsh

下面是我参照别的网友的一个makefile文件,

INCLDIR=-I.-I/u01/oracle/product/8.1.7/precomp/public-I/u01/oracle/product/8.1.7/rdbms/public-I/u01/oracle/product/8.1.7/rdbms/demo-I/u01/oracle/product/8.1.7/plsql/public-I/u01/oracle/product/8.1.7/network/public

DFLAGS=-DPRECOMP-DLINUX-D_GNU_SOURCE-DSLTS_ENABLE-DSLMXMX_ENABLE-D_REENTRANT-DNS_THREADS

CFLAGS=-O3

LIBPATH=-L/u01/oracle/product/8.1.7/lib/

LIBS=-lclntsh`cat/u01/oracle/product/8.1.7/lib/sysliblist`-ldl-lm

myproc:

myproc.pc

procparse=noiname=myproc.pcinclude=$(ORACLE_HOME)/precomp/public

gcc-o$@$@.c-I$(ORACLE_HOME)/precomp/public-L$(ORACLE_HOME)/lib-lclntsh-lclient8$(LIBPATH)$(LIBS)

clean:

rm*.lismyproc.cmyproc

摘要

0000090:

errorwhileloadingsharedlibraries:

libmysqlclient.so.15:

cannotrestoresegmentprotafterreloc:

Permissiondenied

说明

errorwhileloadingsharedlibraries:

libmysqlclient.so.15:

cannotrestoresegmentprotafterreloc:

Permissiondenied

kitsoft

2009-03-0202:

10

错误原因在于selinux禁用了访问此共享库

解决办法:

关闭selinux

1、编辑/etc/selinux/config文件,找到SELINUX=enforcing,改为SELINUX=enforcing

2、编辑/etc/sysconfig/selinux文件,找到SELINUX=enforcing,改为SELINUX=enforcing

3、重启电脑

[root@localhost~]#more/etc/sysconfig/selinux

#ThisthestateofSELinuxonthesystem.

#SELINUX=cantakeoneofthesethreevalues:

#enforcing-SELinuxsecuritypolicyisenforced.

#permissive-SELinuxprintswarningsinsteadofenforcing.

#disabled-SELinuxisfullydisabled.

SELINUX=enforcing

#SELINUXTYPE=typeofpolicyinuse.Possiblevaluesare:

#targeted-Onlytargetednetworkdaemonsareprotected.

#strict-FullSELinuxprotection.

SELINUXTYPE=targeted

看来是selinux的缘故,关掉selinux试试!

修改SELINUX=disabled,然后重启系统才能生效,或者执行:

setenforce0,立即生效。

果然,关闭selinux后,sqlplus可以正常登陆了。

其实在上面出现Permissiondenied时,也可以执行

#chcon-ttexrel_shlib_t$ORACLE_HOME/lib/*.so

 

errorwhileloadingsharedlibraries:

/opt/IBM/db2/V8.1/lib/libdb2trcapi.so.1:

cannotrestoresegmentprot

afterreloc:

Permissiondenied

1.环境

Linuxlocalhost.localdomain2.6.18-8.el5#1SMPFriJan2614:

15:

21EST2007i686i686i386GNU/Linux

2.解决方案

sudochcon-ttexrel_shlib_t/opt/IBM/db2/V8.1/lib/libdb2trcapi.so.1

若有其他库文件则直接:

sudochcon-ttexrel_shlib_t/opt/IBM/db2/V8.1/lib/*.so

3.若是还不行直接关闭SELinux

setenforce[Enforcing|Permissive|1|0]

setenforce0关闭不用重启.

一下修改需要重启:

编辑/etc/selinux/config,找到这段:

#ThisthestateofSELinuxonthesystem.

#SELINUX=cantakeoneofthesethreevalues:

#enforcing-SELinuxsecuritypolicyisenforced.

#permissive-SELinuxprintswarningsinsteadofenforcing.

#disabled-SELinuxisfullydisabled.

SELINUX=enforcing

把SELINUX=enforcing注释掉:

#SELINUX=enforcing,然后新加一行为:

SELINUX=disabled

保存,关闭。

 

 

oracle-00955错误,我用selectobject_name,object_typefromuser_objectswhereobject_name=upper('customers')查找用到这个名称的对象,结果也是没有找到,建表的时候,00955提示名称或对象已经使用,可是明明没有用这个对象名的东西嘛,怎么办呢?

我不想换表名,求高手解答

O

RA-00955:

名称已由现有对象使用

ORA-06512:

在"SZEMR.OUT_EMR",line42

ORA-06512:

在line3

Viewprogramsourcesoferrorstack?

对我有用[0]

丢个板砖[0]

引用

举报

管理

TOP

回复次数:

3

tangren

(老兵新手)

等 级:

3

2

#1楼得分:

0回复于:

2011-06-2108:

51:

21

你每次都创建临时表ca_emr,oracle不会自动删除临时表,所以报名称已被使用的错误!

oracle的临时表的表不是临时的,跟SQLServer有重大的区别!

数据是临时的会自动随事务或会话结束而清除,并且不同的会话之间是不能看见对方的数据。

因此:

不要在存储过程中建立临时表,先在外面建立好临时表,然后在存储过程中处理数据就行了。

CREATEGLOBALTEMPORARYTABLEca_emr(

MRIDvarchar(20),

dia_datevarchar(30),

flagvarchar

(1),

doctorvarchar(5),

iccardnovarchar(20),

MDESCRIPTvarchar(4000),

MHISDESCRIPTvarchar(4000),

CHECKUPvarchar(4000),

CHECKASSvarchar(4000),

COURSERECvarchar(4000),

admiss_timessmallint,

DIAGNOSECONTENTvarchar(60),

DIAGNOSERANGEnchar

(2)

oncommitPRESERVErows;

对我有用[0]

丢个板砖[0]

引用

举报

管理

TOP

精华推荐:

收集网易数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1