ORACLE的URL配置说明

1 ORACLE的URL配置说明
2 基本介绍
2.1 什么是SID?
SID(system identifier) is a unique name for an Oracle database instance.
oracle sid对于每个实例,服务器都有唯一的SID。

2.2 什么是SERVICE_NAME?
SERVICE NAMES specifies one or more names for the database service to which this instance connects.
service name是为该实例连接的数据库服务指定一个或多个名称。在RAC环境中,多台数据库提供相同和不同的服务名称,以提供不同的服务支持。

2.3 什么是ADG?
全称是Active Data Guard,实时的数据保护,可用性,灾难恢复。在我们系统中用来容灾备份,读写分离等功能。
主节点将归档重做日志(archived redo log)传输给从节点,从节点应用归档重做日志;主从节点可以是一对多的关系。

 什么是redo log?
它由两个或多个预先分配的文件组成,这些文件存储数据库发生的所有更改。 Oracle数据库的每个实例都有一个关联的重做日志,用于在发生实例故障时保护数据库。

 什么是归档?
我们将redo log转换为archived redo log的过程称之为归档,归档后的日志称之为archived redo log,只有数据库在ARCHIVELOG模式下运行时才能执行此过程。可以选择自动或手动归档。

在这里插入图片描述

2.4 什么是RAC?
Oracle RAC 是一个具有共享缓存架构的集群数据库,它克服了传统的不共享和共享磁盘方法的限制,为您所有的业务应用程序提供了具有高度可扩展性和可用性的数据库解决方案。

3 jdbcurl几种方式
3.1 单台SID方式

jdbc:oracle:thin:@<host>:<port>:<SID>

在单机模式下更多使用该种方式,示例:

jdbc:oracle:thin:@localhost:1521:orcl 

3.2 单台服务名(service_name)方式

jdbc:oracle:thin:@//<host>:<port>/<service_name>

示例:

jdbc:oracle:thin:@//qdb.ganjx.com:1521/service

注意这里的格式,@后面有//, 这是与使用SID的主要区别。
这种格式是Oracle 推荐的格式,因为对于集群来说,每个节点的SID 是不一样的,但是SERVICE_NAME 却可以包含所有节点。

3.3 单台TNSName方式

jdbc:oracle:thin:@<TNSName> 

用于plsql中使用。

3.4 RAC方式
示例:

jdbc:oracle:thin:@(DESCRIPTION = (LOAD_BALANCE=ON)(FAILOVER=ON)(ADDRESS_LIST=(ADDRESS = (PROTOCOL = TCP)(HOST=dbv01.ganjx.com)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=dbv02.ganjx.com)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=service)(FAILOVER_MODE=(TYPE=select)(METHOD=basic)(RETRIES=3)(DELAY=20))))

3.5 RAC模式下指定单节点SID方式
示例:

jdbc:oracle:thin:@(DESCRIPTION = (LOAD_BALANCE=ON)(FAILOVER=ON)(ADDRESS_LIST=(ADDRESS = (PROTOCOL = TCP)(HOST=dbv01.ganjx.com)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=service)(INSTANCE_NAME = db1)(FAILOVER_MODE=(TYPE=select)(METHOD=basic)(RETRIES=3)(DELAY=20))))

该方式是由客户端制定instance_name决定;
3.6 RAC模式下服务名指定单节点方式
示例:

jdbc:oracle:thin:@(DESCRIPTION = (LOAD_BALANCE=ON)(FAILOVER=ON)(ADDRESS_LIST=(ADDRESS = (PROTOCOL = TCP)(HOST=dbv01.ganjx.com)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=dbv02.ganjx.com)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=dbrac2)(FAILOVER_MODE=(TYPE=select)(METHOD=basic)(RETRIES=3)(DELAY=20))))

该方式是有DBA为每个节点配置单独的service_name,由服务端指定service_name指向哪一台节点,如需rac模式下连接单节点推荐该方式连接。

4 问题解答
4.1 前面提到了RAC是高可用的集群方案,那为什么会有RAC模式下指向单台的需求呢?
(1) 在RAC模式下,由于每个节点可以缓存序列,所以会出现序列不连续的问题;
(2) 由于oracle rac环境下会有多实例运行,rac的特性是在多实例读写数据进行缓存融合,为了减少实例间数据块复制带来的性能消耗将应用配置为连接单实例。

4.2 c3p0连接池配置中的testConnectionOnCheckin和preferredTestQuery
在使用c3p0连接池时,如果设置了testConnectionOnCheckout或testConnectionOnCheckin为true,却未设置preferredTestQuery语句,默认测试连接的行为,就是DatabaseMetaData.getTables()查询系统表.

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值