我有以下问题,我需要知道是否有办法解决它.

我有一个客户,他很便宜,拒绝在运行他公司的主系统上为他的PostgreSQL数据库购买备份计划,正如我认为有一天会发生的那样,一些操作系统文件在停电期间崩溃,需要重新安装操作系统.

这个客户端没有任何数据库备份,但我设法保存了PostgreSQL主目录.我读到数据库以某种方式存储在postgres主文件夹的data目录中.

我的问题是:有没有办法只从数据文件夹中恢复数据库?我正在使用PostgreSQL 8.2的windows环境(XP service pack 2)中工作,需要在新服务器上重新安装PostgreSQL.我需要在新环境中重新创建数据库,并以某种方式将旧文件附加到新的数据库实例.我知道这在SQL Server中是可能的,因为引擎存储数据库的方式,但我在postgres中没有线索.

有什么主意吗?他们会非常感激的.

推荐答案

如果您拥有整个Data文件夹,那么您就拥有了所需的一切(只要架构相同).在清除这台计算机之前,试着在另一台计算机上恢复它,以防您没有复制什么东西.

只需将数据目录保存到磁盘即可.启动Postgres时,设置告诉它数据目录位置的参数(参见:wiki.postgresql.org).或者删除新安装的原始数据目录,并将副本放回原处.

Database相关问答推荐

什么是范围锁( range-locks)?

什么是Open Schema的数据库?

数据库设计:文件路径的首选字段长度

使用python为组中的每个元素添加一个序列号

在 MySQL 中创建表时如何定义列的默认值?

使用 ContentValues 和更新方法更新 sql 数据库

mysql搜索表名的段

使用 LiquiBase 和 Spring 将大量值(使用 FK)插入数据库

在 sql server 中存储持续时间(时间跨度)

PHP - 数据库抽象层使用静态类与单例对象?

如何使用 SQL 命令文件创建 SQLite3 数据库文件?

如何在 MySQL 中强制执行唯一约束?

使用 typeORM 搜索早于日期的数据

数据库中的整数与字符串

使用 JSON 作为存储/传输格式的数据库

什么是数据仓库?

mysql 无法从存储引擎读取自增值

使用默认路径中的文件创建数据库

sqlite 时间戳格式化

包含 8000 万条记录并添加索引的表需要超过 18 小时(或永远)!怎么办?