【发布时间】:2010-04-16 16:56:26
【问题描述】:
我有 3 个 Oracle 数据库实例,它们具有相同的数据和方案,我想保持同步,这些实例在地理上相距很远,并且可以在本地和通过 WAN 进行读写。 Oracle 有内置的东西来做这件事吗?同步不需要实时完成,它可以是一个确保它们同步并生成差异报告等的结束过程......有人处理过这样的问题吗?
【问题讨论】:
标签: database oracle replication
我有 3 个 Oracle 数据库实例,它们具有相同的数据和方案,我想保持同步,这些实例在地理上相距很远,并且可以在本地和通过 WAN 进行读写。 Oracle 有内置的东西来做这件事吗?同步不需要实时完成,它可以是一个确保它们同步并生成差异报告等的结束过程......有人处理过这样的问题吗?
【问题讨论】:
标签: database oracle replication
就 Oracle 原生功能而言,您将使用 Streams(假设您使用的是 10/11g)。
配置有点费时,但功能齐全。
[编辑以回应你的一个 cmets]
我见过最多三个数据库的复制工作,冲突解决设置为第一个时间戳“获胜”,以防 PK 冲突。如果大多数新/修改的记录来自您的一个站点并且只需要迁移到其他两个站点,那么您应该没有问题。如果您在每个站点都有重要的 DML,那么将 PK 作为由 Oracle 序列维护的代理键设置为递增 3 并在第一个站点从 1 开始,在第二个站点从 2 等开始,这样会有所帮助,这样每个站点都会为插入生成不冲突的键。我可以想象,如果您在每个站点的交易率都很高,那么您将在某个时候达到某些 Streams 基础架构的限制。
【讨论】:
我没有亲自使用过,但我相信 Oracle 的数据复制功能会很好地满足这一需求。
【讨论】: