Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想在每天结束时创建一个数据库的只读快照,并将它们保留几个月。
然后,我希望能够针对特定(命名)快照运行查询。
这是否可以优雅地实现并以最少的资源使用(数据库更改非常缓慢,但有几 GB 的数据 - 所以几乎所有数据对所有快照都是通用的)。
在 PostgreSQL 中创建快照的常用方法是使用 pg_dump/pg_restore。
一种更快的方法是简单地使用 CREATE DATABASE 来克隆您的数据库。
CREATE DATABASE my_copy_db TEMPLATE my_production_db;
这将比转储/恢复快得多。此解决方案的唯一缺点是源数据库不得有任何打开的连接。
默认情况下,该副本不是只读的,但您可以简单地撤销用户的相应权限以确保