自oracle安装及使用中出现的问题及解决文档格式.docx
《自oracle安装及使用中出现的问题及解决文档格式.docx》由会员分享,可在线阅读,更多相关《自oracle安装及使用中出现的问题及解决文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
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"
<
eof>
;
"
whenexpectingoneofthefollowing....
发生PCC-S-02201错误时有两种解决办法:
1)升级编译器
2)设置parse=none
更正后的命令:
prociname=test.pcparse=none
结果生成test.c文件
5、error:
sqlca.h:
执行gcc-otesttest.c时:
test.c:
152:
19:
error:
sqlca.h在$ORACLE_HOME/precomp/public/下
gcc-otesttest.c-I$ORACLE_HOME/precomp/public
6、undefinedreferenceto`sqlcxt'
执行5中的命令时出现错误如下:
(.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:
cannotrestoresegmentprotafterreloc:
相关的文章:
Topic:
SomeLinuxdistributionswithSELinuxenabledmaypreventIDLfromrunningunderthedefaultsecuritycontext.ThisTechTipisaworkaroundforCR#41937
Discussion:
NewerLinuxdistributionshaveenablednewkernelsecurityextensionsfromtheSELinuxprojectattheNSA.Theseextensionsallowfiner-grainedcontroloversystemsecurity.However,SELinuxalsochangessomedefaultsystembehaviors,suchassharedlibraryloading,thatcanbeproblematictothirdpartyprograms.Ifyoureceivetheerrormessage"
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<
stddef.h>
.........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:
/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
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:
libmysqlclient.so.15:
说明
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
/opt/IBM/db2/V8.1/lib/libdb2trcapi.so.1:
cannotrestoresegmentprot
afterreloc:
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,找到这段:
把SELINUX=enforcing注释掉:
#SELINUX=enforcing,然后新加一行为:
保存,关闭。
oracle-00955错误,我用selectobject_name,object_typefromuser_objectswhereobject_name=upper('
customers'
)查找用到这个名称的对象,结果也是没有找到,建表的时候,00955提示名称或对象已经使用,可是明明没有用这个对象名的东西嘛,怎么办呢?
我不想换表名,求高手解答
O
RA-00955:
名称已由现有对象使用
ORA-06512:
在"
SZEMR.OUT_EMR"
line42
在line3
Viewprogramsourcesoferrorstack?
对我有用[0]
丢个板砖[0]
引用
举报
管理
TOP
回复次数:
3
tangren
(老兵新手)
等 级:
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;
精华推荐:
收集网易数