网站首页 > 经济数据> 文章内容

ORACLE数据库的连接

※发布时间:2018-4-9 3:30:16   ※发布作者:habao   ※出自何处: 

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

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

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

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

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

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

  在用户端的tnsnames.ora中配置多个地址,用户发起连接请求时,尝试依次按地址列表进行访问,如果第一个地址无法访问,那么访问第二个地址,直至连接成功或全部IP地址访问完毕。这种连接的特点是一旦连接建立之后,节点出现故障都不会做处理,从客户端的表现就是会话断开了,用户程序必须重新建立连接。

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

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

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

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

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