停电和重启后无法找到我的数据库

时间:2014-07-20 08:59:43

标签: database macos psql

OSX 10.9.3 psql 9.3.4

我有几个我正在研究的数据库,我们有一个停电过夜。现在不存在我的数据库(包括默认数据库(用户名))。

为什么所有的数据库都从psql中消失了?他们不会得救吗?有没有可能它们仍然存在但未列出\ dt?

非常感谢有关如何恢复这些数据库的任何帮助!

1 个答案:

答案 0 :(得分:1)

如果底层存储不安全,断电只会导致数据库损坏或丢失 - 例如,一些廉价的消费者SSD不能正确刷新写入。但是,这个问题不太可能导致整个数据库只是消失,如果发生这种情况,数据库服务器就不太可能成功启动。

由于您使用的是OS X,因此您很可能实际安装了多个PostgreSQL版本。我说你在断电之前正在进行一次PostgreSQL安装,并且在断电(并导致重启)之后,你正在进行不同的PostgreSQL安装。

事实上,由于您安装了9.3.4,因此您的计算机上至少还有一个其他PostgreSQL:Apple内置的内置版本。

如果您只是连接到错误的PostgreSQL实例,数据应该仍然存在,只需连接到正确的PostgreSQL实例 - 如有必要,首先启动它。 / p>

首先,试试:

SELECT version()

并确保您所连接的服务器版本符合您的预期。

我无法就如何找到包含数据的PostgreSQL安装提供更具体的说明,因为Mac用户倾向于以多种不同的方式安装PostgreSQL,并且通常安装了多个副本。它们也以不同的方式启动 - 通过launchd,手动使用pg_ctl,通过postgres.app启动器等等。所以为了帮助你,我需要具体确定你安装的PostgreSQL版本,方法和位置

我可以给你的一个提示是你可以使用终端命令搜索PostgreSQL数据目录:

sudo find / -name PG_VERSION 2>/dev/null

将为每个安装的数据目录显示一堆PG_VERSION个文件。您还可以列出PostgreSQL进程正在侦听的端口:

sudo netstat -ltnp | grep postgres

(假设它适用于OS X;我无法访问OS X计算机进行测试)。