1、切换用户后就不能用sqlplus了,每次都得关机重启:
这要从su 和 su - 这两个切换用户的名令说起了,前者只是切换了身份,但SHELL环境仍然是原用户的SHELL;而后者连用户和SHELL环境一起切换成新用户的了。只有切换了SHELL环境才不会出现PATH环境变量错误。也就能找到命令了。
具体案例:
我用root登陆。然后切换到oracle用户下,执行sqlplus 命令 却报错:command not found!
就是因为使用的是su ,而不是su -
另外还有个很明显的区别:
比如说 root用户在/root/目录下, su oracle,
切换到了oracle 用户,但是目录仍然在/root/下。
如果使用su - oracle
你可以发现目录也切换到oracle用户的家目录下。此时的命令就可以用了,因为这时环境变量换成了oracle的啦。。
2、进入sqlplus后,进行命令操作,发现键盘上的上下箭头键不能切换以前使用过的命令,左右箭头键不能移动光标:
在Linux下面使用sqlplus很不爽,上下键,退格键都不能用,严重降低生产效率。
某一天终于发现了这个rlwrap这个好东西,特写此文记录。
由于时间关系,可以从这里
下载安装包。(也可以到我的资源去下载:
http://download.csdn.net/detail/changyanmanman/4503408)
下载后,将.zip扩展名去掉,传到Linux服务器上面。
先装上一些安装rpm
一:安装readline
OS的安装光盘里提供了readline包.
[root@oracle11g ~]# rpm -Uvh readline*
error: Failed dependencies: libtermcap-devel is needed by readline-devel-5.1-1.1.i386.rpm
[root@oracle11g ~]# rpm -Uvh libtermcap-devel-2.0.8-46.1.i386.rpm
[root@oracle11g ~]# rpm -Uvh readline*
package readline-5.1-1.1 is already installed
[root@oracle11g ~]# rpm -Uvh readline-devel-5.1-1.1.i386.rpm
二:安装rlwrap
[root@oracle11g ~]# tar -zxvf rlwrap-0.30.tar.gz
[root@oracle11g ~]# cd rlwrap-0.30
[root@oracle11g rlwrap-0.30]# ./configure
[root@oracle11g rlwrap-0.30]# make
[root@oracle11g rlwrap-0.30]# make install
三:方便使用rlwrap
[root@oracle11g rlwrap-0.30]# vi /home/oracle/.bash_profile
添加
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
Linux下的SQL Plus 终于可以像Windows下的那样使用了。
3、用ed命令时找不到默认的编辑器。
1 RedHat Enterprise Linux 5 Update 3;
2 oracle10g R2(10.2.0.1.0)for linux;
二 功能实现原因
window平台上sqlplus中使用edit可以使用默认的笔记本打开缓冲区的内容,而linux平台上在sqlplus中默认执行edit命令不能执行编辑,这是没有为sqlplus设置默认的编辑器。下文中将以vi为sqlplus的默认编辑器。
三 方法[以oracle用户执行]
[oracle@as5u3 ~]$export EDITOR=vi #原文set _EDITOR=vi,"_"符号不使用
登陆sqlplus中测试
[oracle@as5u3 ~]$sqlplus test/test
sql> select sysdate from dual;
sql> ed [edit的简写] #sqlplus自动切换到vi,以vi打开缓冲区的语句
在vi中修改sql,存盘,会自动重新读入到sqlplus的缓冲区。
四 sqlplus进入后,执行ed时自动调用vi
2 oracle10g R2(10.2.0.1.0)for linux;
二 功能实现原因
window平台上sqlplus中使用edit可以使用默认的笔记本打开缓冲区的内容,而linux平台上在sqlplus中默认执行edit命令不能执行编辑,这是没有为sqlplus设置默认的编辑器。下文中将以vi为sqlplus的默认编辑器。
三 方法[以oracle用户执行]
[oracle@as5u3 ~]$export EDITOR=vi #原文set _EDITOR=vi,"_"符号不使用
登陆sqlplus中测试
[oracle@as5u3 ~]$sqlplus test/test
sql> select sysdate from dual;
sql> ed [edit的简写] #sqlplus自动切换到vi,以vi打开缓冲区的语句
在vi中修改sql,存盘,会自动重新读入到sqlplus的缓冲区。
四 sqlplus进入后,执行ed时自动调用vi
五:vi .bash_profile #写入oracle用户的环境变量
export EDITOR=vi #将这行追加到最后一行
重新使用oracle登陆,进入sqlplus即可。
4、现象:不能在 本地计算机 启动 OracleDBConsoleorcl。:
有关更多信息,查阅系统事件日志。如果这是非 Microsoft 服务,请与服务厂商联系,并参考特定服务错误代码 2。
系统事件日志 报错误"Agent process exited abnormally during initialization."
出现情况:原来正常,IP地址变了后就不能启动,
我的解决步骤如下:
1、开始-》运行cmd
2、执行 emctl start dbconsole
C:\Documents and Settings\xcl>emctl start dbconsole
Environment variable ORACLE_SID not defined. Please define it.
提示:环境变量 ORACLE_SID 未定义,请定义。
3、设置 ORACLE_SID =ORCL (orcl是我的实例名,也是服务名)
C:\Documents and Settings\xcl>set oracle_sid=orcl
4、再次执行emctl start dbconsole
C:\Documents and Settings\xcl>emctl start dbconsole
OC4J Configuration issue. E:\oracle\product\10.2.0\db_1/oc4j/j2ee/OC4J_DBConsole
_china-d9e3f7d07_orcl not found.
提示:无法找到“E:\oracle\product\10.2.0\db_1/oc4j/j2ee/OC4J_DBConsole
_china-d9e3f7d07_orcl “
注:china-d9e3f7d07 是我的计算机名
复制该目录下的“OC4J_DBConsole_localhost_orcl”文件夹放在同一目录下,且把名称改成“OC4J_DBConsole_china-d9e3f7d07_orcl”。
5、再次执行emctl start dbconsole
C:\Documents and Settings\xcl>emctl start dbconsole
EM Configuration issue. E:\oracle\product\10.2.0\db_1/china-d9e3f7d07_orcl not f
ound.
提示:无法找到 “E:\oracle\product\10.2.0\db_1/china-d9e3f7d07_orcl ”
复制该目录下的“localhost_orcl”文件夹放在同一目录下,且把名称改成“china-d9e3f7d07_orcl”。
6、再次执行emctl start dbconsole
C:\Documents and Settings\xcl>emctl start dbconsole
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
Copyright (c) 1996, 2006 Oracle Corporation. All rights reserved.
http://localhost:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 10g Database Control ...OracleDBConsoleorcl
服务正在启动 ...................................................................
................................................................................
................................................................................
..............................
OracleDBConsoleorcl 服务已经启动成功。
本方法 参考资料:
http://www.51edu.com/it/2009/0330/article_16537.html
出现情况:原来正常,IP地址变了后就不能启动,报错误"Agent process exited abnormally during initialization."
步骤:
1:运行cmd
2:执行emctl start dbconsole,提示“找不到环境变量ORCALE_SID”,请运行SET ORCALE_SID=***
3:再次执行emctl start dbconsole,提示“无法找到D:\oracle\product\10.2.0\db_1\e1c8cd_SKYORCL”,复制该目录下的“localhost_skyorcl”文件夹放在同一目录下,且把名称改成“e1c8cd_SKYORCL”。
4:再次执行emctl start dbconsole,提示“无法找到D:\oracle\product\10.2.0\db_1\oc4j\j2ee\OC4J_DBConsole_e1c8cd_skyorcl”,复制该目录下的“OC4J_DBConsole_localhost_skyorcl”文件夹放在同一目录下,且把名称改成“OC4J_DBConsole_e1c8cd_skyorcl”。
4:再次执行emctl start dbconsole,既可以启动
注意:“localhost_skyorcl”与“OC4J_DBConsole_localhost_skyorcl”俩个文件夹的我名称与目录由您自己安装决定。