Oracle RAC 实战(一)

所谓 Oracle RAC

全称 Oracle Real Application Clusters,即 Oracle 实时应用程序集群,使得不同应用程序访问多个 Oracle Instance 如同访问一个 Oracle Instance(当然性能是在水平方向上相应扩展的),Node 间通过 Private Network 进行通信;所有的操作通过日志文件进行记录,放于共享设备上可以被所有集群的节点同时读写、同步。

在Oracle9i之前,RAC的名称是OPS(Oracle Parallel Server)。RAC 与 OPS 之间的一个较大区别是,RAC采用了Cache Fusion(高速缓存合并)技术。在 OPS 中,Node 间的数据请求需要先将数据写入磁盘,然后发出请求的节点才可以读取该数据。使用 Cache fusion 时,RAC的各个节点的数据缓冲区通过高速、低延迟的 Private Network 进行数据块的传输。

RAC 的主要特性

  1. 多节点 Load Balance。
  2. 高可用性:支持 Failover & Switchover 功能,将异常的影响降低到最小化。Failover 故障切换——当出现异常故障情况下系统自动发生的操作;Switchover 为人工切换。
  3. 支持Primary & Standby 的横向扩展方式提高联机 Transaction 的可靠性。
  4. 可以节约水平扩展的软件开发成本,对设备和数量没有限定要求。
  5. 使用 Cache Fusion(高速缓存合并)技术。

RAC 连接数据库 Java 示例

public static void main(String arg[]) {
 try {
  Class.forName("oracle.jdbc.driver.OracleDriver");
  String url="jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = host1)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = host2)(PORT = 1521))(LOAD_BALANCE = yes)(FAILOVER = ON)(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = db.domain)(FAILOVER_MODE=(TYPE = SELECT)(METHOD = BASIC)(RETIRES = 20)(DELAY = 15))))";
  Connection c = DriverManager.getConnection(url,"demo","demo");
  Statement s = c.createStatement();
  ResultSet r = s.executeQuery("select current_date from dual");
  while(r.next()) { System.out.println(r.getString(1)); }
  }
  catch(Exception e) {
   System.out.println(e.toString());
  }
}

RAC常用配置说明

  • listener.ora - 网络上的每一台 RAC 服务器都必须包含一个 listener.ora 文件,该文件列出集群中所有监听进程的名字、地址以及它们所支持的实例。监听进程接收来自 Oracle RAC 网络客户机的连接。参数说明:
    • LISTENER:监听名称。可以配置多个监听,多个监听需要靠端口号要区分开来。
    • GLOBAL_DBNAME:全局数据库名。通过 select * from global_name; 查询得出。
    • ORACLE_HOME:Oracle软件的根目录。
    • SID_NAME:服务器端(本机)的SID。
    • PROTOCOL:监听协议,一般都使用TCP。
    • HOST:本机IP地址。
    • PORT:监听的端口号。使用 netstat --an 检查该端口不被占用。
  • tnsnames.ora
    • LocalName:就是服务器本地机器的命名。
    • ADDRESS:服务器的地址 。
    • PROTOCOL:使用的协议,一般都使用TCP。
    • PORT:服务器的监听端口号 。
    • SERVICE_NAME:服务器的数据库服务名称。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值