Postgresql
PSQL 不完整備份:如何調試
我一直在備份我的數據庫“螢幕”。
在連接到 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”,那麼數據庫本身不太可能縮小,但轉儲(以及它的恢復)會更小。