Oracle

Oracle DB - 是否可以將表的數據分佈到多個伺服器上?

  • July 3, 2019

類似Bigtable的系統(例如HBase)允許表透明地分佈在多個伺服器上。這工作如下:

  1. 每個伺服器在同一張表的不同分區(分片)上執行讀/寫操作。
  2. DBA 不需要在查詢中明確指定保存分區的伺服器。
  3. 當 DBA 執行他的查詢時,API 會將請求路由到正確的伺服器。
  4. (主要好處是寫操作的橫向擴展)

我的假設是 Oracle 做不到,但我不是 Oracle 專家。非常感謝確認或糾正這一假設的參考資料。

簡短的回答是:不,Oracle 不會按照您建議的方式執行此操作,但是:

有一種方法可以模擬這一點,但不要忘記 Oracle 具有共享一切架構,這意味著所有數據都可用於所有節點上的所有實例。使用連接到在它們自己的實例上執行的指定服務的服務和應用程式碼可以使用表的指定分區來對應用程序進行分區。這是一個很大的努力去創造。

另一種(更好的)方法是使用 Active Data Guard 並讓您的應用程序在物理備用數據庫上執行所有查詢。使用 Active Data Guard,您可以確保它們始終包含最新數據。如果您需要執行更新/插入/刪除操作,請在單個主數據庫上執行。這樣做可以減輕主數據庫的讀取負載,並使備用數據庫能夠使用自己的儲存,即使是在自己的數據中心。如果您真的想向外擴展,這就是使用 Oracle 的方法。您可以隨時與主數據庫交換備用數據庫的角色以進行維護,從而提供非常好的可用性。有幾種方法可以選擇要在其上執行查詢的實例,例如循環法,但也可以基於位置或負載。

引用自:https://dba.stackexchange.com/questions/66481