Postgresql

PostgreSQL 11 Windows 10 在關機時截斷所有表

  • May 2, 2019

我有一台新的 Windows 10 筆記型電腦,配備增強型處理器、16GB RAM 和 2TB SSD 儲存。我在這台筆記型電腦上安裝了 PostgreSQL 11.2,並使用它來編譯來自各種來源的大型數據集,並對這些數據執行各種分析和報告。

多年來,我一直在我的舊 Windows 7 筆記型電腦上執行 PostgreSQL 9.x,沒有出現任何實際問題。但是在我的新筆記型電腦上,似乎每次我關閉筆記型電腦並返回數據庫時,每一張表都被截斷了。所有的桌子都還在那裡,但只是空蕩蕩的。

是否有需要在某處更改的配置設置?

解決方案

從所有表創建命令中刪除 UNLOGGED 選項

結果

在系統關閉或重新啟動期間數據不再消失

我已經使用CREATE UNLOGGED了很長時間,因為我發現在早期版本的 PostgreSQL 中,它對我的 SQL 腳本的執行時間產生了巨大的影響。在一種情況下,它從 15 分鐘下降到 45 秒左右。每隔一段時間,比如一年一兩次,我都會發現桌子已經空了。我會繼續重新載入數據集,從不真正考慮更多。

但是當我將數據集遷移到 PostgreSQL 11.x 時,我發現每次關閉筆記型電腦時表都會清空。感謝上面的評論,我了解到該UNLOGGED選項確實是這裡的罪魁禍首。我從所有表創建命令中刪除了該選項,並且數據在重新啟動期間不再消失。

額外的好處

在 PostgreSQL 11.x 中執行此操作時,我沒有發現性能有任何明顯下降!

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