看完这两个文档对数据源配置应该就有一个清晰的认知了。
GridLink数据源:
https://docs.oracle.com/cd/E29542_01/web.1111/e13737/gridlink_datasources.htm#JDBCA455
多数据源:
https://docs.oracle.com/cd/E13222_01/wls/docs100/jdbc_admin/jdbc_multidatasources.html
下面是我的学习笔记:
多数据源功能:可以将多数据源视为数据源池。多数据源最适用于高可用性数据库系统的节点之间的故障转移或负载平衡,例如冗余数据库或Oracle Real Application Clusters(RAC)。
Multi数据源的数据源成员列表支持动态更新。这允许环境(例如使用Oracle RAC的环境)在不重新部署的情况下添加和删除数据库节点和相应的数据源,并提供以下功能:
根据吞吐量增长和缩小RAC群集。
关闭RAC节点以进行维护。
选择多数据源算法:
在设置多数据源之前,需要确定多数据源的主要用途 - 故障转移或负载平衡。您可以选择符合您要求的算法。
故障转移
故障转移算法提供用于满足连接请求的有序数据源列表。通常,对这种多数据源的每个连接请求都由列表中的第一个数据源提供服务。如果数据库连接测试失败并且无法替换连接,或者数据源已挂起,则会从列表中的下一个数据源按顺序搜索连接。
注意:此算法依赖于TestConnectionsOnReserve数据源上的Test Reserved Connections()来测试第一个数据源中的连接,以查看数据源是否正常。如果连接未通过测试,则多数据源将使用多数据源中列出的下一个数据源的连接。有关配置的信息,请参阅数据源的连接测试选项TestConnectionsOnReserve。
注意:JDBC是一种高度有状态的客户端-DBMS协议,其中DBMS连接和事务状态直接绑定到DBMS进程和客户端(驱动程序)之间的套接字。因此,不支持在使用连接时进行故障转移。
负载均衡
对负载平衡多数据源的连接请求由列表中的任何数据源提供。多数据源使用循环方案选择用于满足连接请求的数据源。当多数据源提供连接时,它会从刚才用于提供连接的最后一个数据源之后列出的数据源中选择一个连接。如果数据库连接测试失败并且无法替换连接,或者数据源已挂起,则使用负载平衡算法的多数据源也会故障转移到列表中的下一个数据源。
在Reserve上测试连接以启用故障转移
数据源依赖于数据源上的Test Reserved Connections(TestConnectionsOnReserve)功能来了解数据库连接何时丢失。必须为多数据源中的数据源启用(默认)测试保留连接。WebLogic Server将在将每个连接提供给应用程序之前对其进行测试。使用故障转移算法,多数据源使用连接测试的结果来确定何时故障转移到多数据源中的下一个数据源。测试失败后,数据源会尝试重新创建连接。如果该尝试失败,则多数据源将故障转移到下一个数据源。
在多数据源中恢复失败数据源时自动重新启用
由于连接测试连接失败而自动禁用数据源后,多数据源会定期测试来自已禁用数据源的连接,以确定数据源(或基础数据库)何时可再次使用。当数据源可用时,多数据源会自动重新启用数据源并恢复将连接请求路由到数据源,具体取决于多数据源算法以及所包含数据源列表中数据源的位置。这些测试的频率由多数据源的“测试频率秒”属性控制。“测试频率”的默认值为120秒,因此,如果未专门为该选项设置值,则多数据源将每120秒测