oracle 安装运行错误
第一次使用oracle就出问题了,网上搜索一下同样问题的还不少,我也转发一些以备以后学习
1.创建数据后到最后出现ORA-1238/12638:Credential retrieval failed
解决方法:修改sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES= (NTS)
#SQLNET.AUTHENTICATION_SERVICES= (NTS)
2.最后创建数据库出现 ORA-00988:missing or invalid password(s)
解决办法:
在设置数据库实例的密码时,注意不要以数字开头,否则您将会遇到 ORA-00988 missing or invalid password (口令缺失或无效) 错误。Oracle 10g 安装完成后,您可使用 dbca 命令创建新的数据库实例,或维护已有的数据库实例。
如果您安装的是 Oracle XE 数据库,则必须反安装 Oracle XE 后重新安装 Oracle XE,并在安装过程中指定非数字开头的密码 (例如 password 或 pswd123)。
以上是我遇到的,还有一些
3.如果你不能运行./runInstaller ,提示x11 错误,请使用root 输入如下命令#xhost +
4.如果当你输入dbca命令之后在最后一步会莫名其妙的发生界面消失,并在命令行出现如下错误消息:
/oracle/product/9.2.0.1/bin/dbca: line 124: 27348 Killed $JRE_DIR/bin/jre -DORACLE_HOME=$OH -DJDBC_PROTOCOL=thin -mx64m
-classpath $CLASSPATH
oracle.sysman.assistants.dbca.Dbca $ARGUMENTS时,要解决这个问题,只需要执行下面命令修改dbca脚本:
vi $ORACLE_HOME/bin/dbca 从第118行开始,将第118、119、121、122、123、124共6行都用"#"符号注释掉,结果如下:
#if [ -f /etc/rac_on ]; then
#Run DBCA
$JRE_DIR/bin/jre –native –DORACLE_HOME=$OH……
#else
#Run DBCA
#$JRE_DIR/bin/jre –DORACLE_HOME=$OH……
#fi
修改完成之后再运行dbca重建数据库。如果这一步没有做处理,将会导致创建的数据库没有init配置文件,无法启动
5.建库时候遇到的问题
ORA-29807: specified operator does not exist
这是Oracle 的bug , 可以忽略掉,安装完成后,在$ORACLE_HOME/rdbms/admin 目录下运
行utlrp.sql ,用于修补ORA-29807 错误。
解释:
ORA-29807: specified operator does not exist
This is a known issue (bug 2925665). You can click on the "Ignore" button to continue.
Once DBCA has completed database creation, remember to run the 'prvtxml.plb' script
from $ORACLE_HOME/rdbms/admin independently, as the user SYS. It is also advised
to run the 'utlrp.sql' script to ensure that there are no invalid objects in the database at this time.
很多人进了sqlplus不会跑sql,其实很简单。
比如我这里吧,登录之后,@/home/oracle/a.sql;
就行了。
6.执行sqlplus出现的问题
error while loading shared libraries: libclntsh.so.9.0: cannot open shared object file: No such file or directory
libclntsh.so.9.0这个库是oracle 9i:OCI客户端运行时库,如果程序使用了oci读写数据库必定会装载这个库,它一般在/<oracle
安装路径>/product/9.x.x/lib,除非你没有安装oracle客户端的话(在安装时),就会出现找不到这个库这个问题。
如果安装了,那么程序运行时还是要在/etc/ld.so.conf所列路径下、和LD_LIBRARY_PATH所列路径下 去寻找这个库,如果这两个地
方都找不到就会报错,说找不到这个库。我估计你的/etc/ld.so.conf下肯定没有包含/<oracle安装路径>/product/9.x.x/lib这个路径
,但你的用户shell启动脚本(.bash_profile)设置了。
LD_LIBRARY_PATH=/<oracle安装路径>/product/9.x.x/lib:...这个环境变量,所以你用用户账号运行程序是没问题的。但crontab有自
己的用户账号,crontab运行时并不会设置LD_LIBRARY_PATH=/<oracle安装路径>/product/9.x.x/lib: 。所以就找不到库了。
解决办法就是:将/<oracle安装路径>/product/9.x.x/lib路径加入/etc/ld.so.conf,并运行ldconfig -v(更新动态加载器缓存)就ok
了。
另外,执行sqlplus最好在本地,不要在SSH远程,不然会遇到:
Error 6 initializing SQL*Plus
Message file sp1<lang>.msb not found
SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory
这个错误。
如果坚持要那么做得话。先执行source ~/.bash_profile
然后也可以了。