1.  什么是Active GridLink Data Source

从Oracle WebLogic Server 10.3.4版本开始引进了一种单数据源实现来支持Oracle
RAC集群。它对FAN事件进行响应来提供快速连接故障转移、运行时连接负载均衡和RAC实例优雅停机。在全局事务ID级别支持XA关联。这个新的特性叫做WebLogic
Active GridLink for RAC,在WebLogic Server中叫做GridLink Data
Source。

Active GridLink(AGL) Data Source除了兼具普通数据源的特性之外还具备下列新特性:
  • Fast Connection Failover (快速故障转移,FCF)
  • Run time Connection Load Balancing (运行时连接负载均衡,RCLB)
  • Grid Affinity (连接亲和力)
  • Scan Addresses (SCAN地址)

2.  Fast Connection Failover

AGL data source通过Oracle Notification
Service(ONS)使用快速故障转移来响应Oracle
RAC事件。它保证AGL数据源的连接池包含有效的连接(包括回收重用的连接)而无需修剪和测试连接。它还保证一旦新的节点可用时新创建的连接建立在新节点上。
AGL数据源使用快速故障转移:
---提供不间断的故障探测
---从连接池中终止并移除无效的连接
---对于计划内或计划外的RAC节点停电执行优雅的关机
---自适应集群的结构变化,比如添加和删除节点
---分布运行时工作请求到所有活动的RAC实例
 
3.  Run time Connection Load
Balancing
AGL data source基于数据库发布的FAN事件使用运行时连接负载均衡(RCLB)将连接分布到Oracle
RAC实例。它简化了数据源配置并且改善了连接性能,独立于数据库之外。
运行时连接负载均衡允许WebLogic服务器
---基于终端节点的容量比如CPU、可用性和响应时间来调整工作分布
---响应Oracle RAC集群结构变化
---针对高性能和高可扩展性的连接池管理
4.  Grid Affinity
AGL Data source利用Oracle RAC数据库提供的连接亲和力功能连接关联需要使用到Oracle
JDBC驱动和11.1.0.6或更高版本的Oracle RAC数据库。 
连接亲和力能够让连接池选择直接连接到一个特定的Oracle
RAC实例,为客户端应用提供最好的性能。连接池使用运行时连接负载均衡来选择一个Oracle
RAC实例,创建第一个连接并指定一个亲和力背景。所有后续连接请求都会使用第一个连接的亲和力背景并被路由到相同的Oracle
RAC实例直到会话或事务终止。
 
5.  SCAN Addrsses
单一客户端访问名称(SCAN)是Oracle RAC
11gR2的新特性,它为客户端访问在集群中运行的Oracle数据库提供了一个单一的名称。这个特性的好处是如果集群中的节点增加或者删除后,客户端的连接信息不需要进行修改。使用一个单一的名称,能够使客户端使用简单的JDBC
thin
URL来访问起群众的任何一个数据库,不论这些集群中的服务器是否是处于活动状态。SCAN为连接数据库的客户端提供了负载均衡和失败转移的功能。
 
 
6.  通过WebLogic配置Active GridLink
下面我们通过测试环境在WebLogic服务器里配置一个Active DataLink连接到Oracle RAC。
实验环境:Oracle11.2.0.3 RAC + WebLogic12.1.3
 
6.1  登录到WebLgic控制台,在Domain
Strunture下依次展开Services-->Data Sources
 
6.2  点击“New”按钮选择“GridLink Data Source”

6.3  在Name框中填入:jdbc/gridlinkDS  
 (此出的gridlinkDS可按部署的程序随意取名)

在JNDI Name框中填入:jdbc/gridlinkDS
Database Driver选择默认的驱动,然后点击“Next”按钮
 
6.4  此处再次点击“Next”按钮
 
6.5  数据源连接属性选项选择“Enter complete JDBC
URL”,然后点击“Next”按钮
 
6.6  按各自实际情况填入JDBC URL,其语法格式为:
jdbc:oracle:thin:@{scan-listener-host}:{scan-listener-port}/{service-name}
我们测试环境的11gRAC SCAN IP地址为192.168.1.55、监听端口1521、实例名racdb
 
再填入连接数据库的用户名和口令,这里我们选用了scott。完成后点击“Next”按钮。
 
6.7  点击“Test All
Listeners”,绿色信息显示测试JDBC连接成功。成功后再次点击“Next”。

6.8  ONS客户端配置处需添加RAC节点的ONS端口号。

相关信息可以在数据库服务器上通过运行命令onsctl debug获得,如下所示

在命令的显示信息中有如下部分正是我们所需关注的

依据获得的信息填入“ONS host and port”框中,点击“Add”按钮加入列表。最后点击“Next”按钮。

6.9  点击“Test All ONS
Nodes”,绿色信息显示ONS测试成功。再点击“Next”。

6.10
 选择GridLink数据源要关联的应用服务器,此处测试环境我们选择了AdminServer,最后点击“Finish”。
 
6.11  点击已经创建的“jdbc/gridlinkDS”配置连接池参数。
我们设置Initial Capacity(初始容量)为50,Maximum
Capacity(最大容量)为100。
最后点击“Save”保存并且点击页面左上方的“Activate
Changes”这时GridLink便会依据我们设置在Oracle RAC上创建初始连接。

6.22  验证Oracle RAC节点上的连接数

