1、TNS配置
正常使用oracle 一般是单机的连接地址配置。类似于:
jdbc:oracle:thin:@your_host_name:1521:your_db_sid
并且在TNS中 配置也是单机进行:
serfw = (DESCRIPTION = (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.11)(PORT=1521)) ) (CONNECT_DATA = (SERVICE_NAME=CGDB) ) )
注意配置中的addres是一个 ADDRESS_LIST 代表可以配置多个。所谓的双机配置也就是在这里进行。
serfw = (DESCRIPTION = (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.11)(PORT=1521)) (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.11)(PORT=1521)) ) (CONNECT_DATA = (SERVICE_NAME=CGDB) (SERVER=DEDICATED) ) )
配置两个 address ,这是TNS的配置。
2、JDBCURL 如何配置双机
正常的单机配置 直接 IP+PORT 跟上服务名字就可以了。双机的话需要 进行一些其他信息的写入。
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host1) (PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=service_name)))
列:
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver spring.datasource.url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=service_name))) spring.datasource.username=root spring.datasource.password=***** spring.datasource.type=com.zaxxer.hikari.HikariDataSource
这是一整个地址,相当于两个同样的数据源,可以进行任意的获取。初步猜想是达到了负载均衡的作用,减少了单台服务器进行存取的压力。