【发布时间】:2013-03-13 16:53:18
【问题描述】:
我正在开发一个部署为两个独立站点的 ASP.NET Web 应用程序。每个站点都由它自己的相同(相同模式)ORACLE 数据库 (10g) 的实例支持,但每个数据库都包含“单独的”数据。一个站点仅包含“安全数据”,而另一个站点仅包含“开放数据”。只有少数用户可以看到安全站点和安全数据,而开放站点可供公司的大多数人使用。
安全站点用户现在希望能够查看来自安全站点的安全数据和开放数据。此外,他们希望能够修改开放数据,并且从安全站点对开放数据的更改需要传播到开放站点,并且需要相应地处理冲突。
我希望有一个仅限数据库的解决方案,因为我们有与存储过程相关联的报告,现在需要为安全用户显示安全和开放的数据。
我们可以假设数据被相应地标记为安全 (Y/N)。
我们目前的道路似乎不太理想。它涉及修改安全数据库以包含指向开放数据库的数据库链接。我们还向安全数据库添加了额外的视图,以通过数据库链接“联合”安全和开放数据。同时,我们正在对安全站点上的原始存储过程进行大修以处理 CRUD 操作,例如
if (someRecord.IsSecure = 'Y')
update secure data;
else
update open data;
在我们继续进行之前,我想联系一下,看看是否有更好的方法来解决这个问题,例如通过复制。
我一直在关注multi-master replication。这似乎是正确的道路吗?有没有人遇到过这种情况?
【问题讨论】:
-
复制会很快变得复杂,尤其是双向复制。仔细阅读 oracle 文档。我不知道您是否将 oracle 序列用于任何 PK,但如果它们不同步或存在于不同实体的两个数据库中,那总是很痛苦。我只使用单向复制。它确实有效,但需要大量计划、测试、测试、测试!
标签: database oracle oracle10g oracle11g database-replication