问题标签 [pg-restore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
823 浏览

postgresql - PostgreSQL 将表重置为原始状态

我们有一个包含数百个表的大型 PostgreSQL 转储,我可以使用 pg_restore 成功导入这些表。我们正在开发一个软件,它可以插入很多这样的表(约 100 个),每次运行我们都需要将这些表恢复到它们的原始状态(这意味着转储中的内容)。再次恢复原始转储需要很多时间,我们不能在每次调试会话之前等待半小时。所以我需要一种相对快速的方法来将这些表恢复到从转储中恢复后的状态。

我尝试使用带有 -L 开关的 pg_restore 并选择这些表,但是在同时使用 --data-only 和 --clean 时出现重复键错误或“无法删除表 X,因为其他对象依赖它”错误仅使用 --clean。在 pg_restore 之前发出 SET CONSTRAINTS ALL DEFERRED 命令也不起作用。也许我的表格列表中的行都错了,现在是

对于每张桌子,然后

对于每张桌子。

我们只插入数据而不更新现有行,因此删除索引上方的所有行并重置序列可能会起作用,但我真的不想为所有一百个表手动创建这些命令,我​​什至没有即使我将级联设置为根据给定的行删除其他对象,它也可以确保它会起作用。

有没有人有更好的想法如何处理这个?

0 投票
3 回答
4065 浏览

postgresql - PostgreSQL 9.0.13 执行 pg_restore 但没有证据表明正在使用磁盘空间

我正在尝试从另一台服务器恢复使用此命令获取的 pg_dump。

复制完 pg-backup.sql 文件后,我尝试使用此命令进行恢复

pg-backup.sql 文件为 13GB。pg-restore 已经运行了 4 个小时,一直在我的屏幕上滚动数据。没有错误。

但是当我从 psql 会话中执行此语句时

我得到 5377 kB 的大小。什么?它现在至少应该是 1GB。我完全迷路了。所有这些数据都在我的屏幕上滚动,我无法证明它会去任何地方。没有磁盘使用。

帮助

0 投票
1 回答
3536 浏览

pgadmin - PgAdminIII 中的 pg_restore 问题

我需要一些有关 Postgres 备份的帮助。我正在尝试从 Windows 7 x32 的 pgAdmin III 1.16.1 恢复数据库备份。原始数据库位于一台服务器(也是 w7)中,另一台位于 Ububtu 服务器上。我已经尝试了所有可用选项的组合,我什至尝试从服务器的命令行和 Windows 进行备份和恢复,而不是使用图形界面。

这些是执行的命令和错误。结果是数据库恢复了,但只恢复了一部分。

请帮我!

我只复制了日志的一部分,因为它太长了......但没有错误接缝是“那个”

0 投票
2 回答
5468 浏览

postgresql - pg_restore 在没有数据库时询问数据库密码

我正在全新的 Ubuntu 安装上设置 Rails 应用程序,并使用 rake db:create:all 创建了 Postgres 数据库。在 databases.yml 中,所有数据库的密码字段都留空。我正在尝试对从应用程序的生产部署中捕获的转储进行 pg_restore,但一直提示我输入密码。我觉得这与 pg_hba.conf 文件中的设置有关,但我不记得我在以前的 Ubuntu 安装中是如何设置它们的。如何让 Postgres 信任 pg_restore 进行本地连接?或者有什么不同的原因导致这个问题?

0 投票
1 回答
995 浏览

database - 如何从 *.dump 文件中提取表到 CSV

我有一个 *.dump 文件(postgresql 转储),我想输出my_tablemy_table.csv. 有没有比pg_restore -t my_table db.dump > my_table.txt然后编写脚本从输出创建 CSV 更好的方法呢?

0 投票
1 回答
1368 浏览

postgresql - Postgresql 的 pg_dump 和 pg_restore 跨不同的主要版本?

最近我遇到了一个(可能是已知的问题),当 Postgre 的版本在主要编号上不同(总是升级,没有降级)时,例如字段类型。

在我的情况下,几乎没有冲突的数据,所以我手动更改了它,但想了解更多,以防我再次遇到这个问题与更多数据。

在这个具体案例中(但将来可以扩展到其他可能的问题),我只使用数据插入创建了备份,因为我已经保存了表结构。

使用该money类型从 8.x 升级到 9.x 时出现问题,我收到错误,因为插入的值类似于

所以 postgres 拒绝在 9.1 中插入它

我的想法,我尝试的是将该字段转换为 DECIMAL 并重做转储,这是可行的,但在未来,是否有另一种机制,比如使用更新的 pg_dump 连接到旧数据库,而不是当前的?(没有测试这个)

0 投票
2 回答
12672 浏览

postgresql - 来自 pgadmin3 的 pg_restore 错误 - Postgresql

我使用 pgadmin3 工具从 system1 备份了 Postgresql 数据库。创建的备份文件扩展名为“.backup”

我正在尝试在另一个安装了 postgresql 9.0 和 pgadmin3 1.8 的 system2 上恢复它,但我收到了错误:

无法执行查询:错误:无法识别的配置参数“lock_timeout”命令是:SET lock_timeout = 0;

两个系统的配置:

system1 win7-64bit postgresql 9.0.13-1 - 64bit pgadmin 1.8

system2 win7-32​​bit postgresql 9.0.13-1 - 32bit pgadmin 1.8

0 投票
2 回答
3192 浏览

postgresql - 哪种 pgdump 格式最适合小存储空间和快速恢复?

这是 PostgreSQL 备份(数据库转储)的第一次尝试,我一直在研究不同的 pgdump 格式、其他 pgdump 选项和 pgdumpall。对于一个 Postgres 初学者来说,每小时转储(将覆盖以前的转储)两个数据库,每个数据库包含表触发器和两个不同的模式,备份格式和选项可以轻松实现以下目标:

  1. 小文件大小(每个数据库单个文件或选择要恢复的数据库的能力)
  2. 易于恢复为干净的数据库(有和没有相同的数据库名称[s])
  3. 易于在不同的服务器上恢复(用户可能不同)
  4. 触发器在还原时被禁用,并在还原后重新启用。

包括用于备份和恢复的示例命令。

欢迎任何其他有用的 pgdump/pgrestore 建议。

0 投票
1 回答
2313 浏览

postgresql - PostgreSQL 在不同时区转储和恢复

我有两个数据库在不同时区的不同服务器上运行。有几个表包含timestamp with timezone.

我需要从一个数据库中转储数据并将其导入到另一个具有正确时间戳和正确时区的数据库中。

我使用以下命令转储数据:

我看到数据采用旧的时间戳和时区格式:2013-11-29 14:30:00+02

然后我使用命令到另一台服务器来恢复转储:

而且我看到时间戳和时区来自旧服务器 - 我认为这是正常的。

然后我尝试将以下命令放在 dump.sql 的开头

但仍然无法正常工作。:(

这是一次操作。一旦传输的数据将不需要同步。有没有办法使用 pg_dump 和 pg_restore 或类似的方法进行这种转换?

0 投票
1 回答
810 浏览

ruby-on-rails - 在开发中使用 heroku pg_dump

我正在尝试在我的开发环境中使用 heroku 的 pg_dump。

似乎我可以在下载转储后使用 pg_restore 来执行此操作: http ://www.postgresql.org/docs/current/static/app-pgrestore.html

我无法正确使用该实用程序,可能有人可以在这里帮助我

这是我正在使用的命令:

我得到一堆模式已经存在,角色不存在错误。

我敢打赌,有一种更简单、更清洁的方法可以做到这一点。如果有人提供能够在开发中使用 prod heroku pg db 的步骤和命令列表,将不胜感激。

谢谢 PS:数据量和架构量极小(转储:6MB)