【问题标题】:Import/Export PostgreSQL db "without" pg_dump or sql file / backup, etc...?导入/导出 PostgreSQL 数据库“没有”pg_dump 或 sql 文件/备份等...?
【发布时间】:2020-08-01 20:28:10
【问题描述】:

我需要将旧数据库导入新的 postgre 服务器。

有没有不使用 pg_dump 将旧数据库迁移到新服务器的方法?

我没有sql文件,也没有旧的服务器备份文件,也没有用户和密码,只有“\data”文件夹下的物理文件,有什么办法吗?

目标服务器与旧服务器的版本相同。

谢谢。

【问题讨论】:

  • 旧服务器和目标服务器在同一操作系统和版本上?
  • 是的,相同的操作系统,相同的服务器版本
  • 你使用的是什么操作系统?
  • 它是一个 Windows 10 服务器

标签: database postgresql import


【解决方案1】:

作为一个测试,你可以尝试:

pg_ctl start -D $DATA

其中 pg_ctl 来自目标版本,$DATA 是 /data 目录。你还没有说你是如何得到一个 /data 目录的。如果这来自不干净的关机或损坏的驱动器,则可能存在服务器无法启动。

更新

要绕过auth 失败找到pg_hba.conf 并创建或修改local 连接以使用trust 方法。有关详细信息,请参阅 pg_hbatrust。然后你应该能够像这样连接:

psql -d some_db -U postgres

进入后可以使用ALTER ROLE修改密码:

ALTER ROLE <role_name> WITH PASSWORD 'new_password';

【讨论】:

  • 开始工作,但没有连接,身份验证失败..我没有旧服务器的密码
  • 几乎完成,服务器启动正常,但我的服务器在 windows s'o 中,当我尝试使用 psql.exe 时,它​​说:致命角色“postgres”不存在。即使在信任模式下
  • 那不是因为它在 Windows 上,而是因为您正在启动的实例没有postgres 角色/用户。您知道在这种情况下哪些用户/角色在哪里吗?不妨看看pg_hba.conf 看看有没有提到用户名?
  • 我查看了文件,什么都没有,我完全崩溃了 :(。该哭了...但是,非常感谢你。
  • 你说的是 pg_hba.conf 文件吗?可能还没有结束。去这里postgres 和下面Notes 看看Single-User Mode。这会让你在不指定用户名的情况下以超级用户身份进入。
猜你喜欢
  • 2021-10-12
  • 2015-06-29
  • 2016-10-25
  • 2021-02-05
  • 2018-11-03
  • 2018-03-03
  • 2018-01-23
  • 1970-01-01
  • 2019-10-05
相关资源
最近更新 更多