1.Oracle监听拓扑结构
1521
Oracle网络没有负载,没有负载的一般不容易出问题
连接建立流程
监听:用户连接监听,监听知道数据库在什么位置,他们之间没有长连接
监听把用户的连接请求转发给instance,实例会为这个连接启动一个Server Process,
同时会把Server Process的地址告诉监听,监听告诉客户端,然后客户端直接发起对SP的请求,
同时把用户名和密码给SP,SP会验证,验证成功,建立成功连接,此时和监听没有任何关系,
监听只是在数据库之间建立连接的时候起作用
监听的独立性
监听和数据库之间没有必然联系,但是相互之间可以找到,他们之间没有长连接
监听只做一件事情就是在建立连接的时候起作用,负责转发,一段连接建立,监听没有负载
短时间内有大量的链接请求,可能会出现短时间的延迟,监听是一个端口
2.共享和专用服务器模式
3.Oracle数据库的几个名字
数据库名:show parameter name
实例名:show parameter instance
服务名:show parameter service,其中服务名可以修改
如何得到数据库的服务名字:show parameter service
4.netca
Oracle 的监听其实就是三个文件listener.ora 和tnsnames.ora 和 sqlnet.ora
其中sqlnet.ora 基本不用,客户端放置tnsnames.ora,服务器端放置listener.ora
但是实际环境中服务端有两个文件listener.ora 和tnsnames.ora
tnsnames.ora是客户端配置的,主机名字是Oracle的监听listener.ora文件里面配置的,也是程序监听的IP
查看方法:netstat -tunpl |grep 1521 ,来确定IP因为实际环境中一个数据库上面可能有多个网卡和IP
5.双监听:双IP或者双端口
6.相关命令
7.动态注册和静态注册
默认情况下Oracle会通过PMon把serviceName注册到监听里面,可以使用命令alter system register 来强制PMON来注册
静态注册:GLOBAL_DBNAME(数据库ServiceName),SID_NAME(数据库实例名字),Oracle_HOME 解决ORacle动态注册不稳定情况
8.几种连接方式
sqplus 用户名/密码@字符串 :去tnsnames.ora根据字符串进行解析IP,port 和serviceName,监听必须认识Oracle数据库的serviceName
sqplus 用户名/密码 :不走监听,在本地
sqplus 用户名/密码@IP:PORT/服务名字 走监听不走tnsnames.ora
sqplus / as sysdba:不走监听,在本地
9.排错流程
连接不上
检查客户端tnsnames.ora
iP和 port 在服务器端使用:netstat -tunpl |grep 1521 查看IP和Port
service_names :show parameter service 得到服务名字
tnsping:客户端使用命令: tnsping service_names
如果可以通过说明tnsnames.ora 配置没有问题
lsnrctl status
Oracle 数据库网络原理
猜你喜欢
转载自gaojingsong.iteye.com/blog/2283248
今日推荐
周排行