2
我想在每天結束時創建數據庫的只讀快照,並將它們保留幾個月。如何在Postgres(或MySql)中創建和查詢只讀快照?
我希望能夠針對特定(命名)快照運行查詢。
這是否可以實現優雅和資源使用最少(數據庫只改變非常緩慢,但有幾GB的數據 - 所以幾乎所有的數據是所有快照通用的)。
我想在每天結束時創建數據庫的只讀快照,並將它們保留幾個月。如何在Postgres(或MySql)中創建和查詢只讀快照?
我希望能夠針對特定(命名)快照運行查詢。
這是否可以實現優雅和資源使用最少(數據庫只改變非常緩慢,但有幾GB的數據 - 所以幾乎所有的數據是所有快照通用的)。
在PostgreSQL中創建快照的常用方法是使用pg_dump/pg_restore。
更簡單的方法是簡單地使用CREATE DATABASE克隆數據庫。
CREATE DATABASE my_copy_db TEMPLATE my_production_db;
這將比轉儲/恢復快得多。此解決方案唯一的缺點是源數據庫不能有任何打開的連接。
副本將不會是隻讀的默認,但你可以簡單地撤銷了用戶的各自權限,以確保
我希望,有可能是一個優雅的方式,即,避免複製共享數據。我可能被哈斯克爾和Clojure中的不可變數據結構所迷惑。 – fadedbee
@chrisdew:做這樣的快照(沒有真正複製數據)可能更好地在文件系統級別完成。我認爲有文件系統可以做這樣的事情,但我沒有經驗。 –