Oracle 数据库网络原理

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

猜你喜欢

转载自gaojingsong.iteye.com/blog/2283248
今日推荐