从pg_data目录恢复Postgres数据库

时间:2013-06-18 15:17:20

标签: directory restore postgresql-8.4

我的虚拟机无法使用旧的postgresql数据库启动(用于运行PostgreSQL 8.4)。我可以访问文件系统(和pg_data目录)。

如何从此数据目录中提取数据(或恢复数据库)?

是否像将此目录的内容复制到工作的8.4 pg_data目录一样简单?

1 个答案:

答案 0 :(得分:4)

实际上它基本上就是这么简单。以下是我采取的步骤:

1)将data目录(/var/lib/postgres/8.4/data)存档到tar.gz文件中。

2)将文件移动到工作工作站(我的桌面,运行基于Debian的Linux发行版)

3)安装PostgreSQL APT存储库并使用the PostgreSQL Linux downloads for Ubuntu中的说明安装postgresql-8.4(或损坏的服务器上的版本)。

4)将tar.gz文件的内容解压缩到“新”PostgreSQL 8.4安装的主目录中(/var/lib/postgresql/8.4/main /)。

5)修改postgresql.conf以将port = 5432更改为port = 5433。这允许我们使用端口号控制我们连接到哪个版本的PostgreSQL(假设我们的工作站上有最新的稳定版本,例如9.1)。所以9.1将保持默认值5432,而8.4将保持5433。

6)修改提取的数据目录的所有权,以便postgres成为所有者:chown -R postgres:postgres /var/lib/postgresql/8.4/main/*

7)启动postgres服务:service postgresql start(你会看到两个版本都启动)

8)su作为postgres并使用端口5433连接,以及旧服务器上的数据库名称:psql -p 5433 DatabaseName

相关问题