ORACLE RAC 数据源配置

本文介绍了一个使用Oracle数据库的高可用性配置案例,通过定义数据源实现了负载均衡与故障转移的功能。配置中详细说明了如何设置两个数据库实例之间的切换机制,并且针对连接超时等问题进行了优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 
<Resource 
	type="javax.sql.DataSource" 
	auth="Container"
	driverClassName="oracle.jdbc.driver.OracleDriver" 
	url="jdbc:oracle:thin:@(DESCRIPTION_LIST = (LOAD_BALANCE = OFF) (FAILOVER = ON) 
			(DESCRIPTION =  (ADDRESS_LIST =   (LOAD_BALANCE=OFF)   (FAILOVER=ON)   (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.168.90)(PORT = 1521))  )  (CONNECT_DATA =   (SERVICE_NAME = ORAINS)   (INSTANCE_NAME = ORAINS1)   (FAILOVER_MODE=(TYPE=SESSION)(METHOD=BASIC)(RETRIES=4)(DELAY=1))  ) ) 
			(DESCRIPTION =  (ADDRESS_LIST =   (LOAD_BALANCE=OFF)   (FAILOVER=ON)   (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.168.91)(PORT = 1521))  )  (CONNECT_DATA =   (SERVICE_NAME = ORAINS)   (INSTANCE_NAME = ORAINS2)   (FAILOVER_MODE=(TYPE=SESSION)(METHOD=BASIC)(RETRIES=4)(DELAY=1))  ) )
			)" 
	name="jdbc/MYDB" 
	username="test" 
	password="test*123" 
	
	maxActive="40" 
	minIdle="1" 
	maxIdle="5" 
	initialSize="5" 
	
	    
	maxWait="60000"
	connectionProperties="oracle.net.CONNECT_TIMEOUT=10000"
	testOnBorrow="true"
	removeAbandoned="false" 
	validationQuery="select 1 from dual" 
	validationQueryTimeout="10"
/>

 

   当数据源启动时,连接第一个数据库实例,当第一个数据库实例失败时,自动切换到另一个实例 上。

 

connectionProperties="oracle.net.CONNECT_TIMEOUT=10000"

    jdbc 连接数据库超时时间设置,避免数据库实例不响应时,无限等待。

 

 

 

 

 

 

RAC是一个完整的集群应用环境,它不仅实现了集群的功能,而且提供了运行在集群之上的应用程序,即Oracle数据库。无论与普通的集群相比,还是与普通的oracle数据库相比,RAC都有一些独特之处。 RAC由至少两个节点组成,节点之间通过公共网络和私有网络连接,其中私有网络的功能是实现节点之间的通信,而公共网络的功能是提供用户的访问。在每个节点上分别运行一个Oracle数据库实例和一个监听器,分别监听一个IP地址上的用户请求,这个地址称为VIP(Virtual IP)。用户可以向任何一个VIP所在的数据库服务器发出请求,通过任何一个数据库实例访问数据库。Clusterware负责监视每个节点的状态,如果发现某个节点出现故障,便把这个节点上的数据库实例和它所对应的VIP以及其他资源切换到另外一个节点上,这样可以保证用户仍然可通过这个VIP访问数据库。 在普通的Oracle数据库中,一个数据库实例只能访问一个数据库,而一个数据库只能被一个数据库实例打开。在RAC环境中,多个数据库实例同时访问同一个数据库,每个数据库实例分别在不同的节点上运行,而数据库存放在共享的存储设备上。 通过RAC,不仅可以实现数据库的并发访问,而且可以实现用户访问的负载均衡。用户可以通过任何一个数据库实例访问数据库,实例之间通过内部通信来保证事务的一致性。例如,当用户在一个实例修改数据时,需要对数据加锁。当另一个用户在其他实例中修改同样的数据时,便需要等待锁的释放。当前一个用户提交事务时,后一个用户立即可以得到修改之后的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值