ORACLE数据库的连接

作者介绍:姜刚,云和恩墨技术顾问,2016年开始专职从事DBA运维,ORACLE OCP,精通shell及perl编程。

本文由恩墨大讲堂143期线上分享整理而成。课程回看可点击文末“阅读原文”。

监听程序

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

>>>>

本地连接

通过登录数据库运行的主机后,不通过监听程序访问数据库实例,使用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配置文件主要有如下几个参数:

参数名

参数作用

LOG_FILE_LISTENER

监听日志文件名

LOGGING_LISTENER

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

DIAG_ADR_ENABLED_LISTENER

11g的ADR功能是否开放,建议关闭

INBOUND_CONNECT_TIMEOUT_LISTENER

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

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

参数名

参数作用

tcp.validnode_checking

是否打开IP地址限制功能

tcp.invited_nodes

白名单功能

tcp.excluded_nodes

黑名单功能

SQLNET.AUTHENTICATION_SERVICES

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

>>>>

问题排查

监听连接不上:

1. 首先通过 telnet ip地址 端口号 或tnsping ip地址:端口号判断监听是否正常

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

服务名不对:

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

TAF 配置

>>>>

Client-Side Connect time Failover

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

>>>>

TAF

所谓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注册访问原理

  1. RAC下各VIP注册到SCAN监听器中
  2. 客户端访问SCAN监听
  3. SCAN监听根据负载情况,分配一个VIP给客户端
  4. 客户端收到VIP后,访问对应的VIP地址

>>>>

SCAN-IP的局限

  1. RAC下各VIP注册到SCAN监听器中
  2. 客户端访问SCAN监听
  3. SCAN监听根据负载情况,分配一个VIP给客户端
  4. 客户端收到VIP后,访问对应的VIP地址,数据库如果在防火墙内,返回给客户端的是防火墙内的VIP地址,客户端在防火墙外无法直接使用防火墙内的VIP地址,此时会访问失败。

原文发布于微信公众号 - 数据和云(OraNews)

原文发表时间:2018-01-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏源码之家

一键安装桌面及VNC

4046
来自专栏Felix的技术分享

Stetho的通信原理

2263
来自专栏生信宝典

任务流管理工具 - Airflow配置和使用

Airflow能做什么 Airflow是一个工作流分配管理系统,通过有向非循环图的方式管理任务流程,设置任务依赖关系和时间调度。 Airflow独立于我们要运行...

3756
来自专栏容器云生态

Docker1.12尝试

前言:在docker1.12中默认增加了swarm mode 编排功能,并且官方支持更多的插件来进行docker的网路和外接存储插件,不过目前测试swarm m...

33710
来自专栏SDNLAB

脱坑神器,让你一步了解ODL控制器集群

一、控制器集群基本知识 1.1 Consensus一致性 Consensus一致性是指多个服务器在状态达成一致,但是在一个分布式系统中,因为各种意外可能,有的...

3937
来自专栏散尽浮华

Centos6.X 下安装并使用VNC的操作记录

VNC是一个的"远程桌面"工具。,通常用于“图形界面”的方式登录服务器,可视化操作。废话不多说了,操作记录如下: 1)安装桌面环境 [root@vm01 ~]#...

2796
来自专栏北京马哥教育

十二条Linux运维面试必备经典笔试/面试题,来挑战一下!

又到了一年一度的秋招,作为运维方向,看了一些面经,收集了一些笔试面试题,总结了一下,贴出来仅供参考,有错误的地方还请指出. 1.Linux设置环境变量 暂时的:...

4289
来自专栏openshift持续集成

jenkins邮件插件中的内容参数设置

众所周知,Jenkins默认提供了一个邮件通知,能在构建失败、构建不稳定等状态后发送邮件。但是它本身有很多局限性,比如它的邮件通知无法提供详细的邮件内容、无法定...

6438
来自专栏JAVA高级架构

详解 Tomcat 的连接数与线程池

前言 在使用tomcat时,经常会遇到连接数、线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector)。 在前面的文章 详...

6618
来自专栏大魏分享(微信公众号:david-share)

Oracle11g RAC双NFS仲裁容错方案

说明: 整理文档时发现自己在2010年写的一个RAC容灾方案,觉得有一些用,分享出来。当时为了验证此方案,做了很多PoC。方案相对比较复杂,但是也提供了一种思路...

4409

扫码关注云+社区