RDBMS(Oracle)中的最终一致性

时间:2018-07-04 19:02:00

标签: oracle cassandra database-replication

我了解像Oracle这样的RDBMS数据库并不是真的为了最终的一致性。但是自定义oracle以遵循最终的一致性模型在技术上是不可行的(例如cassandra支持什么?)

例如:难道我们有两个Oracle集群(具有自己的存储),它们通过一个主动的数据保护器在两个方向上进行复制吗?即,主动-主动!我已经在许多生产系统中看到了主动-被动模型。但是Active-Active在Oracle中可行吗?

2 个答案:

答案 0 :(得分:3)

可以使用GoldenGate构建它,但可以考虑使用18c中提供的Oracle Sharding。这样,您只需使用GDSCTL命令语法声明所需的复制拓扑,Oracle便会实现它(使用GoldenGate)。

这里是文档的链接:

https://docs.oracle.com/en/database/oracle/oracle-database/18/shard/sharding-overview.html#GUID-0F39B1FB-DCF9-4C8A-A2EA-88705B90C5BF

尤其是,请查阅有关高可用性以及与Oracle GoldenGate集成的第7.1节。

关于主动-主动的响应

我不能肯定地说,但是Oracle的文档强烈暗示它可以以主动-主动方式使用。从Oracle文档中:

  

7.1.1何时选择Oracle GoldenGate以获得高分片可用性什么时候应采用Oracle GoldenGate作为您的高可用性   Oracle分片的解决方案?

     

Oracle GoldenGate应该是您首选的高可用性解决方案   在以下情况下:

     

所有分片都是可读写的。使用Active Data Guard,可以使用DR /备份分片   只读。

     

在部署分片时更具灵活性。每个分片可以位于不同的位置   操作系统或其他数据库版本。

     

多个数据的可更新副本。例如,   Oracle GoldenGate,使用4的复制因子,您可以拥有4   可以更新的数据的读写副本

答案 1 :(得分:2)

您可以使用Oracle GoldenGate或任何其他复制引擎创建主动/主动双向异步复制。但是您必须严格定义行的处理方式。

例如:

  1. 如果两个站点中的同一行同时更新-哪一个更重要?

  2. 如果要向行(如序列)分配新的标识符,则必须确保不会在两个站点上都分配相同的标识符。

或者您可以使用Oracle RAC创建同步复制。您将创建一个大型数据库,该数据库在2个具有共享存储的主机上创建。在一个站点上所做的每个更改都可以立即在另一个站点上看到。

相关问题