mysql集群集成springboot_springboot配置数据库包括集群下 配置
首先准备数据库的必要信息。查询当前数据库实例名方法一:select instance_name from v$instance;方法二:show parameter instance查询数据库服务名方法一:show parameter service_nameora文件:单实例的2中配法://通过SERVICE_NAME配置SINGLE1 =(DESCRIPTION =(ADDRESS = (PR
首先准备数据库的必要信息。
查询当前数据库实例名
方法一:select instance_name from v$instance;
方法二:show parameter instance
查询数据库服务名
方法一:show parameter service_name
ora文件:
单实例的2中配法:
//通过SERVICE_NAME配置
SINGLE1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.22.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = db1)
)
)
//通过SID配置
SINGLE1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.22.1)(PORT = 1521))
(CONNECT_DATA =
(SID = db1)
)
)
//SERVICE_NAME (数据库服务名)和 SID(数据库实例名)是有区别的。
一般情况下,单实例,我们会把SERVICE_NAME (数据库服务名)和 SID(数据库实例名)写成一样的,
那么上面的2中配置就等效。
如果配置的不一样,或者在集群下,SID是有多个的,SERVICE_NAME用的是同一个。
即SERVICE_NAME: dbcommon
SID: db1,db2,db3......
那么上面的2中配置就不同了,我们一般用SERVICE_NAME那种配置。
oracle集群:
集群下,登录oracle用户,在plsql里改的数据,会自动同步,这就是集群。
你可以等一台机器,建一张表,然后登另一台,查这张表。
注意要加上用户名
例如 select * from scott.t_aaa;
所以ora的配置文件中有个LOAD_BALANCE=yes就是负载均衡,虽然是随机分发请求。
但是,无论访问哪个实例,最后的数据都是同步的。
根本原因就是集群是实例的集群,数据文件在底层都是同一个。
在集群下:
rac_group =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.22.1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.22.2)(PORT = 1521))
)
(LOAD_BALANCE=yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dbcommon)
)
)
yml文件:
spring:
datasource:
url: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.22.1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.22.2)(PORT=1521))(FAILOVER=on)(LOAD_BALANCE=on))(CONNECT_DATA=(SERVICE_NAME=dbcommon)))
username: test
password: Test@123
driver-class-name: oracle.jdbc.driver.OracleDriver
initialSize: 5
minIdle: 5
maxActive: 200
maxWait: 60000
如果,你在集群的oracle机器外又使用了浮动ip。
简单介绍下浮动ip的原理:
浮动ip即在你的应用服务器之外专门有一台机器做转发,对请求来说,只有一个ip。
这个浮动ip会按照一定的算法把请求转发到后面的任意一台机器上。
当应用有宕机的时候,就不会抓饭到宕机的机器上。
浮动ip原理介绍:
https://wenku.baidu.com/view/ed2b639b770bf78a6529546a.html
这个原理跟springcloud中的api网关很类似。
如果你的数据库也做了浮动ip,比如192.168.22.56 端口是 8888
那么在配置oracle集群时即可以这样配置一个ip:
rac =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.22.56)(PORT = 8888))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dbcommon)
)
)
yml文件:
spring:
datasource:
url: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.22.56)(PORT=8888))(FAILOVER=on)(LOAD_BALANCE=on))(CONNECT_DATA=(SERVICE_NAME=dbcommon)))
username: test
password: Test@123
driver-class-name: oracle.jdbc.driver.OracleDriver
initialSize: 5
minIdle: 5
maxActive: 200
maxWait: 60000
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)