目前了解到的,使用本地RAC加异地dataguard这种方案的较多,请分析一下这种方案的优劣?
优点:
灾备效果较好,不管本地发生什么情况,异地灾备都无任何问题,如果数据是实时同步的,直接切换成primary,对生产系统基本没任何影响。
缺点:
对带宽要求较高,如果网络方面出现任何问题都会导致同步延迟或者数据没传输成功,需要人工干预。
总之,这种方案是比较成熟的,作为数据量在TB级的数据库生产系统的一种灾备是非常好的,如果数据量超大,那就需要另寻方案,或者在此方案上做一些改动。
这个主要看你的业务需要达到什么样的要求
至于你说的优劣只能说,这个需要从三种模式上面而言,最大保护,最大性能,最大可用,方案本身其实没有什么太大的问题。
1)最高保护模式(Maximum Protection)
这里的”最大保护“是指最大限度的保护数据不丢失,也就是至少有一个standby和primary保持实时同步,但这样做的代价很大,即当一个事务提交时,不但要写到primary段的online redo log,还有写到至少一个standby的standby redo log。这样会有一个严重的问题,就是当standby出现故障或网络故障,导致日志无法同步时,primary数据库会被shutdown,这在生产系统中是不可接受的,因此这种模式很少用。
2)最高性能模式(Maximum Performance)
最高性能正好和最高保护相反,当事务提交时,只要写入到primary的online redo log即可,primary几乎不受影响。然后再把redo同步到standby中,这样就无法保证primary和standby实时同步。这种模式在实际应用中比较常见,毕竟primary不受影响是最重要的,如果出现standby落后primary太多,DBA可以手工介入,在standby端apply redo。
3)最高可用性模式(Maximum Availability)
最高可用性模式介于前两者之间,在正常情况下,它和最高保护模式一样,但一旦standby出现故障,就立即切换成最高性能模式,primary不会shutdown。如果实际应用该模式,得关注一下实时应用时对primary的性能影响。
个人感觉,这种方案虽然保守一些,但是比较安全。
本地RAC,在高可用和性能之间能找到一个比较好的平衡点。
异地DG,保证了RPO和主备库互相影响找到了一个比较好的平衡点。同时应用层面实现的复制避免了存储复制不可避免的逻坏块儿的风险。
当然,RTO和RPO可能不会太理想,但是现实当中哪儿有那么多的完美呢。
下一个目标应该是如何实现容灾切换的快速和科学化。
个人观点。
收起个人回答如下:
1.Oracle RAC 基于 ASM 多机(不少于2台)同时运行的原理
即 部署了 Oracle RAC 之后它的 物理机性能是 1台+1 台 数据同时读写,计算性能进行叠加,但是对磁盘的IO 来说要求是比较高的 两台物理机同时写入数据。
2.DG适用于异地容灾的部署和配置。当RAC 出现故障 手动切换到 DG的备机上去。要求的带宽的要求比较高
收起