本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
實體複寫
實體複寫是區塊層級複寫,其中 WAL 檔案會從主要資料庫運送到次要資料庫。實體複寫也稱為串流複寫,因為它允許待命伺服器保持比以檔案為基礎的日誌運送更多up-to-date。待命伺服器會連線至主要資料庫。然後,主要資料庫會將 WAL 記錄串流至待命資料庫,而無需等待 WAL 檔案填滿。物理複寫是一個值得考慮的選項,如果您有小型或中型資料庫,並且打算使用相同的資料庫版本。此外,您可以將實體複寫用於較大的資料庫,但同步可能需要相當長的時間。您可以搭配實體複寫使用下列兩種方法之一:
-
非同步 – 非同步方法為預設選項。如果主要伺服器當機,則遞交至資料庫的某些交易可能無法在待命伺服器上複寫,並導致資料遺失。
-
同步 – 同步方法可讓您確認交易所做的所有變更都會傳輸到一或多個同步待命伺服器。
架構
下圖顯示使用實體複寫為 Amazon EC2 上的內部部署 PostgreSQL 資料庫設定 HADR 的架構。
該圖顯示以下工作流程:
-
複寫 EC2 執行個體上的資料庫,並透過封存檔案進行複製。
-
將新複本提升為資料庫寫入器端點。
-
將應用程式指向新的目標資料庫。
限制
建議您在開始遷移之前,考慮使用實體複寫的下列限制:
-
伺服器上需要大量磁碟空間才能進行備份,然後在 Amazon EC2 上複製備份。
-
需要大量頻寬才能同步來源和目標資料庫,並更快地複製封存日誌。
-
來源和目標資料庫必須具有相同版本的 PostgreSQL。