开源中文网

您的位置: 首页 > Oracle > 正文

ORACLE数据库的连接

来源: 数据和云公众号  作者: 姜刚

数据库启动后,连接数据库有两种方式,分别是:本地连接通过监听程序连接

 

>>>>

本地连接

通过登录数据库运行的主机后,不通过监听程序访问数据库实例,使用ps –ef|grep ‘LOCAL=YES’可以查看到其进程情况

 

>>>>

通过监听程序连接

远程客户端程序通过监听器连接到数据库实例,可以通过ps –ef|grep ‘LOCAL=NO’方式查看。

实例通过两种方式注册到监听程序,分别是:静态注册动态注册两种方式。

静态注册

静态注册方式是配置$ORACLE_HOME/network/admin/listener.ora文件,当监听程序启动后实例被直接注册到监听程序中,如下是配置信息:



 

监听启动后,通过lsnrctl status可查看到服务状态,如果是UNKNOWN状态,表示实例是通过静态注册方式注册成功的

动态注册




动态注册是在监听启动后,pmon进程每1分钟向监听注册一次,使用lsnrctl status可查看服务状态是READY,可确定实例是通过动态注册方式注册成功的。

 

监听配置及问题排查

listener.ora配置文件主要有如下几个参数:

 

>>>>

监听配置

 

listener.ora配置文件主要有如下几个参数:

 

参数名

参数作用

LOG_FILE_LISTENER

监听日志文件名

LOGGING_LISTENER

是否写日志(OFF,ON),内网中建议关闭

DIAG_ADR_ENABLED_LISTENER

11gADR功能是否开放,建议关闭

INBOUND_CONNECT_TIMEOUT_LISTENER

监听连接超时参数,0表示不限制

 

sqlnet.ora配置文件主要有如下几个参数:

 

参数名

参数作用

tcp.validnode_checking

是否打开IP地址限制功能

tcp.invited_nodes

白名单功能

tcp.excluded_nodes

黑名单功能

SQLNET.AUTHENTICATION_SERVICES

windows机器上设置NTS,windows机器上不要设置NTS

 

>>>>

问题排查

 

 

2. 再查看核对服务名是否正确

服务名不对:

通过Sqlplus或pl/sql连接时要注意服务名和实例名的区别,通过sqlplus或pl/sql连接,需要使用服务名进行连接,如果使用Java瘦客户端需要使用实例名访问。

 

TAF 配置

 

>>>>

Client-Side Connect time Failover

 

 

所谓TAF(Transparent ApplicationFailover ),就是连接建立以后,应用系统运行过程中,如果某个实例发生故障,连接到这个实例上的用户会被自动迁移到其他的健康实例上。

对于应用程序而言,这个迁移过程是透明的,不需要用户的介入.在配置时,需要添加FAILOVER_MODE配置项,此配置项有:METHODTYPEDELAYRETRIES四个子配置项。

 

METHOD(basic指感知到故障节点时才创建其他节点的连接;preconnect指事先创建好连接)

TYPE(session指事务方式回滚,如果是查询则丢弃之前的查询重新获取数据.select指从剩下节点获取剩余数据,之前已获取的数据不再在新节点获取)

DELAY(重新连接的时间间隔)

RETRIES(重试次数)

 

>>>>

Server-Side TAF

在Server端配置TAF,必须配置SERVICE配置项。

 

RAC 下SCAN-IP原理和局限

>>>>

SCAN-IP注册访问原理

  • RAC下各VIP注册到SCAN监听器中

  • 客户端访问SCAN监听

  • SCAN监听根据负载情况,分配一个VIP给客户端

  • 客户端收到VIP后,访问对应的VIP地址

    >>>>

    SCAN-IP的局限

 

  • RAC下各VIP注册到SCAN监听器中

  • 客户端访问SCAN监听

  • SCAN监听根据负载情况,分配一个VIP给客户端

  • 客户端收到VIP后,访问对应的VIP地址,数据库如果在防火墙内,返回给客户端的是防火墙内的VIP地址,客户端在防火墙外无法直接使用防火墙内的VIP地址,此时会访问失败

Tags:数据库
关于开源中文网 - 联系我们 - 广告服务 - 网站地图 - 版权声明