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)顾名思义,数据的来源,是提供某种所需要数据的器件或原始媒体.在数据源中存储了所有建立数据库连接的信息.就像通过指定文件名称可以在文件系统中找到文件一样,通过提供正确的数 ...
随机推荐
- ogre3D,cegui配置问题
今天按照网上的教程配置CEGUI, 一直运行不了,不明白原因,而后又出现了错误 LNK1104: 无法打开文件“OgreGUIRenderer_d.lib”,经过反复检查,排除包含目录问题. 不过可能 ...
- plsql编程
ORACLE PL/SQL编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设计语言,该 ...
- php 判断一个点是否在一个多边形区域内
<?php class pointMap{ private static $coordArray; private static $vertx = []; private static $ver ...
- LeetCode——Problem3:Longest Substring Without Repeating Characters
哎哟我天啊.这道题快折磨死我了.刚开始连题都没看明白,就是不知道substring是什么意思.研究了好长时间才看出来的. 光辉历史呀...菜死了 1.题目 Given a string, find t ...
- Sum of Squares of the Occurrence Counts解题报告(后缀自动机+LinkCutTree+线段树思想)
题目描述 给定字符串\(S(|S|\le10^5)\),对其每个前缀求出如下的统计量: 对该字符串中的所有子串,统计其出现的次数,求其平方和. Sample Input: aaa Sample Out ...
- spring+xml集成测试(准备数据和验证项的外部文件化)
Spring的集成测试 单位测试和集成测试,我想大家都做过,一般情况下,一般逻辑且不需要操作数据库的情况比较适合于单位测试了.而对于一个数据库应用来说,集成测试可能比单元测试更重要,你可以想象,一个互 ...
- BZOJ 1067 降雨量(RMQ-ST+有毒的分类讨论)
1067: [SCOI2007]降雨量 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 4399 Solved: 1182 [Submit][Stat ...
- BZOJ1396&2865 识别子串 【后缀自动机 + 线段树】
题目 输入格式 一行,一个由小写字母组成的字符串S,长度不超过10^5 输出格式 L行,每行一个整数,第i行的数据表示关于S的第i个元素的最短识别子串有多长. 输入样例 agoodcookcooksg ...
- 完美匹配(matching)
完美匹配(matching) 题目描述 给定nn个点,mm条边的无向图G=(V,E)G=(V,E),求出它的完美匹配数量对106+3106+3取模的值. 一个完美匹配可以用一个排列ϕ:V→Vϕ:V→V ...
- python 读取文件夹下的图片进行处理
python的os模块中有一个listdir函数可以遍历读取文件夹下的文件. import os for filename in os.listdir(r"./file"): #l ...