2

我想在每天结束时创建一个数据库的只读快照,并将它们保留几个月。

然后,我希望能够针对特定(命名)快照运行查询。

这是否可以优雅地实现并以最少的资源使用(数据库更改非常缓慢,但有几 GB 的数据 - 所以几乎所有数据对所有快照都是通用的)。

4

1 回答 1

2

在 PostgreSQL 中创建快照的常用方法是使用 pg_dump/pg_restore。

一种更快的方法是简单地使用 CREATE DATABASE 来克隆您的数据库。

CREATE DATABASE my_copy_db TEMPLATE my_production_db;

这将比转储/恢复快得多。此解决方案的唯一缺点是源数据库不得有任何打开的连接。

默认情况下,该副本不是只读的,但您可以简单地撤销用户的相应权限以确保

于 2012-05-17T08:49:15.767 回答