oracle的连接、登录数据库(1、出现sqlplus:command not found;2、invalid username/password,logon denied)
一、sqlplus:command not found
1、本地登录
(1)、登录到SYS用户
su - oracle; //切换到oracle用户环境 sqlplus / as sysdba; //操作系统认证
以上登录方式操作系统认证,即将oracle用户加入dba组就不用密码认证了,在$ORACLE_HOME/network/admin/sqlnet.ora文件中的SQLNET.AUTHENTICATION_SERVICES决定能否操作系统认证登录,none表示关闭操作系统认证,只能密码认证;all用于linux或Unix平台,关闭密码认证,使用操作系统认证;nts用于windows平台。多线程不能使用操作系统认证。
如果出现sqlplus:command not found,要确认$ORACLE_HOME、$ORACLE_SID、$PATH相关的值存不存在
echo $ORACLE_HOME; //如果无输出说明环境变量有问题
tail -l /etc/oratab; //查看$ORACLE_HOME
ps -ef|grep oracle; //查看数据库实例名
$PATH=$ORACLE_HOME/bin:$PATH,添加oracle的环境变量
echo $ORACLE_HOME; //没有任何输出后需要设置值 export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1 export ORACLE_SID=chenmu export PATH=$ORACLE_HOME/bin:$PTATH sqlplus / as sysdba; //设置值之后就可以登录数据库
(2)、登录到普通用户,这些用户密码是存储在数据字典的。
sqlplus hr/hr123;
(3)、登录到管理员用户,这些密码是保存在密码文件中,可通过orapwd工具进行创建和管理
sqlplus sys/oracle as sysdba; select username from v$pwfile_users; //查看哪些用户使用了密码文件
2、远程登录,后面有@符号,远程登录必须有监听程序,否则无法登录
lsnrctl status //查看监听状态 conn username/pwd@<host>:<port>/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 //文件模板位置
二、invalid username/password,logon denied
sqlplus / as sysdba; //本地登录出现错误 sqlplus sys/oracle as sysdba; //以sys可以登录
startup; //打开数据库,出现错误下面的错误
select file#,name,status from v$datafile; //查看数据文件,mdm.dbf数据文件还在线
打开数据库出现cannot identify/lock data file 2 - see DBWR trace file, data file 2: '/u01/app/oracle/oradata/CHENMU/mdm.dbf',查看数据文件mdm.dbf发现还在线
之前删除不用的mdm.dbf文件,忘记将其从数据库中去掉,所以需要将对应的数据文件删除
alter database datafile '/u01/app/oracle/oradata/CHENMU/mdm.dbf' offline drop; //删除数据文件 alter database open; select file_name,tablespace_name from dba_data_files; //查看数据文件所在表空间 drop tablespace MDM1 including contents cascade constraints; //删除表空间
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下