大型系统在进行数据库部署时,常常会分为主数据应用中心和应急数据中心。通常情况下应用系统访问的是主数据中心,只有主数据中心出现故障的时候才会切换至应急数据中心,主数据中心与应急数据中心数据保持增量备份。如下图。
传统应急流程是当主数据库出现故障时,手工修改应用服务的设置,将应用切换至应急数据库进行访问,以确保能够正常提供应用。这种做法存在较大的弊端,需要人工干预,并且需要重启应用,费时较长,对客户端有较明显的感知。
为了解决该问题,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对数据库的灾备和负载均衡提供了完美的支持,支持在多数据库实例的情况下做到无缝的切换和回切。