Postgresql

PSQL 不完整備份:如何調試

  • May 19, 2019

我一直在備份我的數據庫“螢幕”。

在連接到 PSQL 並輸入之後\l+

我得到(除其他外):

      Name       | Owner | Encoding |   Collate   |    Ctype    | Access privileges |  Size   | Tablespace |                Description
------------------+-------+----------+-------------+-------------+-------------------+---------+------------+--------------------------------------------
          screen | admin | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                   | 36 GB   | pg_default |

我的數據庫大小約為 36GB。

現在我通常會做定期備份:

pg_dumb screen > screenbackup.bak

並且輸出的大小總是與我的數據庫大小非常一致。

但是今天我得到了一個只有 8GB 的​​備份,這對我來說真的很奇怪。

在恢復到臨時數據庫並執行一些查詢後,確實似乎有一些失去的數據。

恢復的數據大小為10GB..

謝天謝地,我一開始就沒有放棄原件,但似乎總是有問題。我無法讓 pg_dump 或 pg_dumpall 備份完整的數據庫。根據我的經驗,它的大小通常至少與 db 或更大的大小相同。不是小4倍..

你知道從那裡去哪裡知道問題出在哪裡嗎?

編輯:也許這很重要:我正在使用 PSQL 9.4.4.1並嘗試進行備份,因此除了保存數據之外,我還可以更新 Postgres。

您是否在轉儲或還原時收到任何錯誤消息?如果不是,那麼最可能的解釋是沒有任何問題。數據庫大小和轉儲大小之間沒有緊密耦合。例如,如果您刪除了一堆數據並且沒有進行“Vacuum full”,那麼數據庫本身不太可能縮小,但轉儲(以及它的恢復)會更小。

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