1
EC2-如何正确备份PostgreSQL数据?
设置如下:1个带有3个附加卷的小型Amazon Linux(EBS支持)EC2实例。这既是Web服务器又是数据库服务器。一卷用于代码,一卷用于PostgreSQL(8.4)数据目录,一卷用于存储PostgreSQL的WAL文件。 (1)具有WAL文件的卷还将具有数据目录的基本备份,该备份将在执行pg_start_backup()之后复制。然后它将存储来自PostgreSQL的连续存档输出(WAL文件)。要对该卷进行快照,是否有必要发出同步并冻结文件系统(如果是XFS,则使用xfs_freeze;如果是EXT4,则使用dmsetup)?还是可以只拍摄实时快照?WAL文件将以每分钟1个的速度发送。在复制单个WAL文件并导致数据损坏时,是否可以启动快照? (2)包含活动PostgreSQL数据目录的卷也将得到备份(每天一次)。在制作该卷的快照之前,我发出pg_dump并将生成的SQL文件保存在数据目录中。采取预防措施以确保实际数据库数据一致是否有意义?假设实时快照可以正确地(a)备份配置文件(postgresql.conf,pg_hba.conf,pg_ident.conf)和(b)备份SQL转储文件是否正确?备份这两个东西,即sql dump文件和config文件,将是对该卷进行快照的重点。数据库不是很大,因此我不介意数据文件将使此快照膨胀。在那种情况下,我可以做一个实时快照-对吗? (2a)将数据目录保留在根卷上,并且有一个备份脚本将sql转储文件和配置文件复制到另一个卷上,并在复制完成后对该卷进行快照是否会更好呢? (3)至于上面带有代码的卷,是否还有一点要同步和冻结文件系统?还是只能拍摄实时快照?此数据应相当“静态”。 (4)这是一个可靠的备份方案吗?根卷不定期备份,因为在设置和配置机器映像后,我只会保留它。 谢谢