Oracle监听程序当前无法识别连接描述符中请求服务
今天早上我们公司来了之后发现云服务器Oracle都不能用了用plsql连接都报Oracle监听程序当前无法识别连接描述符中请求服务
然后百度一下都是让改监听文件,因为监听文件都是安装数据库的时候自己生成的,我们公司懂Linux和Oracle数据库的也没有密码也都是在我这里所以不可能有人随便动这个文件了,
所以我就想看看是不是什么别的问题,查了半天没有思路,然后重启监听也不行,干脆就把数据库回滚了,结果发现还是报这个错,就看了下数据库没有启动,
我在centos下用su oracle切换到oracle用户下进sqlplus启动数据库发现报错
ORA-01261: Parameter db_recovery_file_dest destination string cannot be translated
一个文件找不到然后我就手动创建了那个文件,结果就报这个错误了Unable to create audit trail file,就很奇怪,然后突然想起来我切换用户的时候是不是有问题就抱着试试看的心态切换回root下然后执行
su - oracle
再进sqlplus再执行startup发现数据库启动了,然后监听也启动了之后到plsql也能连接上了,到这里我就有点不明白
su oracle
和
su - oracle
有什么区别
然后发现su oracle只是切换了身份并没有切换当前用户操作环境也就是说你还是在root的环境下,但是su - oracle是你既切换了环境又切换了身份,就好比你执行su oracle的时候是root去oracle家串门进了oracle家你还是root,但是你使用su - oracle 的时候是你把你的身份和环境都换了你就变成了oracle用户