2011-12-09 25 views
2

我試圖加速ec2上postgresql的性能。破壞臨時表空間後的Postgres恢復

一個ec2節點的結構如下 - 你有緩慢,持久的網絡附加存儲(EBS),並且你還有一個快速,易變的存儲(臨時存儲)。也就是說,在系統崩潰時,臨時存儲將會丟失。

爲了加快數據庫性能,我正在考慮將我的postgres temp_tablespaces設置爲臨時存儲中的目錄。但是,臨時存儲沒有持久性保證 - 在系統崩潰時,它將全部被永久銷燬。

這是否會造成數據丟失的風險?原則上,我認爲它不應該,因爲temp_tablespace用於臨時對象。但我對postgres數據模型並不熟悉 - 我在這裏有什麼危險嗎?

回答

1

是的,應該是安全的,如果您在需要臨時表完成提交的操作之前崩潰,則應該恢復到操作之前的位置。雖然,我不知道Postgresql是否會在重新啓動時清除該區域,但我會自行檢查。現在

適當的怪胎會嘗試在Amazon's memcache equivalent實現一個文件系統,並使用該...

+1

PostgreSQL不使用事務日誌的臨時日期的內容,但它不是臨時表的問題。但問題是一個表空間字典。在文件系統上銷燬時,應該手動刪除數據庫並手動重新創建 - 只有極少數情況下才會在恢復過程中重新創建。 –