ORACLE数据库的连接

本文涉及的产品
云防火墙,500元 1000GB
简介:

监听程序

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

本地连接

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

通过监听程序连接

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

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

静态注册

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

586ab9afad1c7ca7cca972ab646f98baad582631

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

动态注册

ba0076009c54d9ffc08aa91675167a29e0bb2433

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

监听配置及问题排查

监听配置

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

8a1ee73c8f1a66e10639365c596691e22c41cb04

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

708ef10588d2a802a419d5d1ff4dcab4e4351ca7

问题排查

监听连接不上:

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

de6fe09d65fdf0ac014ee095427a5d02ccfbe002

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

SCAN-IP的局限

918c9460ebd9518f2a8996756e325178bd2dc113

  1. RAC下各VIP注册到SCAN监听器中
  2. 客户端访问SCAN监听
  3. SCAN监听根据负载情况,分配一个VIP给客户端
  4. 客户端收到VIP后,访问对应的VIP地址,数据库如果在防火墙内,返回给客户端的是防火墙内的VIP地址,客户端在防火墙外无法直接使用防火墙内的VIP地址,此时会访问失败
原文发布时间为:2018-01-22
本文作者:姜刚
本文来自云栖社区合作伙伴“ 数据和云”,了解相关信息可以关注“ 数据和云”微信公众号
相关文章
|
13天前
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
113 68
|
10天前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
21 7
|
10天前
|
Oracle 关系型数据库 数据库
oracle数据库技巧
【10月更文挑战第25天】oracle数据库技巧
14 6
|
10天前
|
存储 Oracle 关系型数据库
Oracle数据库优化策略
【10月更文挑战第25天】Oracle数据库优化策略
14 5
|
9天前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
23 3
|
16天前
|
关系型数据库 MySQL 数据库连接
DBeaver如何连接一个数据库
【10月更文挑战第27天】DBeaver 是一款功能强大的通用数据库管理工具,支持多种主流数据库。本文介绍了使用 DBeaver 连接数据库的基本步骤,包括下载安装、创建新连接、选择数据库类型、配置连接参数、测试连接以及最终连接到数据库。详细的操作指南帮助用户轻松管理和操作数据库。
75 9
|
9天前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
13 1
|
9天前
|
Java 数据库连接 数据库
Java连接池在数据库性能优化中的重要作用。连接池通过预先创建和管理数据库连接,避免了频繁创建和关闭连接的开销
本文深入探讨了Java连接池在数据库性能优化中的重要作用。连接池通过预先创建和管理数据库连接,避免了频繁创建和关闭连接的开销,显著提升了系统的响应速度和吞吐量。文章介绍了连接池的工作原理,并以HikariCP为例,展示了如何在Java应用中使用连接池。通过合理配置和优化,连接池技术能够有效提升应用性能。
24 1
|
17天前
|
存储 Oracle 关系型数据库
数据库数据恢复—Oracle ASM磁盘组故障数据恢复案例
Oracle数据库数据恢复环境&故障: Oracle ASM磁盘组由4块磁盘组成。Oracle ASM磁盘组掉线 ,ASM实例不能mount。 Oracle数据库故障分析&恢复方案: 数据库数据恢复工程师对组成ASM磁盘组的磁盘进行分析。对ASM元数据进行分析发现ASM存储元数据损坏,导致磁盘组无法挂载。
|
12天前
|
SQL 关系型数据库 数据库连接
"Nacos 2.1.0版本数据库配置写入难题破解攻略:一步步教你排查连接、权限和配置问题,重启服务轻松解决!"
【10月更文挑战第23天】在使用Nacos 2.1.0版本时,可能会遇到无法将配置信息写入数据库的问题。本文将引导你逐步解决这一问题,包括检查数据库连接、用户权限、Nacos配置文件,并提供示例代码和详细步骤。通过这些方法,你可以有效解决配置写入失败的问题。
36 0

推荐镜像

更多