如何从文件备份恢复 Postgres 数据库

如何从文件备份恢复 Postgres 数据库

我使用 Mac 上的 Time Machine 备份我的系统。我刚刚设法破坏了我的 Postgres 数据库,并想使用我的 Time Machine 备份来恢复它。最近的更改并不重要,所以我只想将其恢复到昨天的状态。

所以,我的问题是:

a) Time Machine 备份对数据库有用吗?

b) 实际的数据库文件存储在哪里?我找了找,没找到任何有用的东西。

c) 我可以只回滚这些文件然后一切就正常了吗?

d)我需要先关闭 Postgres 吗?

我有一个使用 Postgres 备份的旧数据库转储,但我想首先了解 Postgres 的情况。

答案1

为了:

a) 可能不会。Time Machine 当然可以备份数据库(毕竟它们只是文件),但它可能不是最有效或最可靠的方法。因为 Time Machine 是基于文件工作的,所以如果文件中任何一点发生更改,它都会在下一次备份中再次备份整个文件。此外,在 Postgres 运行时进行文件级备份可能会出现问题,因为服务器缓存会发生变化(细节)。如果您真的想备份数据库,请设置 Launchd 作业以正确执行此操作 - 有手册中的一整节关于备份。

b) 默认情况下,类似于/usr/local/pgsql/data。不过,这是在启动服务器时设置的(使用标志-D),因此很容易更改。

c) 它要么能正常工作,要么做其他事情。如果在备份时服务器正在运行,则数据目录可能处于不一致状态 - 请参阅有关服务器运行时文件级备份的评论。不过,您可能会很幸运(特别是如果您的数据库使用不频繁),它会正常工作。

d) 非常如此。

相关内容