OSX 10.9.3 psql 9.3.4
我有几个我正在研究的数据库,我们有一个停电过夜。现在不存在我的数据库(包括默认数据库(用户名))。
为什么所有的数据库都从psql中消失了?他们不会得救吗?有没有可能它们仍然存在但未列出\ dt?
非常感谢有关如何恢复这些数据库的任何帮助!
答案 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计算机进行测试)。