RAC架构之业务分割

rac数据库有一个特点是高可用性,即使某个实例down掉了,并不会影响正常的业务。但是当数据块分不到不同的内存时,实例之间就会出现块的复制的问题(cache fusion),这种内存间数据块传递的代价也是比较大的。基于这个原因,有些系统中为了能够高效的利用rac架构,会采用业务分割。比如下面的例子,一个OLAP系统,有两个实例,这个数据库的主要功能是数据加载和数据查询:

[root@linux1 ~]# su - oracle                           --这里需要用oracle用户
[oracle@linux1 ~]$ srvctl status service -d orcl
[oracle@linux1 ~]$ srvctl add service -d orcl -s rac_query -r "orcl1"
[oracle@linux1 ~]$ srvctl add service -d orcl -s rac_load -r "orcl2"
[oracle@linux1 ~]$ srvctl status service -d orcl
服务 rac_load 未运行。
服务 rac_query 未运行。
[oracle@linux1 ~]$ srvctl start service -d orcl -s rac_query
[oracle@linux1 ~]$ srvctl start service -d orcl -s rac_load
[oracle@linux1 ~]$ srvctl status service -d orcl
服务 rac_load 正在实例 orcl2 上运行
服务 rac_query 正在实例 orcl1 上运行
这样我们就创建了两个服务,服务rac_query用于查询,服务rac_load用于数据加载。

SQL> select name from v$services;                                --只能看见某个实例启动的服务

NAME
----------------------------------------------------------------
rac_query
orclXDB
orcl
SYS$BACKGROUND
SYS$USERS

SQL> select name from v$active_services;

NAME
----------------------------------------------------------------
rac_query
orclXDB
orcl
SYS$BACKGROUND
SYS$USERS

SQL> select name from dba_services;                          --可以看见整个rac启动的服务

NAME
----------------------------------------------------------------
SYS$BACKGROUND
SYS$USERS
rac_query
rac_load
orclXDB
orcl

已选择6行。
这样就通过为应用分配不同的服务方式,来达到业务分割的目的。tnsnames.ora配置:

rac_query =
  (DESCRIPTION =
    (LOAD_BALANCE = ON)
    (FAILOVER = ON)
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac-scan.oraclerac.com)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = rac_query)
      (FAILOVER_MODE =
        (TYPE = SELECT)
        (METHOD = BASIC)
        (RETRIES = 30)
        (DELAY = 5)
      )
    )
  )
  
rac_load =
  (DESCRIPTION =
    (LOAD_BALANCE = ON)
    (FAILOVER = ON)
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac-scan.oraclerac.com)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = rac_load)
      (FAILOVER_MODE =
        (TYPE = SELECT)
        (METHOD = BASIC)
        (RETRIES = 30)
        (DELAY = 5)
      )
    )
  )


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值