Postgresql

如何執行 pg_dump 以免減慢其他連接?

  • November 28, 2021

我每天在 PostgreSQL 9.3.14 數據庫上執行大約 pg_dump。50 GB 大小:

pg_dump -Fc dbname > file

我遇到的問題是,雖然pg_dump執行需要幾個小時,但所有其他數據庫連接都非常慢。

有什麼方法可以pg_dump減少資源消耗,還是有更合適的方法來創建不會降低數據庫伺服器速度的定期備份?

例如,從不同的伺服器執行 pg_dump 會幫助其工作伺服器上的數據庫 I/O 嗎?

使用atoppg_activity來確定瓶頸。這可能是伺服器資源以及非最佳 PG 配置/非最佳查詢或缺少索引。

為了提高轉儲速度,您執行轉儲:

  • 從另一台伺服器(需要良好的網路)
  • 使用零壓縮選項 -Z0 (減少轉儲時間,由於 pg_dump 不能並行壓縮,但增加了對 IO 的要求,這可能會使您的其他請求在時間轉儲執行時更慢)
  • 使用目錄格式進行備份:-Fd
  • 使用作業:-j8(取決於您的伺服器擁有的核心數量)

很難說,因為我們不知道您的數據庫設置。

您的數據庫是否使用帶有視圖的模式。您可以使用 -n 選項僅轉儲數據模式並在還原後重建您的視圖。

也許您可以在伺服器上的退出時刻執行此操作,使用 -j 您可以並行化轉儲。這將花費更少的時間,但使用更多的記憶體。

否則,從屬選項是一個好習慣

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