IT技术博客大学习 共学习 共进步

用ASM和iSCSI实现的另类HA方案

Hello DBA 2009-12-10 13:36:25 浏览 2,801 次

   普通PC本地磁盘,没有共享存储,如何实现HA?Dataguard挺好,但是存在数据丢失的可能性,而且很难做到应用透明切换。我们用ASM,Heartbeat和iSCSI可以实现一个廉价的HA方案,如下图:

   

   用iSCSI将本地磁盘输出到对方的机器上,利用ASM的failgroup做mirror,保证数据mirror在两台不同的机器上,就算一台机器完全损坏,数据可以做到百分之百不丢失。用Heartbeat作HA探测,如果发现主机故障,则强行关闭DB和ASM,并在备机启动ASM和DB。如果使用Oracle 11g R2,还可以利用Preferred mirror read的特性,保证主库读自己的本地磁盘,而不是通过iSCSI读备机磁盘,这样可以达到更好的性能。

   缺点:Heartbeat作为HA软件,我们并不是十分了解其探测机制,可能出现误判或者无法切换的情况。但是其实IBM hacmp这种HA软件一样有问题,比如Oracle hang住时,现在的hacmp根本无法探测,因为hacmp只是判断Oracle的进程在不在,而不管数据库是否活着。

   我想不管什么HA软件,都无法处理所有的异常情况,我们只要有完善的监控和应对措施就可以了。比如我们现在所有的DB都有一个监控,就是定时模拟应用去更新数据库中的数据,如果发现超时或者报错,就认为数据库出现hang的情况,并发出报警。

   -EOF-

   另:之前我有一篇文章介绍用ASM和iSCSI搭建RAC的文章,在实际测试过程中,发现存在一些问题,因为在11g R2之前,voting disk和OCR都必须放在RAW devices上。因为没有共享存储,如果发生某台机器全部宕机,voting disk可能会丢失一部分,造成RAC的cluster机制发生误判。所以在11g R2之前,这个方案是有问题的,在11g R2中,Oracle几乎所有的东西都可以放在ASM中,这个方案也许可行,我还没有测试过。

建议继续学习

  1. ASM使用AIX raw disk的问题 (阅读 4,763)
  2. Oracle ASM存储方式浅析 (阅读 4,120)
  3. ASM中如何配置多个控制文件 (阅读 3,301)
  4. ASM的争论 (阅读 3,201)
  5. ASM的争论 (阅读 3,121)
  6. ASM装载磁盘组时ORA-15063错误处理 (阅读 3,080)
  7. 数据库HA方案 (阅读 2,961)
  8. ASM的优点总结–关于日志文件调整 (阅读 2,302)
  9. ASM HEADER 备份与恢复 (阅读 2,301)