Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Directory 从pg_数据目录还原Postgres数据库_Directory_Restore_Postgresql 8.4 - Fatal编程技术网

Directory 从pg_数据目录还原Postgres数据库

Directory 从pg_数据目录还原Postgres数据库,directory,restore,postgresql-8.4,Directory,Restore,Postgresql 8.4,我有一个坏掉的VM,它不能用一个旧的postgresql数据库启动(用于运行postgresql 8.4)。我可以访问文件系统(和pg_数据目录) 如何从该数据目录提取数据(或恢复数据库) 它是否像将此目录的内容复制到工作的8.4 pg_数据目录一样简单?实际上它基本上就是这么简单。以下是我为实现这一目标所采取的步骤: 1) 将数据目录(/var/lib/postgres/8.4/data)归档到tar.gz文件中 2) 将文件移动到工作工作站(我的桌面,运行基于Debian的Linux发行版)

我有一个坏掉的VM,它不能用一个旧的postgresql数据库启动(用于运行postgresql 8.4)。我可以访问文件系统(和pg_数据目录)

如何从该数据目录提取数据(或恢复数据库)


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

实际上它基本上就是这么简单。以下是我为实现这一目标所采取的步骤:

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

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

3) 安装PostgreSQL APT存储库,并按照中的说明安装
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