连接oracle的rac方式

1、oracle连接oracle的rac的时候连接方式

RAC =
(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac-cluster-scan)(PORT = 1521))
  (CONNECT_DATA =
     (SERVER = DEDICATED)
     (SERVICE_NAME = rac)
  ) ) 

 

2、java连接oracle的rac的时候连接方式

<driver-url>jdbc:oracle:thin:@(DESCRIPTION =  
          (ADDRESS_LIST =  
(ADDRESS=(PROTOCOL=TCP)(HOST=*.*.*.*)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=*.*.*.*)(PORT=1521))  
(FAILOVER=yes)   
(LOAD_BALANCE =yes)  
)  
(CONNECT_DATA =  
<!--(SERVER = DEDICATED) 可能需要注释-->
(SERVICE_NAME = ncwldb)  
)  
)
</driver-url>



回顾
-------------------
    在9i RAC时,oracle没有自己的clusterware,主要依靠第三方的集群软件(如IBM HACMP等等),客户端主要是通过public IP来访问数据库(如果第三方集群软件提供服动IP的话,也可以通过这个服动IP来访问数据库),当某一个节点已经出现故障无法对外提供服务时,如果客户端继续请求连接这个节点的public IP,那么连接请求会长时间没有返回,最后要等到TCP-IP timeout (TCP-IP超时时间一般为10分钟,不同OS这个值不同)才会返回一个超时信息,这对于实时性要求较高的应用来说是致命的问题,很多DBA都经历过这样的问题,从技术层面上来说,这是一个网络层的问题,任何应用都要等待网络层返回超时信息。为了解决这个问题,从oracle 10g RAC开始,引入了一个新的功能叫VIP,这个功能类似于第三方集群软件的浮动IP,简单的说就是当public 网卡或者节点出现问题,VIP可以快速的failover到另外的节点,如果客户端的连接请求被分配到这个VIP时,客户端连接请求马上就会遇到错误,因此会快速的跳过这个‘有问题的’VIP,而重新分配另一个VIP(这个功能是客户端连接时的failover),最终连接到数据库,这些对于应用来说是透明的,基本感觉不到连接的延时。

SCAN简介
-------------------
    从11gR2 Grid Infrastructure (CRS/clusterware)开始,引入了一个新功能叫SCAN (Single Client Access Name),SCAN是一个域名,可以解析至少1个IP,最多解析3个SCAN IP,客户端可以通过这个SCAN 名字来访问数据库,SCAN的好处就是当集群中新增加了节点或者删除了节点,不需要额外维护客户端。在11gR2上,客户端仍然可以继续使用原有的 VIP,但是oracle推荐使用SCAN。

    SCAN ip必须与public ip和VIP在一个子网,同时oracle推荐使用DNS或者GNS(11gR2 新功能)来解析SCAN,如果没有使用DNS或者GNS的话,可以使用hosts文件,但是这个办法不是oracle推荐的,因为这个方法只能定义一个 SCAN IP。

    GRID集群中有2类资源是与SCAN有关的,一类是SCAN IP,另一类是SCAN Listener,SCAN IP和SCAN Listener是成对出现的,也就是说如果有3个SCAN IP,就会同时有3个SCAN Listene。SCAN IP就是DNS解析的IP地址,SCAN Listener的作用是接受客户端的连接请求。查看SCAN IP信息和SCAN Listener信息的方法在后文介绍。

    数据库的初始化参数remote_listener默认被设置为SCAN Listener,目的是为了让SCAN Listener可以监听所有的实例,记录所有实例的压力,以便于按照负载均衡的方式来转发客户端的请求。

 

客户端如何通过SCAN访问数据库
-------------------------------------------
    客户端发出连接数据库的请求,DNS将SCAN解析出对应的3个SCAN IP并返回给客户端,客户端随机的选择其中一个SCAN IP地址,然后客户端通过这个SCAN IP访问对应的节点,当对应节点的SCAN Listener接受到请求后,SCAN Listener会选择压力最小的数据库实例,然后压力最小的数据库实例对应的local listener的地址将会返回给客户端,最终这个local listener为客户端请求建立与数据库的连接。


Nacos是一个开源的分布式配置中心,它本身并不直接支持连接Oracle RAC (Real Application Cluster) 库。然而,你可以通过以下步骤间接实现这种集成: 1. **环境准备**: - 安装Nacos客户端或SDK,例如如果你的应用需要访问Nacos配置,那么你需要添加Nacos的依赖。 - 确保你的应用有连接数据库的驱动,如JDBC Oracle driver。 2. **配置数据源**: - 配置你的应用程序的数据源,设置为连接Oracle RAC。通常,这涉及到在Spring Boot、Spring Cloud或你的应用配置文件中设置数据库URL、用户名、密码等信息。 ```yaml data-source: url: jdbc:oracle:thin:@<rac_cluster_address>:<service_name>:<port> username: <username> password: <password> ``` 3. **适配RAC特性**: - 如果Oracle RAC需要特殊认证或者网络模式(如共享服务器模式),记得调整相应的配置。 - 考虑读写分离或复制策略,因为RAC支持多个节点作为数据源。 4. **事务管理**: - Oracle RAC可能需要特定的事务处理规则,比如两阶段提交(Two-Phase Commit, TPC)。 5. **服务发现**: - Nacos可以用于服务发现,如果你的应用需要注册服务到Nacos,确保服务注册的信息能够正确指向Oracle RAC环境。 由于Nacos主要关注的是配置管理和服务发现,实际数据库操作还是由你的应用代码负责的。如果遇到关于Nacos和RAC结合的具体技术问题,可能会涉及到数据库连接池的管理或者其他数据库相关的错误处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值