Replication 備忘錄
如此多的 Replication 類型,不過時間不多! 你應該使用什麼樣的 PostgreSQL Replication 呢?
如果主服務器出現故障,我想要一個備用服務器來接管。
我想要做唯讀查詢的負載平衡。
使用 streaming replication,但請注意,接收查詢的副本主機可能落後於主節點。
我想在一個緩慢或不可靠的網絡連線進行複寫。
請使用 WAL Shipping.
我想從 9.4 之前的版本升級到 9.4 或更新版本。
請使用 Slony, Londiste, 或 Bucardo.
我想從 9.4 或更新版本升級。
請使用 pglogical.
我想整合多個伺服器到一個單一的資料倉庫,或只複製一些資料表/資料庫/等等。
如果你在 9.3 或更早版本,請使用 Slony、Bucardo 或 Londiste。 (但是你應該先升級吧。)
如果你在 9.4、9.5 或 9.6,請使用 pglogical。
如果你是版本 10,請使用內建的 logical replication。
我只想複製資料表中的一些資料列
如果你在 9.3 或更早版本,請使用 Slony。
如果你在 9.4 或更新版本,使用 pglogical。
我想複製沒有主鍵或其他唯一鍵的資料表。
升級到版本 10 並使用內建的 logical replication。
我應該使用 Slony, Bucardo, 或 Londiste 嗎?
Slony 整體表現上比 Bucardo 或 Londiste 有更好。
Slony 需要安裝 C-level 的延伸套件。
Bucardo 和 Londiste 更容易安裝和管理。
Bucardo 和 Londiste 分別使用 Perl 和 Python,如果你真的很關心這些工具使用什麼語言的話。
我需要多個主要主機,其中兩個伺服器可以互相寫入和複製對方。
請使用 Bucardo.
我希望 Amazon PostgreSQL RDS 伺服器作為邏輯複製的目標。
請使用 Bucardo 或 Londiste.
我想從 RDS 複製到非 RDS 資料庫。
目前沒有解決方案。
我想要一個 RDS資料庫作為邏輯複製的來源。
目前沒有解決方案。
等等,RDS 文件說它「supports logical replication」。
它只支援 PostgreSQL 作為 contrib / modules 的一部分提供的測試外掛元件,實際上它並沒有做複製。
我想使用 Amazon 的資料遷移服務來進行 PostgreSQL 到 PostgreSQL 的複製。
你可能不會。 它不支援主要的 PostgreSQL 資料型別,如 TIMESTAMP WITH TIME ZONE。
我想同時使用 streaming replication 和 logical replication。
這是可能的,但是這個作法的外圍還有很多複雜性,如果你的主要工作失敗,如何成功地進行故障切換。
這真的非常複雜。
不是這樣的! 基本規則是使用 streaming replication 實現高可用性,以 logical replication 解決資料倉庫或其他資料分散問題。其餘的都是細節!
Last updated