sequoia中的自动故障处理
2008-02-20 22:39
183 查看
Sequoia 提供了完全透明的故障处理。这意味着只要保证至少有一个后端处于enable状态,客户端应用就感觉不到故障的发生。因此,客户端不需要针对集群的异常做任何处理。
下面将更详细地说明不同情况的故障处理:
处理控制器连接失败
如果一个控制器实例连接失败,Sequoia 连接器会根据预定义的规则透明地将客户端连接重新连接到另一个控制器。参考在控制器之间分配客户端连接。
如果是在一个事务内部发生故障,事务的上下文会在重新连接时自动保存。
处理控制器失败
如果一个控制器失败,这个控制器上的后端会被disable掉。现有的客户端连接也会自动的根据预定义的规则重新连接到另外一个控制器上。
正在执行的查询,按下面方法处理:
如果控制器在读写查询执行之前失败,那么这些读写查询会被自动恢复重新执行(甚至在事务内部也可以) 。
如果查询已经执行了但是尚未返回结果,这个时候控制器失败了,那么结果仍然可以得到。
当控制器无法从错误中恢复时,Sequoia 会在log目录自动生成一个名为
处理后端错误
如果后端失败了,它会从负载均衡器上自动去掉。失败操作的处理则取决于查询类型:
如果在读操作时后端失败,这个操作会在另外一个后端上重试。如果重试成功了,第一个后端会被disabled掉。如果在所有的后端上都失败了,那么这个查询可能有问题。.
如果在写操作的过程中后端失败,但是这个写操作在其他后端上执行成功,那么这个失败会被忽略。
这样,所有的失败都可以对客户端透明地处理。
下面将更详细地说明不同情况的故障处理:
处理控制器连接失败
如果一个控制器实例连接失败,Sequoia 连接器会根据预定义的规则透明地将客户端连接重新连接到另一个控制器。参考在控制器之间分配客户端连接。
如果是在一个事务内部发生故障,事务的上下文会在重新连接时自动保存。
处理控制器失败
如果一个控制器失败,这个控制器上的后端会被disable掉。现有的客户端连接也会自动的根据预定义的规则重新连接到另外一个控制器上。
正在执行的查询,按下面方法处理:
如果控制器在读写查询执行之前失败,那么这些读写查询会被自动恢复重新执行(甚至在事务内部也可以) 。
如果查询已经执行了但是尚未返回结果,这个时候控制器失败了,那么结果仍然可以得到。
当控制器无法从错误中恢复时,Sequoia 会在log目录自动生成一个名为
sequoia.report的trace文件.
处理后端错误
如果后端失败了,它会从负载均衡器上自动去掉。失败操作的处理则取决于查询类型:
如果在读操作时后端失败,这个操作会在另外一个后端上重试。如果重试成功了,第一个后端会被disabled掉。如果在所有的后端上都失败了,那么这个查询可能有问题。.
如果在写操作的过程中后端失败,但是这个写操作在其他后端上执行成功,那么这个失败会被忽略。
这样,所有的失败都可以对客户端透明地处理。
相关文章推荐
- failover 故障检测、报警、自动切换 程序 monitor_nginx.sh 用于对web server (Nginx) 监测与故障处理
- Curl 工具的妙用:shell中用curl实现业务监控和故障自动处理
- ORACLE 10G RAC 节点自动重启故障处理
- failover 故障检测、报警、自动切换 程序 monitor_nginx.sh 用于对web server (Nginx) 监测与故障处理
- 处理DG库自动建立文件失败的问题
- 一种自动处理数据表的方法
- Oracle 10.1实例启动后一分钟后自动挂掉的处理方法
- JMeter BeanShell 的使用-请求加密-返回自动解密处理
- Oracle 用户密码180天自动过期处理
- shell结合iptables自动处理CC攻击(转载)
- OGG学习笔记03-单向复制简单故障处理
- 处理天下第一奇的加域故障-冷静的心态决定视野 推荐
- 给model添加数据时,自动处理nil以及null数据
- 处理域控事件windows 不能查询组策略对象列表故障
- win7关机时蓝屏故障处理
- cloudstack 4.0 XenServer 日常简单故障处理
- struts异常自动处理机制
- 批处理自动安装打印机
- 笔记本故障处理一则