Postgresql

如何跟踪大型 postrgresql 轉儲的進度

  • March 31, 2022

有沒有辦法查看pg_dump大型數據庫(即> 1GB)上的操作進度?添加該-v選項只會在螢幕上轉儲文本,但不會給我太多有意義的跟踪資訊。

您可以使用 TOC 列表查看粗略的進度。

首先,獲取要恢復的對象的 TOC 列表:

pg_restore -l -f list.toc db.dump

然後,您可以逐行查看 TOC 列表,並比較詳細的輸出或查詢 pg_stat_activity 以查看 TOC 列表中的哪個位置 pg_restore。

雖然這只是一個粗略的估計。首先,因為 TOC 列表中的每個項目可能需要非常不同的時間來載入(例如,模式很快,但載入大表和建構索引的數據不是),如果你使用 -j 你將有一個項目被恢復在前一個完成之前。另外,如果您不使用 -L,我不能 100% 確定 pg_restore 是否完全遵循 TOC 列表,但我認為確實如此。

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