oracle的连接(出现sqlplus:command not found解决方法)


一、连接到数据库

1、本地登录

a、登录到SYS用户

sqlplus / as sysdba;

如果出现sqlplus:command not found,要确认$ORACLE_HOME、$ORACLE_SID、$PATH相关的值存不存在

执行tail -l /etc/oratab, :N 前面的值就是$ORACLE_HOME,即/u01/oracle/11g
ps -ef|grep ora_|head -2, 最后一个下划线后面的就是$ORACLE_SID,即cmh
$PATH=$ORACLE_HOME/bin:$PATH,添加oracle的环境变量

echo $ORACLE_HOME;  //没有任何输出后需要设置值
export ORACLE_HOME=/u01/oracle/11g
export ORACLE_SID=cmh
export PATH=$ORACLE_HOME/bin:$PTATH

sqlplus / as sysdba;  //设置值之后就可以登录数据库

show user可以显示登录的用户

 在SYS用户下可以修改用户状态

alter user username account lock|unlock identified by pwd;  //修改用户锁定状态和密码

b、登录到普通用户

sqlplus username/pwd;

2、远程登录,后面有@符号,远程登录必须有监听程序,否则无法登录

lsnrctl status   //查看监听状态
conn username/pwd@:/service_name  //简便命名,service_name是监听服务名

conn username/pwd@localName  //本地命名,localName是通过配置$ORACLE_HOME/network/admin/tnsnames.ora得到的

工具配置监听程序

ps -ef|grep lsnr  查看监听进程

netca 配置监听程序

netmgr 静态配置监听程序

lsnrctl start 开启监听程序

lsnrctl stop 关闭监听程序

手动配置位置

$ORACLE_HOME/network/admin/listener.ora //配置监听程序的文件位置
$ORACLE_HOME/network/admin/samples/listener.ora //文件模板位置

$ORACLE_HOME/network/admin/tnsnames.ora //配置本地命名的文件位置
$ORACLE_HOME/network/admin/samples/tnsnames.ora //文件模板位置

二、数据库的启动与关闭

启动数据库实例

startup相当于startup nomount,再alter database mount,最后alter database open。

startup nomount是启动数据库但是没有挂载,startup mount是启动后再挂载

启动顺序是nomount->mount->open

nomount阶段读取spfile/pfile文件中的参数

mount阶段打开控制文件,基本结构信息能够查询,但是不能查询用户表的内容

open阶段,打开控制文件里描述的文件,如数据文件和联机重做日志文件

参考连接  https://blog.csdn.net/weixin_39724469/article/details/116390987

关闭数据库实例

关闭顺序是close->dismount->shut down

关闭方式

shutdown abort;

shutdown immediate;

shutdown transaction;

shutdown normal;

select open_mode from v$database; //查看数据库模式
--ORA-01034:oracle not available表示数据库没有启动
--ORA-01507:databse not mounted表示数据库启动在nomounted阶段,可以通过将其修改成mount->open状态