Reputation: 148
I understand RDBMS databases like Oracle are not really meant for eventual consistency. But is it technically not feasible to customize oracle to follow eventual consistency model (say like what cassandra is supporting?)
For example: Cant we have two Oracle clusters (with it's own storage) connected by an active data-guard replicating in both directions? i.e., Active-Active! I have seen Active-Passive model in many production systems. But Is Active-Active feasible in Oracle?
Upvotes: 3
Views: 572
Reputation: 17934
You could build it using GoldenGate, but consider using Oracle Sharding, available in 18c. That way, you can just declare the replication topology you want using the GDSCTL
command syntax and Oracle will make it happen (using GoldenGate).
Here is a link to the documentation:
In particular, check out section 7.1 about High Availability and integration with Oracle GoldenGate.
I cannot say for sure, but Oracle's documentation strongly implies it can be used in an active-active arrangement. From Oracle's documentation:
7.1.1 When To Choose Oracle GoldenGate for Shard High Availability When should Oracle GoldenGate be employed as your high availablility solution for Oracle Sharding?
Oracle GoldenGate should be your preferred high availability solution in the following cases:
All shards read-write. With Active Data Guard the DR/backup shards are read-only.
More flexibility in deploying shards. Each shard can be on a different operating system or a different database version.
More than a single updatable copy of the data. For example, with Oracle GoldenGate, using the replication factor of 4, you can have 4 read-write copies of the data that can be updated.
Upvotes: 3
Reputation: 1161
You can create an active-active bidirectional asynchronous replication using Oracle GoldenGate or any other replication engine. But you have to strictly define the way that the rows are handled.
For example:
If the same row is updated at the same time in both sites - which one should be more important?
If you are assigning new identifiers to rows (like sequence) you have to make sure that you won't be assigning the same identifier at the both sites.
Or you can create a synchronous replication using Oracle RAC. You would create one big database that is created on 2 hosts with a shared storage. Every change made at one site is immediately visible on the other.
Upvotes: 2