Postgresql-9.3
如何加速 pg_dump 大數據庫
我有一個大數據庫(大約 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 命令(例如,某個日期列每年一個)