Archive for oracle

May 24, 2006

一个gqlplus调用速度慢的症状和解决办法

Posted in linux, oracle at 10:55 am by jhsea3do

一台Linux主机,安装了oracle8i,并添置了gqlplus替代sqlplus。

一段时间以来,gqlplus都运行稳定,未出现问题,但这些天忽然变慢了,具体症状是输入gqlplus user/pass后需要等待很长的时间才能出现sql提示符。但如果使用${ORACLE_HOME}/bin/sqlplus却又没有问题。

后经检查配置文件发现,${ORACLE_HOME}/network/admin/listener.ora中的主机为localhost.localdomain,而${ORACLE_HOME}/network/admin/tnsnames.ora中的主机为server0。

安装oracle8i时,曾将127.0.0.1设定为server0,后来需要调整127.0.0.1为server00,并把server0设为了WAN IP,这样tns服务就出现了问题。解决办法是替换掉tnsnames.ora中的server0为server00,然后lsnrctl restart,这样就解决了问题。注意server00在hosts文件中分别对应了LOCAL IP和WAN IP。

February 9, 2006

Win2k上安装Oracle817遭遇ORA-12560错误

Posted in oracle at 3:13 pm by jhsea3do

朋友在一台windows 2000 server的域服务器上安装Oracle817遇到了问题:RDC下远程安装在做net8配置时死活不能通过,于是断网到本机上进行安装(据说网上某篇文章提到此方法),装好了以后测试sqlplus internal/oracle登录没有问题,但是RDC之后还是无法登陆sqlplus,报ORA-12560错误。

我曾在win32/linux/osx上都安装过oracle,所以我帮他看了一下,他的SID为oradb,所以我就用sqlplus internal/oracle@oradb试了一下,说是ORA-12154没有此服务不行。我去看了一下tnsnames.ora,里面只有一个服务oradb.xdomain监听的1521端口,所以我又用sqlplus internal/oracle@oradb.xdomain登陆了一次,这次可以了。于是拷贝了oradb.xdomain的配置内容到一个新的服务oradb上,用sqlplus internal/oracle@oradb可以登录,然而直接sqlplus internal/oracle还是不行。我检查了他所有的配置内容,比如安装数据的帐号是否ORA_DBA组成员,注册表中的ORACLE_SID等键值,还有telnet到1521端口,这些全是对的,这时他告诉我可以用pcAnywhere的会话登陆sqlplus(装好以后我们一直是用RDC调试的),到这里我就十分郁闷了,因为我自己也搭建过和他相似的环境却没有这种现象,而且我本人是十分不喜欢用pcAnywhere这样的远程控制的。

仔细看google第一个结果网页,发现要设置一个环境变量LOCAL,于是我就set LOCAL=oradb,果然就可以了!对比baidu第一搜索结果,简直是误人子弟。

这次遇到的问题也是有史以来我第一次发现在RDC和Console两种模式下,使用windows出现不同的结果。我估计一开始不能装oracle也是因为在RDC的环境下,所以远程安装oracle还是用pcAnywhere比较好… 错了,其实干脆不用windows,用linux更好!

January 19, 2006

在cygwin下使用sqlplus

Posted in cygwin, oracle, win32 at 4:37 pm by jhsea3do

很少用cygwin,不过因为一些原因不得不用了。装好了cygwin后我通常会安装一个sshd,但是如果登陆后使用sqlplus时往往不能像在dos下那么方便。

如果我使用osx或者linux,我都会选择安装一个gqlplus,但是在cgywin环境下编译后执行却出现了错误(很有可能是我的参数没设好,不过我就不想研究了),所以我找到了一个叫rlwrap的readline的包装工具。

安装rlwrap十分简单,保证cgywin上安装了gcc和readline的lib,然后就可以下载make了。成功安装后,执行

/$pathto/rlwrap /$pathto/sqlplus $username/$password

其他就都和gqlplus一样了(也有那么一个 ~/.sqlplus_history 文件)。