【问题标题】:Port Old Postgresql DB to New Computer将旧 Postgresql DB 移植到新计算机
【发布时间】:2022-08-03 05:06:06
【问题描述】:

由于我家的雷击,我的旧电脑最近被炸了。但我买了一个新的,令我高兴的是,那台旧机器上的 C: SSD 文件系统在我将它移植到新机器后仍在工作,尽管现在作为 D: 驱动器。

现在我正准备安装 PostgreSQL,并希望能够访问位于 D: 驱动器上的旧数据库。我很困惑如何进行。

  1. 似乎没有任何方法可以告诉正在运行的 PostgreSQL 实例,“嘿,在 D: 驱动器上看看那里 - 那是你可以使用的数据库。有一个 CREATE 数据库和一个 DROP 数据库,但不是“使用此数据库”。我应该说我在旧机器上运行版本 14,当然可以在升级之前在新机器上再次安装相同的数据库,如果有办法添加到它的目录。
  2. 没有数据库转储/转换实用程序可以在不通过正在运行的 PostgreSQL 服务器实例的情况下工作,所以我看不出有什么办法可以将旧数据转换为其专有格式并将其重新加载到新的 PostgreSQl 实例。
  3. 我唯一想到的就是安装一个尽可能接近旧版本 14 的版本,然后在新的地方(可能在 D: 驱动器上)创建第二个数据库,然后停止 PostgreSQL 服务器实例,复制旧数据覆盖新数据(包括所有子目录),然后重新启动服务器并希望最好。听起来充其量只是一个 50-50 的提议。

    其他人有任何其他想法/想法吗?

  • 1)你是如何在安装的机器上安装 Postgres 的? 2) 你打算如何安装新的 Postgres? 2) 将 Postgres 数据目录复制到 C:\\. 4) 您可以使用pg_ctl -D <data_dir> per pg_ctl 指向所需的数据目录。这假定 conf 文件位于该目录中。

标签: sql postgresql


【解决方案1】:

所以,以防万一其他人遇到这个问题并找到这个问题,这就是我发现的。

PostgreSQL 的安装程序会提示要使用的数据目录。 (在制作了数据的备份副本后)我告诉它使用D:\Program Files\PostgreSQL\14\data,它认识到这是一个现有的 PostgreSQL 数据存储库,它保留了我所有的表。

作为之后的一个实验,我将备份数据复制回数据目录(在停止 DB 之后),重新启动 DB,在 PostgreSQL 抱怨 LOG 文件位置后一切都很好。我想说,只要您运行的 PostgreSQL 版本与上次在旧计算机上使用数据库的版本相同,它就可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-04
    • 2011-01-17
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    • 1970-01-01
    • 2015-05-16
    • 2011-03-31
    相关资源
    最近更新 更多