最近发生多起数据库服务startup正常,但是遇到以下几种情况
- sqlplus / as sysdba 本机可以连接
- sqlplus mydb/mydb 本机可以连接
- sqlplus mydb/mydb@mydb 可以登录不上,sqlplus mydb/mydb@192.168.0.2/mydb也登录不上
- sqlplus mydb/mydb@mydb 可以登录可以,但是sqlplus mydb/mydb@192.168.0.2/mydb登录不上
因为之前一直使用数据库,用代码操作数据库.一般没做过数据库配置. 遇到这种问题,找了好多老司机来处理. 看着老司机各种命令输入进去,几下就整好了. 觉得这个事情好复杂,干脆不学了.
最近遇到好几次, 又是在晚上加班来处理. 老司机已经回城陪孩子了. 没有办法,于是下决心自己摸索总结一个自己的处理方式,经过询问老司机,监听关键点在哪些部分和数据库如何配合. 经过老司机指点后,觉得关键点还是 oracle net manager配置理解和使用不够导致.
大致找到点感觉,自己花费一点时间来尝试. 安装了一个数据库,把监听删除了自己来配置. 果然,感觉有点意思.
- 首先要自己写的sqlplus命令是否通过了监听,关键点
1. sqlplus / as sysdba 或者 sqlplus mydb/mydb 连接数据库,其实和配置监听和服务命名没有任何卵关系. 并且这样写只能连接本机上的数据库
2. sqlplus mydb/mydb@mydb 这个多了一个"@mydb" 这个是通过 net manager里面的 "服务命名" 里面的配置来访问数据库,这个数据库不一定是访问本地的,可以是任何一个主机的.
>>需要连接监听,但是这个监听是 net manager里面配置的服务器上的监听,而和本地数据库的监听没卵关系
3. sqlplus mydb/mydb@192.168.0.2/mydb 多了一个 @地址/mydb 这个是不需要net manager里面的"服务命名",直接通过ip:1521端口,访问对应的数据库
>>需要连接监听,同2,其实2的访问方式只是在本地配置了一个快捷访问方式. 比如: 我们数据库地址可能会换,但是程序通过本地服务命名来访问,程序不需要修改. 只需要修改配置即可
- 好,概念和关键点弄清楚后, 最终落实到 服务器监听配置上
在net manager中,如果监听出现错误,最好直接删除求,再添加.
1. 首先添加监听,比如: listener 添加地址,最好是本机地址,端口默认1521
2. [关键] 添加地址后,要选择"数据库服务"进一步配置, 坑的是这个软件显示时的选项有点隐藏,在tab地址1 的上面, 好坑可能还看不到