问题标签 [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 投票
2 回答
3248 浏览

postgresql - 如何解决 Postgresql 8.4 错误'语言“plpgsql”已经存在'?

创建数据库后,我通过脚本使用.backup文件在此空白/新数据库上恢复 PostgreSQL 8.4 中的数据库(具有适当的错误处理)。如果发生任何错误,则脚本会中止整个过程并将该过程标记为失败。在数据库还原期间会生成以下错误:

我知道,这个错误在PostgreSQL 8.x中应该被忽略,但是由于我是通过脚本执行的,所以这个问题需要解决,即PostgreSQL的退出代码应该为0,否则整个过程将无法完成.

知道怎么做吗?

0 投票
1 回答
864 浏览

postgresql - Pgadmin 4 行安全问题

我正在使用 pgadmin 4 web 来管理 postgresql 9.3 服务器,所以在恢复数据库时,我遇到了这个错误

但我注意到我的数据已恢复(不知道是否 100% 无法全部检查)

而且我不能授予任何用户任何特权!

我的问题是:如果它确实恢复了我的所有数据,我可以忽略该错误吗?以及如何使用Grant wizard

0 投票
1 回答
1016 浏览

postgresql - postgresql,恢复错误,表“pat”的复制失败:错误:pattern_in 未实现

转储通用:

恢复通用:

0 投票
1 回答
84 浏览

java - 如何在文件中存储一小段信息而不会弄乱其内容?

我的问题:

如何将我的软件的当前版本存储在 PostgreSQL 生成的转储文件中?


我的问题的原因:

我使用 PostgreSQL 数据库开发了一个 JAVA 软件。该软件安装在每个用户的本地计算机上,数据库也是本地的,并且对每个用户来说都是个人的。

我创建了一个功能,以便用户可以备份他们的数据库并恢复它们。为此,我的 JAVA 代码运行pg_dump以生成备份文件并pg_restore恢复它。也就是说,备份只不过是下面命令生成的数据库的转储:

问题是我通常会启动软件更新。该软件的新版本始终与以前版本的转储兼容。但是,旧版本的软件与新版本生成的转储不兼容。

有时会发生用户试图在不兼容的旧版本软件中恢复最新版本的转储。

我希望转储文件具有生成它的软件版本的信息。这样,我可以简单地显示一条消息,通知用户他需要下载最新版本的软件才能恢复备份。


我想到了下面的两种形式,但我认为它们不合适:

  1. 以转储文件名保存软件版本。这会很糟糕,因为用户可以重命名文件。
  2. 连接转储文件内容中的版本。我担心转储文件可能会在其中输入文本的过程中或在删除它的文本的过程中(在恢复转储之前)以某种方式损坏。

有没有更好的方法将此信息添加到转储文件中?

0 投票
1 回答
1238 浏览

database - 将 .backup 文件恢复到 postgres 时获取空表

我有 .backup 文件,我需要将它恢复到我的 postgres 数据库。但是当我在我的数据库中选择恢复并选择我的文件时,我得到了所有带有一些空表的表。我不知道我是否选择了正确的选项,但这就​​是我所做的:我选择了我的备份文件; 在此处输入图像描述

然后我从“Option1”和“Options2”中选择这个选项:在此处输入图像描述

在此处输入图像描述

0 投票
0 回答
56 浏览

postgresql - Heroku pg:restore 找不到转储文件?

我无法通过外部转储文件将备份恢复到 heroku 数据库。我运行这个命令:

我得到这个错误作为回报:

我可以从浏览器访问该文件,但似乎 pg:backups 无法访问该文件。我还尝试了不同的文件托管方法(包括私人 FTP 服务器和 Dropbox)。我搜索了其他有同样问题的人,但似乎没有一个问题得到回答

0 投票
1 回答
1831 浏览

postgresql - postgresql:pg_restore 错误,“详细信息:当前不允许修改系统目录。”

我正在尝试将笔记本电脑上的开发数据库传输到工作站。它给了我各种各样的错误,我不知道如何正确恢复这个数据库转储。没有-1它确实完成了,但是丢失了很多对象。

目标机器上的数据库名称与我转储的数据库不同。但我看不出与错误有什么关系。这个转储/恢复的东西是全新的。pg_restore -l在我没有线索的情况下,我看不到有关系统目录的任何内容...

drop-n temp似乎摆脱了特权问题。但还有更多错误出现

在手动创建 plv8 和 plpython 扩展之后。那些语言错误已经消失了。我对这个 FDW 表有疑问。

我试图创建 FDW 扩展。但 FDW 依赖于公共模式。删除-c --if-existspg_restore 选项,在每次还原尝试之前重新创建检查点数据库。

FDW仍然有问题。必须在遇到每个新的 FDW 错误后创建每个 FDW 服务器(我不记得全部)。循环这个过程,直到所有的 FDW 服务器错误都消失(这真的是应该如何进行无错误的 dababase 恢复......?)。下一个错误

我已经物化了视图来缓存 plpython 函数结果。但是他们的一些逻辑被贬低了,不能轻易修复。

我想我的无错误恢复到此结束。必须取消-1单一交易模式。忽略的总错误从 55 减少到 6。看起来大多数对象都回来了。

有什么办法可以忽略物化视图刷新过程...

0 投票
2 回答
2312 浏览

postgresql - pg_restoreing 非常大的单个表使用 -j 选项需要几个小时

我正在处理具有 700+ 百万行的单个表(没有分区)。我想将此数据加载到另一个数据库,所以我使用了以下 pg_dump 命令,

在目标系统上,我使用了以下命令,

目标数据库已经有我试图恢复的表,所以我使用了 TRUNCATE,然后删除了所有索引。目标系统有 32GB 物理内存,我在 postgres 配置文件中做了以下设置,

当我为 pg_restore 计时时,一个小时内只有大约 1600 万行被插入。这意味着恢复数据需要 40 多个小时 (!)。之后,我必须创建我删除的索引和外部约束,这可能需要几个小时。我有一种感觉,我可以做一些不同的事情来使整个过程更快。请给我任何可以帮助我提高此过程效率的指示。我还想提一下,我已经看过 COPY 但因为它不保持主键的顺序,所以这个选项对我不利。如果我不知道保留数据顺序的 COPY 的任何特殊设置,那么很高兴知道!

整个事情的目的是更改列的一些数据类型,当使用alter table alter column query 完成时,这些数据类型也需要相似的时间。

0 投票
0 回答
711 浏览

postgresql - PostgreSQL 在不删除表的情况下恢复现有行

我一直在尝试备份和恢复 PostgreSQL。但是,我有一个问题,我必须在没有删除表的情况下恢复现有数据。

我尝试了正常的备份和恢复,我收到了一些类似下面的错误消息。

有什么方法可以在不删除行或删除表的情况下恢复现有数据?

我知道 -clean 选项,但这不适合我的情况。

0 投票
0 回答
336 浏览

postgresql - OpenShift Pro - PostgreSql 恢复失败

我正在尝试在 OpenShift Pro 上恢复 PostgreSQL 数据库。

备份文件72mb,数据库155张表,不算大,但也不小。

恢复命令:

pg_restore --dbname=mmjdb --verbose --no-owner --role=mmj 17.09.21.backup

它运行了一段时间,似乎正在工作,但随后就停止了。终端显示:-

pg_restore:处理表“public.bookingdatehouraudit”的数据

pg_restore: [archiver (db)] 由 PQputCopyData 返回的错误:服务器意外关闭连接这可能意味着服务器在处理请求之前或期间异常终止。

sh-4.2$ 命令以退出代码 137 终止

我已经为部署提供了 2GiB 内存。我将持久卷声明 postgresql 作为 1GiB 容量。

估计是资源不够用了。。。

我在 OpenShift 2 上恢复这个数据库没有问题。

有任何想法吗?

任何帮助将非常感激...