Chinaunix首页 | 论坛 | 博客
  • 博客访问: 54752
  • 博文数量: 56
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 600
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-15 09:38
文章分类
文章存档

2011年(8)

2010年(48)

我的朋友

分类: Oracle

2010-10-28 15:10:29

大话 ORACLE RAC 
第二部分
实战篇


第七章:
HA 和 LB
可用性=  MTTF/(MTTF+MTTR)
6个月/(6个月+20分钟)*100%=99.92%
Failover:
Client-Side Connect time Failover;
TAF;
Service-Side TAF;
注意:不要在listener.ora中设置GLOBAL_DB_NAME,因为这个参数会禁用Connect-time
Failover 和 Transparent Application Failover.
TAF:Transparent Application Failover
TAF的配置很简单,只需要在客户端的tnsname项目中添加FAILOVER_MODE配置项,这个条目
有4个子项目需要定义。
(1)METHOD   用于定义何时创建到其他实例的连接,
BASIC:是指在感知到节点故障时才创建到其他实例的连接,
PRECONNECT :是在最初建立连接时就同时建立到所有实例的连接,当发生故障
时,就立刻可以切换到其他链路上。
两者就是用时间换资源和用资源换时间的区别。
(2)TYPE选项用于定义发生故障时对完成的SQL语句如何处理,其有两种类型:session
 && select .
  这两种方式对于未提交的事务都自动回滚。
  区别在于对select语句的处理,对于后一种类型,用户正在执行的select语句也会
  被转移到其他的实例上,在新节点上继续返回后续的结果集,而已经返回的记录集
  抛弃。
(3)DELAY   重试间隔时间
(4) RETRIES 重试次数
Client-Side Failover和TAF 对照:
这两种方式都是在客户配置。
可以通过杀死server process来测试这两种方式的不同
Server-Side TAF:
这种方式是在服务端配置。
比TAF多了一个Instance Role(实例角色)
所谓实例角色,就是当有多个实例参与一个服务时,可以配置优先使用哪一个实例为
用户提供服务。用户共有两种可选角色。
PREFERRED:首选实例,会优先选择拥有这个角色的实例提供服务。
AVAILABLE:后备实例,用户连接会优先连接PREFERRED的实例,当PREFERRED的实例不可
用时,才会转到AVAILABLE的实例上。
1,可以使用DBCA来配置SERVICE
2, 可以使用命令行来配置SERVICE,srvctl.
srvctl add service -d -s -r"preferred-instance-list"
 -a "available-instance-list" -P
 
 eg:srvctl add service -d RAC -s Service2 -r "RAC1,RAC2" -a "RAC3,RAC4".
 
 
 
 
实例:
(1),添加之前,查看系统现有的服务:
SQL> show parameter service
(2), srvctl add service -d wxxrdb -s test -r wxxrdb1 -a wxxrdb2 -P basic
 
(3),$ crs_stat -t -v  确认
(4),配置这个服务自动启动
$ srvctl enable service -d wxxrdb -s oltp
(5),启动这个服务
$ srvctl start service -d wxxrdb -s oltp
(6) 确认
$ crs_stat -t -v
SQL> show parameter service
(7),修改Service 的TAF配置,需要使用dbms_service.modify_service.
begin 
dbms_service.modify_service (
service_name=>'oltp',
failover_method=>dbms_service.failover_method_basic,
failover_type=>dbms_service.failover_type_select,
failover_retries=>180,
failover_delay=>5
);
end;
(8),确认修改已经生效
select name,failover_method,failover_type,goal,clb_goal from dba_services;
(9),用户也可以使用srvctl命令查看配置
srvctl config service -d wxxrdb -s oltp -a
*无论使用DBCA还是srvctl命令来配置SERVICE,都无法配置TAF的TYPE,DELAY,RETRIES
三个属性,必须使用DBMS_SERVICE包来修改这些属性。




LB:
Connection Balancing 
Service
纯技术的分散负载
面向业务的分散负载
Connection Balancing:
1,客户端均衡(Client-Side LB)
LOAD_BALANCE = yes (8i中的技术)
2,服务端均衡(Server-Side LB)
需要配置 REMOTE_LISTENER
NOTE:
在配置LB时,有一点要注意,需要从各个实例的listener.ora文件中去掉缺省产生的
sid_list_listener_name条目,这样才能保证Listener获得的信息是动态注册的,而不是从
文件中读取的静态信息。
利用Service分散负载:




测试
grep establish listener_rac1.log|wc -l
实例1接收到的用户连接数量
grep INSTANCE_NAME=devdb listener_rac1.log |wc -l
从实例2转接过来的连接数量
阅读(744) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-10-29 14:55:09

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com