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状态