学习
实践
活动
专区
工具
TVP
写文章
专栏首页bisal的个人杂货铺通过JDBC让应用能体验到Oracle高可用的"红利"

通过JDBC让应用能体验到Oracle高可用的"红利"

通过JDBC连接Oracle数据库,可以采用三种拼接的形式,

(1)使用SID,jdbc:oracle:thin:@host:port:SID,例如

jdbc:oracle:thin:@localhost:1521:orcl

(2)使用Service Name,jdbc:oracle:thin:@//host:port/service_name,例如,

jdbc:oracle:thin:@//localhost:1521/orcl.oracle

其中,@后面有"//",port跟着的":"换成了"/",这是Oracle推荐的格式,因为对于集群来说,每个节点的SID是不一样的,但是service_name可以包含所有节点。

(3)使用TNSName,jdbc:oracle:thin:@TNSName,此处的TNSName指的是tnsnames.ora中的配置名称,当然还可以将tnsnames.ora中的内容直接加到此处,例如,

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=x.x.x.x)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))

最近一位朋友,说他们的应用,要配合DBA做一次应急演练,具体内容是Oracle DG主备的切换。

应用中是写了如下的配置,其中IP是主库的IP(不是VIP、SCAN IP),所以如果DG切了,应用必须将IP改成新的备库IP,才可以继续使用,

jdbc:oracle:thin:@//IP:1521/orcl

这种情况下,数据库是做到了高可用,但是应用的高可用不是自动的,存在着隐患,没用到Oracle提供的高可用便利。

此时应该用上述提到的TNSName方式进行配置,而且按照RAC+DG的标准,可以采用如下tnsnames.ora,可以看到,主备库的RAC关闭了load balance,即采用了failover,而DG打开了failover。由于配置了所有主备库的IP以及具体切换的方式,原则上数据库做了主备切换,应用就可以自动进行主备库的选择,实现了更加纯粹的高可用。实际用的时候,jdbc的配置直接将如下这段写到一行中,

orcl=
  (DESCRIPTION_LIST=
    (LOAD_BALANCE=off)
    (FAILOVER=on)
    (DESCRIPTION=
      (CONNECT_TIMEOUT=5)
      (TRANSPORT_CONNECT_TIMEOUT=3)
      (RETRY_COUNT=3)
      (ADDRESS_LIST=
        (LOAD_BALANCE=off)
        (ADDRESS=(PROTOCOL=TCP)(HOST=x.x.x.1)(PORT=1523))
        (ADDRESS=(PROTOCOL=TCP)(HOST=x.x.x.2)(PORT=1523))
        (ADDRESS=(PROTOCOL=TCP)(HOST=x.x.x.3)(PORT=1523))
       ) (CONNECT_DATA=(SERVICE_NAME=test)))
    (DESCRIPTION=
      (CONNECT_TIMEOUT=5)
      (TRANSPORT_CONNECT_TIMEOUT=3)
      (RETRY_COUNT=3)
      (ADDRESS_LIST=
        (LOAD_BALANCE=off)
        (ADDRESS=(PROTOCOL=TCP)(HOST=x.x.x.4)(PORT=1523))
        (ADDRESS=(PROTOCOL=TCP)(HOST=x.x.x.5)(PORT=1523))
        (ADDRESS=(PROTOCOL=TCP)(HOST=x.x.x.6)(PORT=1523))
       ) (CONNECT_DATA=(SERVICE_NAME=test))))

