Postgresql

從屬伺服器上的 postgreSQL hot_standby pg_dump

  • September 14, 2017

我有主從(hot_standby)pgsql 配置,我想從我的一個從屬伺服器進行備份。我不想要 PITR,只是好的舊數據庫轉儲。

我從 MySQL 切換到 postgres。使用 MySQL 複製,我通過以下步驟從從站進行備份:

  1. stop slave;
  2. 履行mysqldump
  3. start slave

我可以用 postgres 做類似的事情嗎?


我在奴隸上試過pg_dump,但它返回錯誤:

pg_dump: Dumping the contents of table "news_event" failed:   PQgetResult() failed.
pg_dump: Error message from server: ERROR:  canceling statement due to conflict with recovery
DETAIL:  User query might have needed to see row versions that must be removed.

此外,pg_dump在主伺服器上執行良好,因此我可以在主伺服器上進行備份,但我更喜歡在從伺服器上進行備份。

跑吧pg_dump文件說:

pg_dump是用於備份 PostgreSQL 數據庫的實用程序。即使同時使用數據庫,它也會進行一致的備份。 pg_dump不會阻止其他使用者訪問數據庫(讀取器或寫入器)。

反過來,您在從站上看到的數據庫狀態也是一致的。如果複製有相當長的延遲,則結果可能與來自主伺服器的轉儲略有不同。

根據這個電子郵件執行緒,似乎從奴隸轉儲需要PostgreSQL v9.1hot_standby_feedback啟用設置(可能還有其他設置)。希望隨著更新版本的改進,它會變得更容易/更簡單。

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