我的 Ubuntu 服务器上有 BTRFS,并且使用 PostgreSQL 作为数据库。我想.tar.gz
根据数据库文件夹的当前状态进行存档。
但是,由于数据库在执行此操作时当然正在运行,因此它可能会在创建.tar
.它大约有 15 GiB,因此需要一段时间才能对其进行存档,因此很可能会在这段时间内发生变化并造成不一致(当我的数据库不断从 API 获取数据时,它会每分钟至少自动更新一次)。
现在,我想知道,有没有办法以原子方式tar
或至少复制该文件夹(这样我以后可以将其压缩)?
我当前的想法是以某种方式制作 BTRFS 快照,然后将该文件夹从快照中 tar 出来,然后删除快照。
我将如何实现制作准确表示单个时间点的 tar 的目标,而不是在数据库更新时包含冲突的更改?
有没有一种我在这里没有考虑的更简单的替代方法?
答案1
PostgreSQL 已经有一种备份数据库的方法 -pg_dump
。它使以后恢复备份变得更加容易。