分别登录到RAC两个节点查询v$session视图,检查用户名为scott的连接数(此处因为我们配置的GridLink数据源是用scott用户连接的)。可以看到racdb1节点有25个,racdb2节点有26个。
至此Active GridLink DataSource全部配置完成。

数据库访问的弹性化---WebLogic和Oracle RAC的整合:Active GridLink的更多相关文章

  1. C#.NET万能数据库访问封装类(ACCESS、SQLServer、Oracle)

    using System; using System.Collections; using System.Collections.Specialized; using System.Data; usi ...

  2. 数据库访问性能优化 Oracle

    特别说明: 1.  本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识: 2.  本文许多示例及概念是基于Oracle数据库描述,对于其它关系型数据库也 ...

  3. 通过Oracle数据库访问控制功能的方法(Database access control)

    修改sqlnet.ora文件中的IP列表后都需要重启监听才能生效.(原文是: Any changes to the values requires the TNS listener to be sto ...

  4. Oracle学习总结(8)—— 面向程序员的数据库访问性能优化法则

    特别说明: 1.  本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识: 2.  本文许多示例及概念是基于Oracle数据库描述,对于其它关系型数据库也 ...

  5. Oracle数据库访问客户端 sqldeveloper-18.4.0-376.1900-x64 下载

    Oracle数据库访问客户端 sqldeveloper-18.4.0-376.1900-x64 下载地址:https://pan.baidu.com/s/1RnHVuMcCNZQ7ncHLKDJ33Q

  6. Oracle数据库访问客户端 sqldeveloper-19.2.1.247.2212-x64 下载

    Oracle数据库访问客户端 sqldeveloper-19.2.1.247.2212-x64 地址:https://pan.baidu.com/s/1iojCVxwXocyM8oObTf0xaw 这 ...

  7. 基于SqlSugar的数据库访问处理的封装,支持多数据库并使之适应于实际业务开发中

    在我的各种开发框架中,数据访问有的基于微软企业库,有的基于EFCore的实体框架,两者各有其应用场景,不过多的去比较.最近在使用SqlSugar的时候,觉得这个数据访问处理的组件确实很灵活,据说性能也 ...

  8. 在数据库访问项目中使用微软企业库Enterprise Library,实现多种数据库的支持

    在我们开发很多项目中,数据访问都是必不可少的,有的需要访问Oracle.SQLServer.Mysql这些常规的数据库,也有可能访问SQLite.Access,或者一些我们可能不常用的PostgreS ...

  9. 数据库访问接口(ODBC、OLE DB、ADO)

    最近在学C#的数据库编程,对于数据库接口技术这块的知识一直比较模糊,网上查了不少资料,看了几天还是朦朦胧胧的,只能做些笔记再研究了. 我们都知道,“数据库”是指一组相关信息的集合,最早的计算机应用之一 ...

随机推荐

  1. Careercup - Microsoft面试题 - 5917873302142976

    2014-05-12 06:56 题目链接 原题: A link list contains following elements struct node{ int data; node* next; ...

  2. 【Single Number】cpp

    题目: Given an array of integers, every element appears twice except for one. Find that single one. No ...

  3. 使用 Bullet,BulletManager 在 XNA 中创建子弹攻击目标(十五)

    平方已经开发了一些 Windows Phone 上的一些游戏,算不上什么技术大牛.在这里分享一下经验,仅为了和各位朋友交流经验.平方会逐步将自己编写的类上传到托管项目中,没有什么好名字,就叫 WPXN ...

  4. 几种常见的Android自动化测试框架及其应用

    随着Android应用得越来越广,越来越多的公司推出了自己移动应用测试平台.例如,百度的MTC.东软易测云.Testin云测试平台…….由于自己所在项目组就是做终端测试工具的,故抽空了解了下几种常见的 ...

  5. python 学习分享-迭代器与生成器篇

    迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式.. 迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后 ...

  6. day02_02.能被3整除的个位数为6的数

    第2题 能被3整除的个位数为6的数 难度增加一点点,再接再厉 注意: 把一些限制条件,用PHP编程的语言来执行 题目:输出100以内(不含100)能被3整除且个位数为6的所有整数 <?php f ...

  7. c++ 吕凤翥 第六章 类和对象(二)

    c++ 吕凤翥 第六章 类和对象(二) 指针   引用  和数组 一:对象指针和对象引用 1.指向类的成员的指针 分为指向成员变量和指向成员函数两种指针 成员变量的格式:     类型说明符  类名: ...

  8. SDRAM学习(一)之刷新心得

    本篇博文共有两种刷新方式 SDRAM数据手册给出每隔64ms就要将所有行刷新一遍, 因此每隔64_000_000 ns/2^12=15625ns 就要刷新一次.(因为一个L-Bank的行是12位,所以 ...

  9. [oldboy-django][6其他]navicat远程登录没有权限

    day6-17-1204 # 增加远程访问mysql的权限(就是其他ip地址远程访问另外一个ip地址的数据库) -- step1 修改配置文件,bind_address, 允许所有ip地址都可以访问m ...

  10. JAVA使用JDBC连接MySQL数据库 二

    JAVA连接MySQL稍微繁琐,所以先写一个类用来打开或关闭数据库: public class DBHelper { String driver = "com.mysql.jdbc.Driv ...