0

我有一个 Postgres (v 9.2) 实例,在 Windows 7 上本地运行。我还没有找出原因,但是 PG 以这样的方式损坏,服务器突然停止,当我尝试时服务会立即关闭重新启动它。我重新安装了 9.2,解决了服务无法启动的问题。但是,现在 pgAdmin 没有显示以前存在的任何数据库(但文件仍然存在于 data\base 目录中)。奇怪的是,pg_default 表空间的大小显示为 11GB,这是正确的大小,但没有显示依赖项下的任何数据库或对象。我的备份是几天前的,所以我想直接从文件中恢复数据库。如何让 PG 识别 data/base 目录中的数据库文件? 在此处输入图像描述

4

1 回答 1

0

通常,每个数据恢复作业都是独一无二的。您不会找到一个简单的答案,而且这些都需要大量的手动故障排除。如果你打算自己做,我在下面有一些入门指南。如果数据很重要,请聘请专家(2ndQuadrant、PgExperts 等)。

一些一般规则:

  1. 处理文件的副本(即备份您的数据目录和所有表空间,然后在另一台计算机上处​​理)。更好的是,创建一个经过验证的副本并处理该副本

  2. 在制作并验证副本(最好使用数据散列)后,在损坏的系统上运行硬件诊断程序以查看问题所在。

现在开始,您可能想要查看 PostgreSQL 架构文档和与磁盘布局相关的源代码。您可能需要一个十六进制编辑器。您肯定会想查看系统表以了解为什么没有显示关系。如果您对平台上的内存和磁盘对齐问题没有很好的理解,那么您也需要复习一下。

于 2013-12-22T01:57:00.750 回答