sqlplus /nolog command not found

本文介绍了解决在配置了环境变量后仍然遇到Oracle SQL*Plus命令未找到的问题。通过创建SQL*Plus到Oracle目录下的符号链接解决了这一问题。

环境变量已经配好,但是仍报错:

[oracle@dg1 ~]$ vi .bash_profile

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
unset USERNAME


export EDITOR=vi
export ORACLE_SID=dg1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export PATH=/u01/app/oracle/product/10.2.0/db_1/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
export PATH=$ORACLE_HOME/bin:$PATH
umask 022

解决方法:

[oracle@dg1 ~]$ sqlplus /nolog
bash: sqlplus: command not found
[oracle@dg1 ~]$ ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
ln: creating symbolic link `/usr/bin/sqlplus' to `/bin/sqlplus': Permission deni ed
[oracle@dg1 ~]$ su - root
Password:
[root@dg1 ~]# ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
[root@dg1 ~]# su - oracle
[oracle@dg1 ~]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Mon May 11 12:51:24 2009

Copyright (c) 1982, 2005, Oracle. All rights reserved.

SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.

Total System Global Area 167772160 bytes
Fixed Size 1218316 bytes
Variable Size 79694068 bytes
Database Buffers 83886080 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
SQL>

本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/aicon/archive/2009/05/11/4167653.aspx

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22934571/viewspace-1047035/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22934571/viewspace-1047035/

<think> 我们正在讨论的是Oracle中的sqlplus /nolog命令的使用方法。根据引用内容,sqlplus /nolog的作用是不登录到Oracle数据库,仅仅启动sqlplus命令行工具。之后,用户可以在sqlplus环境中使用connect命令来连接到数据库。 主要引用内容归纳: - 引用[1][3]:sqlplus /nolog表示不进行登录,仅仅是进入sqlplus软件,然后可以再使用connect命令进行连接。 - 引用[2]:使用sqlplus /nolog进入sqlplus环境后,可以使用connect /as sysdba以sysdba身份连接数据库。 - 引用[4]:sqlplus / as sysdba是操作系统认证方式,不需要监听器(listener)也可以连接实例。而sqlplus /nolog则是先启动sqlplus而不连接,然后再连接。 使用场景: 1. 防止密码泄露:在脚本中先进入sqlplus环境,再输入密码,避免在命令行中直接输入密码(因为命令行输入密码可能会被历史记录或他人看到)[^3]。 2. 在连接前执行某些操作:比如在连接前设置环境变量,或者先进入sqlplus环境再决定以何种身份连接。 3. 数据库未启动时,需要以sysdba身份启动数据库:先通过sqlplus /nolog进入,然后connect /as sysdba,再执行startup命令[^2]。 具体步骤: 1. 打开命令行(Windows)或终端(Linux)。 2. 输入:`sqlplus /nolog`,然后回车。此时进入sqlplus环境,提示符变为`SQL>`。 3. 在SQL>提示符下,使用connect命令连接到数据库。连接方式有多种: - 操作系统认证(不需要密码):`connect / as sysdba` - 使用用户名和密码:`connect username/password` - 通过网络服务名连接:`connect username/password@servicename` 注意:在Linux系统下,如果直接执行sqlplus /nolog提示命令未找到,可能是因为sqlplus不在PATH环境变量中。此时需要指定sqlplus的完整路径,如引用[5]中提到:`/orcl/oracle/product/19.3.0/db/bin/sqlplus /nolog` 另外,关于乱码问题:在引用[2]中提到,使用sqlplus /nolog登录后,如果出现乱码,需要设置环境变量(如NLS_LANG)来解决。 示例: ```bash # Linux下 $ export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 $ export PATH=$ORACLE_HOME/bin:$PATH $ sqlplus /nolog SQL> connect / as sysdba Connected. SQL> select status from v$instance; ``` 总结:sqlplus /nolog主要用于先启动sqlplus而不立即连接到数据库,然后在sqlplus环境中再选择合适的方式连接数据库。 现在,根据要求,我们需要生成相关问题。 </think> ### 🔍 SQLPlus /nolog 使用方法详解 #### 1. **基本概念** `sqlplus /nolog` 是 Oracle 数据库的命令行工具启动方式: - **不连接数据库**:仅启动 SQLPlus 软件环境,不进行数据库登录[^1][^3] - **安全隔离**:避免在命令行暴露用户名/密码(防止历史记录泄露)[^3] - **特殊场景准备**:常用于 DBA 维护操作(如启动关闭数据库)[^2] #### 2. **使用场景与步骤** | 场景 | 命令序列 | 说明 | |------|----------|------| | **操作系统认证登录** | <br>`sqlplus /nolog`<br>`connect /as sysdba`[^2][^4] | 通过 OS 权限直连实例<br>*无需监听器/LSNRCTL* | | **常规用户登录** | <br>`sqlplus /nolog`<br>`connect username/password@service` | 隐藏密码输入过程 | | **数据库启动** | <br>`sqlplus /nolog`<br>`connect /as sysdba`<br>`startup`[^2] | 实例未运行时维护必备 | | **网络服务连接** | <br>`sqlplus /nolog`<br>`connect sys@orcl as sysdba`[^2] | 通过 TNS 服务名连接 | #### 3. **操作系统认证原理** 当使用 `connect /as sysdba` 时: - 绕过密码验证,依赖 OS 用户组权限 - Oracle 检查当前 OS 用户是否在 `dba` 组 - 使用 IPC 协议直连实例(无需网络监听)[^4] ```bash # Linux 权限检查示例 $ groups oracle oracle : dba oinstall ``` #### 4. **常见问题解决** - **命令无效错误** [^5]: ```bash # 指定完整路径执行 $ /u01/app/oracle/product/19c/dbhome_1/bin/sqlplus /nolog ``` - **中文乱码问题**: ```bash # 设置 NLS_LANG 环境变量 $ export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8" $ sqlplus /nolog ``` #### 5. **最佳实践** 1. **维护操作**:数据库启停/备份等 DBA 任务优先使用 OS 认证模式 2. **安全审计**:敏感操作前通过 `nolog` 启动,避免密码留痕 3. **脚本编写**:自动化脚本中推荐显式声明连接方式 ```bash #!/bin/bash sqlplus /nolog <<EOF connect /as sysdba alter system checkpoint; exit EOF ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值