我有一个Postgres实例(v 9.2),在Windows 7本地运行。我还没有找出原因,但是PG在服务器突然停止的情况下被破坏了,服务会立即关闭我试图重新启动它。我重新安装了9.2,这解决了服务无法启动的问题。但是,现在pgAdmin没有显示以前存在的任何数据库(但是文件仍然存在于data \ base目录中)。奇怪的是,pg_default表空间的大小显示11GB,大小正确,但不显示依赖项下的任何数据库或对象。我的备份有几天了,所以我想直接从文件中恢复数据库。如何让PG识别数据/基本目录中的数据库文件?
答案 0 :(得分:0)
通常,每个数据恢复作业都是唯一的。你不会找到一个简单的答案,这些需要大量的动手故障排除。如果您打算自己这样做,我会在下面提供一些指导以便开始使用。如果数据很重要,请聘请专家(2ndQuadrant,PgExperts等)。
一些一般规则:
处理文件副本(即备份数据目录和所有表空间,并在另一台计算机上处理)。更好的是,创建一个经过验证的副本并处理的副本。
完成并验证副本(理想情况下是数据哈希)后,在损坏的系统上运行硬件诊断程序,看看出了什么问题。
现在开始,您可能想要查看PostgreSQL架构文档和与磁盘布局相关的源代码。你可能需要一个十六进制编辑器。您肯定希望查看系统表以了解关系未显示的原因。如果您对平台上的内存和磁盘对齐问题没有很好的理解,那么您也需要了解它。