windows中链接远端服务器中的Oracle相关问题总结

本文介绍了解决Linux下Oracle服务自动启动的方法,包括配置oratab文件及rc.local脚本来确保Oracle监听和实例随系统启动。此外,还提供了PL/SQL Developer连接Oracle时遇到的动态执行表不可访问问题的解决方案,以及如何在Oracle中使用上下键回溯命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、每次windows中连接Linux的xshell终端退出时,将出现windows中Oracle链接不上

1.Linux开机自动启动ORACLE设置

前提安装好oracle的linux系统

以root的身份进行登陆进Linux中

安装好Oracle数据库后: 执行 dbstart和dbshut会提示: 
su oracle 切换Oracle用户
[oracle@oracle11g ~]$ dbstart 
ORACLE_HOME_LISTNER is not SET, unable to auto-startOracle Net Listener 
Usage: /home/dell/app/oracle11g/bin/dbstart ORACLE_HOME

错误原因是:$ORACLE_HOME/bin/中的dbstart和dbshut脚本文件中ORACLE_HOME_LISTNER的设置有问题,分别打开两个文件找到:ORACLE_HOME_LISTNER=$1,修改为 
ORACLE_HOME_LISTNER=$ORACLE_HOME, 命令如下: 
[oracle@oracle11g ~]$ vi $ORACLE_HOME/bin/dbstart 
[oracle@oracle11g ~]$ vi $ORACLE_HOME/bin/dbshut 
修改后保存退出,第一个问题已解决; 
 
2.如何在Linux中启动时自动启动Oracle监听和实例 
首先要解决上面的问题,才能继续哟! 
第一步:修改/etc/oratab文件,命令如下: 

键入命令“vi /etc/oratab”(使用vi编辑器编辑文件/etc/oratab)

进入vi编辑器后,找到“orcl:/home/dell/app/oracle11g/bin:N”,改为“orcl:/home/dell/app/oracle11g/bin:Y”。修改完成后,保存退出vi。

说明:orcl为实例名;/home/dell/app/oracle11g/为oracle安装目录;会因安装的情况不同而有所不同。

键入命令“vi /etc/rc.d/rc.local”,如图:

在vi编辑器中,添加:

su oracle -lc "/home/dell/app/oracle11g/bin/lsnrctl start"

su oracle -lc /home/dell/app/oracle11g/bin/dbstart

说明:/home/dell/app/oracle11g为oracle的安装目录,要根据实际情况进行修改。

保存并退出vi。

重启试试吧~祝成功!

二、PL/SQL Developer连接Oracle时,报“动态执行表不可访问,本会话的自动统计被禁止”的错误提示

现象:

第一次用PLSQL Developer连接数据库,若用sys用户登录并操作则正常,若用普通用户比如haishu登录并创建一个表则报错“动态执行表不可访问,本会话的自动统计被禁止。在执行菜单里你可以禁止统计,或在v$session,v$sesstat和v$statname表里获得选择权限。”

原因分析:

从报错提示就可以看出,原因在于动态性能表相关的权限没有被授权给当前用户

解决方法一(推荐):

根据提示,在执行菜单里禁止统计,具体操作方法:在顶部的菜单中选择“工具”-->“首选项”-->“选项”-->“自动统计”。把“自动统计”前面默认的√去掉。

解决方法二:

根据提示,用sys身份给haishu用户授权

grant select on V_session to haishu;

grant select on V_$sesstat to haishu;

grant select on V_$statname to haishu;

或给所有用户授权

grant select on V_$session to public;

grant select on V_$sesstat to public;

grant select on V_$statname to public;


三、oracle 如何上翻回前一条命令
比如我打select * fromm emp;后来弹出错误,我发现自己打错了,按哪个键可以再出现刚才打的命令?

我用的是oracle11g.for.linux。上下键根本行不通,出一个大写A或B,像乱码一样。L键是列出来了,但是不能修改的呢!
悲剧了。在./configure就没通过!

最佳答案

linux下sqlplus不能使用上下键来调用以前输入过的命令,如果想使用这个功能,须要安装个rlwrap,设置如下:
安装rlwrap:
#tar -zxvf rlwrap-0.30.tar.gz
#cd rlwrap-0.30
#./configure ; make install

# vi /home/oracle/.bash_profile
添加
alias sqlplus='rlwrap sqlplus'

在linux上可以使用rlwrap来为sqlplus增加历史回显功能。

rlwrap下载地址
http://www.linuxidc.com/Linux/2009-09/21650.htm

l (或L)
linux的话输入
sql>define_editor=vi
然后每次只需要输入ed就能进入vi编辑模式了。完成后只需要输入“/”就能重新执行编辑好的内容。
windows的话直接输入edit就能修改缓存区里的内容了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值