6

我在亚马逊 EC2 上有一个 postgresql 数据库,需要确定备份这些数据的最佳方式。我正在考虑两种选择:

(1) 将 EBS 卷挂载到某个目录,例如 /pgsqldata,并将该目录用作 postgresql 数据目录(在 Amazon Linux 上,默认为 /var/lib/pgsql/data/)。然后这个卷会得到频繁的快照。

或者

(2) 将 postgresql 数据目录保留在其默认位置。然后使用 pg_dump 频繁地将备份转储到 /pgsqldumps 之类的位置,并且该卷将在每个 pg_dump 之后获得一个快照。

第三种选择是简单地对根设备卷进行快照(我使用的是 EBS 支持的实例),因为在我的情况下它既是 Web 服务器又是数据库。不过,我喜欢为数据备份提供专用卷的想法。

最后,如果我要对实时 postgresql 数据目录进行直接快照,我是否需要担心在快照过程中可能对数据库进行更改?

谢谢

4

1 回答 1

4

无论如何,您都应该将卷移至其自己的 EBS 卷,这有助于解决 EBS 卷上的写入争用以及其他好处。此外,我将日志写入自己的卷并进行备份。

为了回答这个问题,我两个都做。对 EBS 卷进行快照并转储数据库。这样,如果您想将实时数据同步到开发盒(取决于数据库上的 PII),转储和恢复很容易,但您也可以轻松恢复新实例并附加快照。如果您数据库转储小于 5gb,您可以将其同步到 S3,而不必将备份存储在自己的卷上,但如果不是,您需要将其存储在自己的 EBS 卷上,然后定期快照基础。

是我为此编写的脚本,它可能已过时,但应该可以工作。

于 2012-07-23T20:45:08.983 回答