bash: sqlplus: command not found

(本文为转载,备用查询)

在Linux中Oracle安装成功后,首次启动使用时,会出现的一些问题总结和解决办法 

 1、  sqlplus命令不识别问题(bash :sqlplus command not found)   当你首次安装oracle后,也许会出现这种情况,第一次或许有点棘手,不知道如何改怎么办。这时不用着急,想想Linux里面的命令是如何运行的,如adduser等,我们发现是因为在/bin/文件夹下有这样的一个文件adduser,于是我们也想到了,把安装好的oracle中bin目录下的sqlplus文件拷贝到/bin文件目录下,   cp /opt/app/oracle/product/10.2.0/db_1/bin/sqlplus /bin   拷贝后,终端中运行sqlplus,成功。           注意:拷贝后,最好把执行权限给所有的用户,不然新建用户不能使用。          chmod 777 /bin/sqlplus  

2、  启动oracle服务问题   不同Linux系统oracle启动文件不同,如Ubuntu下,我们需要建立/etc/init.d/oracledb,而在kylin系统中,文件在/etc/init.d/dbora,但位置都大致相同,我们只需要仔细找找都可以找到这样的一个启动服务文件。当你运行这些文件时,注意oracledb或dbora里面的变量,ORACLE_HOME、ORACLE_SID、PATH等等,这些变量都需要我们根据自己所安装的oracle目录具体配置。配置时,使用命令export:   export ORACLE_HOME=/opt/app/oracle/product/10.2.0/db_1   路径名看你安装oracle路径而定。   其他变量类似。     

3、lsnrctl、emctl等命令的识别问题(bash:lsnrctl/emctl command not found)          当在运行lsnrctl时,或许会出现bash:lsnrctl/emctl command not found这样的错误,不用着急,这个问题和第一个sqlplus命令未找到是类似的,我们也只需把$ORACLE_HOME/bin目录下的lsnrctl文件拷贝到/bin目录下(记得像问题1一样,改变执行权限),就可以识别了。          而当在终端中运行emctl时,或许会出现ORACLE_HOME未定义问题。Environment variable ORACLE_SID not defined. Please define it。这样根据提示,我们知道问题出在了哪,于是我们想,在哪里才能让它识别变量ORACLE_SID呢,Linux中都有几个通用的特定文件。如~/.profile ~/.bash_profile  ~/.bashrc等等,~这个符号代表当前用户的主目录,
如当前用户为user,这样~代表/home/user。上面给的几个文件都是用来配置用户环境的,如果你想让你所运行的脚本识别这些问题,都必须打开并在后面添加这些变量。   对于刚才$ORACLE_SID变量问题,解决方案就是在这些文件中添加ORACLE_SID,但是到底添加到哪个文件呢,你可以试着打开上面的这些文件,如果里面存在东西,那就加在里面,我的系统添加到的是~./bashrc,首先打开: vi ~./bashrc,然后添加   export ORACLE_SID=orcl,。然后 source ~./bashrc,使这个文件重新生效。   这样,lsnrctl、emctl都可以顺利通过了。    
 4、  第一次安装oracle不能运行任何命令   第一次安装oracle后,发现sqlplus,lsnrctl等都不可以运行,即使把路径走到$ORACLE_HOME/bin目录下,也不可以。这是我是通过首先运行dbstart命令来解决的(走到安装目录的bin目录下运行)。     

5、  数据库必须启动   如果你上述都顺利通过了,但是当你用sqlplus登录进去的时候,总是出错。   登录使用默认方式:sqlplus / as sysdba。这是你应该是第一次登录到oracle数据库中,数据库还不能使用,这样你必须使用startup mount、startup open命令解决。这样数据库就打开了,你就可以使用整个数据库了。如果打开时失败了,你可以先shutdown下,先关闭再打开数据库。     

6、  不同用户使用oracle问题   当你新建一个用户时,你会发现emctl等其他一些命令又不可以使用了,这又是为什么呢?当我们看错误出现的地方,发现存在变量未定义,这样又回到了问题2、3了,因为这些变量未定义,所以不能够成功执行。根据Linux系统所提供的每个用户都有一个环境文件,(.profile .bash_profile .bashrc)等,按照问题3,我们只需在这些文件里面加入所需要的变量就可以了,步骤和问题3一样。    +++++++++++++++++   [oracle@ljc /bin]$ sqlplus /nolog
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

 

 

 

本站实际使用:

1.启动数据库之前 确定查询一下环境变量
[xjgz@web /opt/oracle/product/10.2.0/sqlplus/bin]$ env
设置好正确的   ORACLE_HOME  和 ORACLE_SID
-------------------------------------------------------------------
[root@web /]# ln -s /opt/oracle/product/10.2.0/bin/sqlplus /usr/bin/
[root@web /]# su xjgz
[xjgz@web /]$ sqlplus /nolog
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
[xjgz@web /]$ export ORACLE_HOME=/opt/oracle/product/10.2.0
2.SQL> connect /as sysdba 
ERROR:
ORA-12162: TNS:net service name is incorrectly specified
SQL> exit
[xjgz@web /]$ export ORACLE_SID=xjgzbj
[xjgz@web /]$ sqlplus /nolog

——————————————————————————
启动监听
3.[xjgz@web /]$ lsnrctl startup
bash: lsnrctl: command not found
4.解决错误:
[root@web /]# cp /opt/oracle/product/10.2.0/bin/lsnrctl  /bin
[root@web /]# chmod 777 /bin/lsnrctl
5.顺利启动
[xjgz@web /]$ lsnrctl start

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值