尽管我不得不说Stellarand git reset --hard是一个有趣的解决方案,但是对于较大的数据库和测试,我会遇到问题,并且确实会使用Virtualboxetc解决方案。但是,在较大的测试中,当您使用这些解决方案时,这些问题会变得更加“有问题”正在使用裸机等解决方案。
因此,ZFS由于@Peter Eisentraut也提到了以下原因,我不得不将其作为将来要考虑的文件系统:
- 快照-特别是当您从Prod复制到QA / DR时,可以将相同的“文件系统”用于测试:
#On a replication node, rather stop, snap, restore for a "consistent" backup ;)
su -l -c "/usr/bin/m2ee stop" acw_qa
pg_ctlcluster ${=QA} stop --force
zfs destroy -R $SNAPSHOT
pg_ctlcluster ${=REPLICATION} stop --force
zfs snapshot $SNAPSHOT
pg_ctlcluster ${=REPLICATION} start
zfs destroy $CLONE
zfs clone -o mountpoint=$CLONEDIR $SNAPSHOT $CLONE
rm $CLONEDIR/$CLUSTER/recovery.conf
pg_ctlcluster ${=QA} start
su -l -c "/usr/bin/m2ee start" acw_qa
做一个测试,就在测试之前按照上面的步骤停止一个postgresql,zfs snapshot $SNAPSHOT启动postgresql,然后回滚,停止postgresql,然后zfs rollback $SNAPSHOT
压缩-Postgresql在我的数据库中获得典型的3:1压缩,因此您可以做更多的测试;)