其实这个问题,还是比较有代表性的,就是有时候,技术上提供了我们很多种实现途径,但我们可能不了解这些,导致没能用到技术上的"红利"。因此,无论什么技术,还是不能仅局限于表象,不一定都做到很精通,但至少能知道技术可以提供我们什么功能,具体细节上,可以用到的时候能有途径学习了解,这是最基础的。

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:http://blog.csdn.net/bisal复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • 线上学习的一些注意事项

    对孩子们来说,虽然内容上没怎么改变,换了一种上课的形式,多少还需要适应,为了能满足上课质量的要求,还是要提一些特殊的规则。

    bisal
  • 数据库连接池-tomcat-jdbc食用笔记

    现在 主流的数据库连接池有:Proxool、C3P0、DBCP、tomcat-jdbc、Druid。其中tomcat-jdbc是tomcat服务器比较可靠的 数...

    斯武丶风晴
  • 国产数据库崛起史

    1956年,周恩来总理亲自领导了“科学技术发展十二年规划”,标志着我国计算机事业的开始。而那时,几乎没有人知道计算技术是怎么回事,不知道磁芯存储器,不知道集成电...

    人称T客
  • java学习路线图(2019最新版)

    2019年最新Java学习路线图, 路线图的宗旨就是分享,专业,便利,让喜爱Java的人,都能平等的学习。从今天起不要再找借口,不要再说想学Java却没有资源,...

    动力节点Java培训
  • 数据库相关中间件介绍

    https://www.cnblogs.com/grefr/p/6087942.html#top

    二狗不要跑
  • 数据库中间件

    作者:[美]威廉·肯尼迪(William Kennedy)布赖恩·克特森(Brian

    李海彬
  • 关于Oracle Sharding,你想知道的都在这里

    编辑手记:随着Oracle12.2的发布,Sharding技术也逐渐变得越来越强大,关于Sharding,你所关心的问题的答案,可能都在这里。 注:本文来自Or...

    数据和云
  • Java学习路线

    1.掌握HTML,CSS,JavaScript等前端基本技术,并使用JSP,Servlet开发小型网站

    楠羽
  • jdbc是数据库连接池么_java的jdbc连接数据库

    JDBC 是Java应用程序用来连接关系型数据库的标准API,为多种关系型数据库提供一个统一的访问接口。Sun公司一共定义4种 JDBC 驱动类型,一般使用第4...

    全栈程序员站长
  • 什么是Spring Data?

    Spring Data 的委托是为数据访问提供熟悉且符合 Spring 的编程模型,同时仍保留着相关数据存储的特​​殊特征。

    IT胶囊
  • 数据库深度剖析:Oracle、Microsoft SQL Server、MySQL 三者有何区别?

    Oracle 数据库、Microsoft SQL Server、MySQL 数据库是我们在项目开发过程中最为常见的三种关系型数据库。下面我们分别从不同的角...

    白鹿第一帅
  • 12月4日 云头条:网络视听,新的“黄金赛道”?

    要做生意,最重要的一件事,就是紧跟大势。红利来了,傻子也能躺着赚钱。红利没了,神坛说塌也就塌了。而现在,网络视听内容行业即将迎来一波巨大的红利。在5G、4K、A...

    February
  • 国产化替代,会是中国SaaS的强心剂吗?

    2019年,Salesforce营收已经高达170亿美元,Shopify营收为15.78亿美元,而中国的有赞和微盟营收分别为11.71亿元和14.37亿元,远不...

    科技云报道
  • Oracle 数据库、Microsoft SQL Server、MySQL 数据库三种常见数据库的区别深度剖析

    Oracle 数据库、Microsoft SQL Server、MySQL 数据库是我们在项目开发过程中最为常见的三种关系型数据库。下面我们分别从不同的角度对这...

    白鹿第一帅
  • 【金猿产品展】星环KunDB ——助力企业数字化转型的高性能分布式交易型数据库

    KunDB是公司研发的一款面向数据操作场景的分布式交易性数据库,主要用于支持操作性业务场景(如ERP、OA、HIS等)和高并发场景(如消费者的手机APP应用、健...

    数据猿
  • 打开性能大门,四大关键趋势加速NVMe应用

    NVMe是目前存储领域最热炒概念之一,因为它能够让全闪存阵列完全发挥闪存的性能优势。NVMe已经成为全闪存阵列控制器与后端固态硬盘之间的互联,帮助全闪存阵列解锁...

    大数据在线
  • 听 唐建法 从ORACLE 到 MONGODB 数据迁移 数据库还可以这么玩 ?

    这几年一直是MONGODB使用者,从3.2 到4.0 ,在使用中也一直充分的感受到MONGODB 这几年的飞速的发展以及功能的扩展,偶然在极客时间里面看到有MO...

    AustinDatabases

扫码关注腾讯云开发者

领取腾讯云代金券