Postgresql-9.3

如何加速 pg_dump 大數據庫

  • October 20, 2019

我有一個大數據庫(大約 900GB),當我將它遷移到新伺服器時,轉儲速度不超過 2MB/s(非常慢)。伺服器之間的鏈路為 10Gb/s。

該數據庫包含 20 個不同大小的表(最大的一個大約有 600GB)。因為伺服器有不同版本的 postgresql(源 9.3 和目標 9.4),所以我無法將所有集群複製到新伺服器。我嘗試使用:

pg_dump -h source | pg_restore -h 127.0.0.1

但沒有結果。我也嘗試轉儲到文件,然後使用“-j”參數恢復,但也沒有結果(20 分鐘後只有一個執行緒工作,因為其他執行緒完成了他們的工作)。問題不在於磁碟速度,因為這兩種方法都給了我相似的速度。

我沒有任何遷移如此大數據的經驗,所以這種方法可能不好。你有什麼建議為什麼這個遷移會變慢,以及如何加快速度?

您實際上不必dump升級 PostgreSQL 實例。例如,您可以使用**pg_upgrade**命令啟動一個可以訪問舊集群的新集群。如果您使用的是 XFS,您甚至可以使用--clone. 我會閱讀其餘的文件pg_upgrade

如果您只是想移動實例,您可以嘗試pg_basebackup- 儘管我不確定它是否適用於主要版本。

嘗試呼叫 COPY 命令來將文件讀入 CV。編寫一個對所有數據呼叫 COPY 的腳本應該是一件簡單的事情。

如果這仍然不能為您提供所需的速度,請為每個表執行多個 COPY 命令(例如,某個日期列每年一個)

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