2012-02-21 64 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