Weblogic多数据源(Multi Data Sources)应用实践
大型系统在进行数据库部署时,常常会分为主数据应用中心和应急数据中心。通常情况下应用系统访问的是主数据中心,只有主数据中心出现故障的时候才会切换至应急数据中心,主数据中心与应急数据中心数据保持增量备份。如下图。
传统应急流程是当主数据库出现故障时,手工修改应用服务的设置,将应用切换至应急数据库进行访问,以确保能够正常提供应用。这种做法存在较大的弊端,需要人工干预,并且需要重启应用,费时较长,对客户端有较明显的感知。
为了解决该问题,WebLogic10.3新增了一个多数据源配置功能(Multi Data Sources)配置的功能;通过该功能,可以灵活地解决人工干预切换应急数据库的问题,并且对客户端无任何影响,平滑从主数据库切换至备份数据库,客户无感知,就像从没发生过一样。主数据中心恢复后,系统会自动回切。
WebLogic的Multi Data Sources有两种模式:FailOver(灾备模式)与Load-Balancing(负载均衡模式)下文将详细介绍基于WebLogic的Multi Data Sources的两种模式的配置。
第一步,services—>JDBC—>Data Sources建立两个数据源分别指向主数据库和备份数据库。
第二步,services—>JDBC—>Multi Data Sources 建立多数据源:
第三,点击“NEXT”,选中servers,如果是集群请选中集群的servers:
最后,继续点击“NEXT”,选择之前建立的数据源即可;
应用服务器连接数据库,只需使用JDBC/TEST即可完成对数据库的访问;通常情况下数据库访问都会集中在test这个数据源,当test数据源连接的数据库出现故障时,weblogic服务器会自动将数据库访问切换至test_callout数据源,无缝完成灾备,应用使用者不会对数据库切换有任何感觉,当主数据库恢复时,weblogic会自动切回。
扩展Load-Balancing(负载均衡模式),可以实现对多个RAC数据库实例进行管理,实现数据库云,采取这种模式时,应用系统会交替访问该Multi Data Sources所关联的数据源,做到负载均衡,当RAC中某一个端点出现问题时,weblogic服务器会检测到该问题数据源直至该节点恢复,在应用使用者使用应用系统的过程中不会对某一个数据库节点的故障产生任何感觉。
两种模式的差别,:FailOver(灾备模式)中,只有排序在第一位的数据源是活动的,当主数据源故障时才会切换至备份数据源(第二个),备份数据源在常态下是空闲的;Load-Balancing(负载均衡模式)中所有关联的数据源都参与应用的访问,任何一个节点故障,weblogic会放弃该节点直至该节点恢复并重新加入负载均衡队列。
总结,在应用开发部署中,WebLogic的Multi Data Sources对数据库的灾备和负载均衡提供了完美的支持,支持在多数据库实例的情况下做到无缝的切换和回切。
Weblogic多数据源(Multi Data Sources)应用实践的更多相关文章
- Windows系统自带的ODBC Data Sources的配置及使用
一直不明白ODBC是个什么东东,虽然一次次碰到,却从没用过,看Wikipedia上的描述,可以访问各种数据库.Excel.CSV等,可以剥离数据库和操作系统依赖,简直神乎其神.不过这样的描述太抽象概括 ...
- Spark SQL 之 Data Sources
#Spark SQL 之 Data Sources 转载请注明出处:http://www.cnblogs.com/BYRans/ 数据源(Data Source) Spark SQL的DataFram ...
- Spark SQL External Data Sources JDBC简易实现
在spark1.2版本中最令我期待的功能是External Data Sources,通过该API可以直接将External Data Sources注册成一个临时表,该表可以和已经存在的表等通过sq ...
- JasperReports教程:Report Data Sources
原文地址:http://www.tutorialspoint.com/jasper_reports/jasper_report_data_sources.htm Datasources是一个结构化的数 ...
- datatbales的数据源类型(Data source types)
数据是复杂的,并且所有的数据是不一样的.因此 DataTables 中有很多的选项可用于配置如何获得表中的数据显示,以及如何处理这些复杂的数据. 本节将讨论 DataTables 处理数据的三个核心概 ...
- Spark SQL External Data Sources JDBC官方实现写测试
通过Spark SQL External Data Sources JDBC实现将RDD的数据写入到MySQL数据库中. jdbc.scala重要API介绍: /** * Save this RDD ...
- 解决IDEA Springboot项目sql文件打开提示No data sources are configured to run this SQL and provide advanced的问题
Idea2018的Springboot项目,如果里面有.sql文件,打开后,会提示"No data sources are configured to run this SQL and pr ...
- 警告: No data sources are configured to run this SQL and provide advanced code assistance. Disable this inspection via problem menu (Alt+Enter). more... (Ctrl+F1) SQL dialect is not configured. Postgr
python3出现问题: 警告: No data sources are configured to run this SQL and provide advanced code assistance ...
- 数据源(Data Source
数据源(Data Source)顾名思义,数据的来源,是提供某种所需要数据的器件或原始媒体.在数据源中存储了所有建立数据库连接的信息.就像通过指定文件名称可以在文件系统中找到文件一样,通过提供正确的数 ...
随机推荐
- Python框架之Django学习笔记(十六)
Django框架之表单(续) 今天简直无力吐槽了,去了香山,结果和网上看到的简直是天壤之别啊,说好的香山的枫树呢?说好的香山的红叶呢?说好的漫山遍野一片红呢?本以为在山上,一口气爬上去,沿路基本都是翠 ...
- Github新手使用学习详解
Github新手使用学习详解 (一)git的使用学习 首先下载git bash,安装一路默认选择即可. 安装好后第一步,获取ssh key,即属于自己的密钥: 打开Git bash后输入以下代码: $ ...
- Format aborted in 格式化namenode 失败的原因
[user6@das0 hadoop-0.20.203.0]$ bin/hadoop namenode -format 12/02/20 14:05:17 INFO namenode.NameNode ...
- 【bzoj2427】[HAOI2010]软件安装 Tarjan+树形背包dp
题目描述 现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi.我们希望从中选择一些软件安装到一台磁盘容量为M计算机上,使得这些软件的价值尽可能大(即Vi的和最大).但是现 ...
- 【bzoj3083】遥远的国度 树链剖分+线段树
题目描述 描述zcwwzdjn在追杀十分sb的zhx,而zhx逃入了一个遥远的国度.当zcwwzdjn准备进入遥远的国度继续追杀时,守护神RapiD阻拦了zcwwzdjn的去路,他需要zcwwzdjn ...
- js 判断对象类型
在企业级的开发中,我们常用 typeof 来判断企业 对象类型:但是 typeof 不能判断 Array 和 null 这里我们使用一个 原型上的 toString方法:请看一下代码: <scr ...
- Gym 100989F 水&愚&vector
standard input/output You must have heard about Agent Mahone! Dr. Ibrahim hired him to catch the che ...
- vue2+nodejs+mongodb搭建移动端网站
从零开始一步步搭建移动端网站,持续更新,github代码如下,因为放了视频文件,下载可能有点慢 https://github.com/lanleilin/myHomepage 前端采用Vue2+vue ...
- 零基础学习Mahout之-----搭建单机环境
一.Mahout是什么? Mahout是Apache的一个开源项目(http://mahout.apache.org/),提供了机器学习领域的若干经典算法,以便开发人员快速构建机器学习和数据挖掘方面的 ...
- javascript实现htmlEncode与htmlDecode
原文发布时间为:2011-04-19 -- 来源于本人的百度文章 [由搬家工具导入] htmlencode with javascript function htmlEncode(html) { ...