2012-02-21 126 views
1

可以创建数据库服务器“沙箱”吗?
因此,存在一个包含真实数据和沙箱服务器的主服务器,该沙箱服务器应在沙箱没有缓存数据的情况下将读请求分派给主服务器。
对于写入请求,它应该创建数据的本地副本并将更改应用到该副本,而不会对主服务器造成任何影响。oracle数据库沙箱

回答

4

你可以建立这样的事情。

  1. 使用数据库链接创建一个本地Oracle数据库,该数据库链接指向主数据库。
  2. 将您感兴趣的每个对象的DDL从主数据库复制到本地数据库重命名每个表(即EMP变为EMP_LOC)。
  3. 在本地数据库中为表的远程和本地副本之间执行UNION ALL的每个表创建一个视图。
  4. 在本地视图上创建一个INSTEAD OF触发器,该触发器只将任何更改写入本地表。

虽然你可以做这样的事情,但是,这并不明显,为什么你想。建立和维护这将是一个相当大的工作量,而且性能很容易变得不稳定。这种方法解决了什么问题并不明显 - 它不能取代隔离开发,测试和分段环境的需要。我很难想出很多用例,其中这种“沙箱”会比其中一种环境更受欢迎。

1

@Justin Cave提供了一个很好的方法..但是,也许你应该考虑创建一个虚拟机,并且每当你想使用最新的数据处理新的事物时拍摄一个PROD实例的快照。

+0

不幸的是,数据库太大而无法创建其完整副本。 – 2012-02-21 15:13:34

+0

好吧 - 我现在认为你正试图通过在其他地方复制一小部分数据来获得性能 - 按需排序。在这种情况下,我的虚拟机建议不合适。 – Randy 2012-02-22 12:37:48