我了解像Oracle这样的RDBMS数据库并不是真的为了最终的一致性。但是自定义oracle以遵循最终的一致性模型在技术上是不可行的(例如cassandra支持什么?)
例如:难道我们有两个Oracle集群(具有自己的存储),它们通过一个主动的数据保护器在两个方向上进行复制吗?即,主动-主动!我已经在许多生产系统中看到了主动-被动模型。但是Active-Active在Oracle中可行吗?
答案 0 :(得分:3)
您可以使用GoldenGate构建它,但可以考虑使用18c中提供的Oracle Sharding。这样,您只需使用GDSCTL
命令语法声明所需的复制拓扑,Oracle便会实现它(使用GoldenGate)。
这里是文档的链接:
尤其是,请查阅有关高可用性以及与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或任何其他复制引擎创建主动/主动双向异步复制。但是您必须严格定义行的处理方式。
例如:
如果两个站点中的同一行同时更新-哪一个更重要?
如果要向行(如序列)分配新的标识符,则必须确保不会在两个站点上都分配相同的标识符。
或者您可以使用Oracle RAC创建同步复制。您将创建一个大型数据库,该数据库在2个具有共享存储的主机上创建。在一个站点上所做的每个更改都可以立即在另一个站点上看到。