标签: pg-restore

Postgres:pg_restore / pg_dump一切,除了表的表ID

目前,我正在做类似的事情:

pg_dump -a -O -t my_table my_db > my_data_to_import.sql
Run Code Online (Sandbox Code Playgroud)

我真正想要的是能够仅导入/导出数据,而不会引起与autoid字段的冲突或覆盖现有数据。

也许我在考虑整个过程错了吗?

postgresql pg-dump pg-restore

5
推荐指数
1
解决办法
2669
查看次数

pgadmin3中的pg_restore错误-Postgresql

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

我正在尝试在安装了postgresql 9.0和pgadmin3 1.8的另一个system2上还原它,但出现错误:

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

两个系统的配置:

system1 win7-64位PostgreSQL 9.0.13-1-64位pgadmin 1.8

system2 win7-32​​位PostgreSQL 9.0.13-1-32位pgadmin 1.8

postgresql pg-restore

5
推荐指数
1
解决办法
1万
查看次数

尝试还原数据库时,PgAdmin III没有响应

我正在尝试通过备份文件还原数据库,我使用的是PgAdmin III(PostgreSQL 9.1)。选择备份文件后,出现一个窗口,指示正在运行pg_restore.exe,然后PgAdmin没有响应,这已经是几个小时了(这不是RAM不足的问题)

可能是由于备份文件大小(500 MB),但是几天前我已经用300 MB的备份文件恢复了数据库,并且操作很顺利。顺便说一下,备份文件的格式(通过pg_dump创建)是“ tar”格式。

如果您有任何想法或需要更多信息,请告诉我。感谢任何人提供的帮助或指导。提前致谢。

database-restore pg-restore pgadmin postgresql-9.1

5
推荐指数
1
解决办法
3732
查看次数

如何在 PostgreSQL 中恢复集群备份?

我正在尝试在 PostgreSQL 中恢复集群备份。我使用了 pg_dumpall,它生成了一个带有 SQL 查询的纯文本文件。但是,当我尝试恢复它时,出现此错误:

pg_restore: [archiver] 输入文件似乎不是有效的存档

当我尝试恢复数据库的备份(用 pg_dump 生成)时,我也收到了同样的错误,但我解决了这个问题。在那种情况下,pg_restore 无法通过 SQL 查询识别纯文本,因此我更改了命令:

pg_dump db_name -Fc -U user -h host -p port > my_db_backup.dump
Run Code Online (Sandbox Code Playgroud)

而是写道:

pg_dump db_name -Fp -U user -h host -p port > my_db_backup.dump
Run Code Online (Sandbox Code Playgroud)

这样生成的文件不是纯文本,所以 pg_restore 可以很好地处理它。

现在,我正在尝试使用 pg_dumpall 进行相同的管理,但是没有 -F 参数。我的代码(在 Python3 中,但此命令对于任何语言都是相同的)是:

pg_dumpall -U user -h host -p port > my_cluster_backup.dump
Run Code Online (Sandbox Code Playgroud)

知道如何管理这个吗?或者至少如何以任何方式恢复集群备份?先感谢您!

编辑

如果我使用psql来恢复:

psql -U user -h host -p port -f my_cluster_backup.dump postgres'
Run Code Online (Sandbox Code Playgroud)

它似乎有效,控制台中显示了很多命令,但每个命令都给出了“它已经存在”的错误。我无法理解,因为我有两个集群(端口 5432 和 5433),我猜它正在尝试在 5432 中恢复,当我确定我已连接到 5433 时。以前有人遇到过这个问题吗?

postgresql dump pg-restore

5
推荐指数
1
解决办法
5209
查看次数

如何修复'HttpRequest'对象在Odoo中没有属性'endpoint_arguments'?

我得到了一个数据库备份(带有文件存储),filestore文件夹和另一个包含该数据库上已安装模块的文件夹.

我希望在没有更多数据的情况下在Odoo 8中恢复该备份.所以我所做的是创建拥有数据库表并赋予其足够权限(登录,创建,复制)的PostgreSQL角色.然后我创建了一个Odoo配置文件.在这里,我设置了这个新的PostgreSQL角色db_user和密码db_password.我添加了存储文件存储data_dir的路径,以及包含所有模块的文件夹的路径addons_path.

由于没有给出启动器文件,我复制了其他Odoo实例的OCB文件夹,并使用其odoo.py文件启动Odoo.

新实例似乎运行良好,但现在我刚刚恢复了数据库,我收到此错误:

QWebException: "'HttpRequest' object has no attribute 'endpoint_arguments'" while evaluating
'website.get_alternate_languages(request.httprequest)'
Run Code Online (Sandbox Code Playgroud)

我在google搜索了很多,但除了在其他论坛中没有回答的问题外,我无法找到任何关于它的信息.

有谁知道这是关于什么的?

pg-restore odoo odoo-8

5
推荐指数
1
解决办法
1587
查看次数

postgres pg_restore 追加数据

我有一个使用pg_dump自定义格式创建的 pg 备份。我正在尝试使用pg_restore仅数据恢复到已经有一些数据的数据库中。这在 DB 和转储中存在相同数据(某些行)的情况下失败。有没有办法忽略这些行并继续恢复其余数据?

postgresql pg-dump pg-restore

5
推荐指数
0
解决办法
530
查看次数

pg_dump 有没有办法不将 search_path 用于架构

问题:有没有办法让 pg_dump 命令不使用 search_path 来设置架构,而是使用表名定义架构

我的一般情况是我正在尝试转储和恢复包含许多架构的 postgis 数据库(这是为了将我的数据库迁移到 Amazon RDS)。在每个模式中,我都有一个带有地理列的表。从转储生成的 SQL 类似于:

CREATE SCHEMA aaaa; 
SET search_path = aaaa, pg_catalog;

SET default_tablespace = '';
SET default_with_oids = false;
--
-- TOC entry 346 (class 1259 OID 1135099)
-- Name: main; Type: TABLE; Schema: aaaa; Owner: -
--
CREATE TABLE main (
    pk bigint NOT NULL,
    geometry public.geography(Geometry,4283),
    batch bigint NOT NULL,
    json jsonb NOT NULL,
    cache jsonb NOT NULL,
    active bigint DEFAULT date_part('epoch'::text, now()) NOT NULL,
    inactive bigint DEFAULT '8640000000000000'::bigint …
Run Code Online (Sandbox Code Playgroud)

postgresql postgis pg-dump pg-restore postgresql-9.6

5
推荐指数
1
解决办法
2003
查看次数

使用 pg_restore 恢复表不包括主键或索引

所以我使用 pg_dump 备份了一个表:

pg_dump -U bob -F c -d commerce -t orders > orders.dump
Run Code Online (Sandbox Code Playgroud)

该表有几个列出的索引,例如主键

但是,当我使用 pg_restore 将此表恢复到另一个系统上的开发数据库时:

pg_restore -U bob -d commerce -t orders > orders.dump
Run Code Online (Sandbox Code Playgroud)

未列出主键或索引

我究竟做错了什么?

postgresql pg-dump primary-key database-indexes pg-restore

5
推荐指数
1
解决办法
1434
查看次数

如何恢复 postgres 备份 - 错误:无法删除当前打开的数据库

我正在尝试从不再配置的系统中恢复 postgres 备份,并且根据我的尝试,我收到了一系列错误。

  • 我只有备份,没有可参考的原始服务器
  • 过去我已经成功地从这些生产备份中恢复了,但是自从上次成功后就搞乱了我的本地环境(例如,通过 Homebrew 重新安装了 postgres)
  • 我相信一位前同事(不再可用)已成功恢复此特定备份
  • 我在以下情况下遇到了同样的错误:
    • 尝试使用 postgresql@9.4 进行备份
    • 尝试以前已知良好的数据库版本(使用 postgres 11)

(我已阅读相关/建议的问题,但它们似乎不相关)

使用以下命令(在 bash 脚本中)创建备份:

pg_dump --schema=public -Fc
Run Code Online (Sandbox Code Playgroud)

用于恢复脚本的命令(备份脚本将其作为帮助文本回显)是:

pg_dump --schema=public -Fc
Run Code Online (Sandbox Code Playgroud)

当我在本地运行 restore 命令时,我得到以下信息:

dropdb ${PGDATABASE}
createdb ${PGDATABASE}
time pg_restore \
    -j4 \
    -d ${PGDATABASE} \
    --create \
    --no-privileges \
    --no-owner \
    --clean \
    --if-exists \
    --exit-on-error \
    "${dirname}/${filename}"
Run Code Online (Sandbox Code Playgroud)

以前,我只有在运行几分钟后才会出现“磁盘空间不足错误”,但正如您从time输出中看到的,此错误几乎立即发生!

备份是使用压缩创建的-Fc,我可以使用压缩将备份解压缩为纯文本pg_restore backup.pg_dump > backup.sql,但我无法在其中找到与以下相关的任何命令DROP DATABASE:/

time pg_restore -j4 -d ${PGDATABASE} --create --no-privileges --no-owner --clean --if-exists --exit-on-error …
Run Code Online (Sandbox Code Playgroud)

postgresql pg-restore

5
推荐指数
1
解决办法
5126
查看次数

如何将pg_dump文件恢复到postgres数据库中

所以我定期使用 pgadmin4 备份和恢复数据库和模式。我想使用 pg_dump 和 pg_restore 命令通过批处理文件来完成此操作。然而,我总是无法成功,需要一些帮助。我尝试转储一个模式(带有数据)的方法如下:

pg_dump -U postgres -F c -d database -n schema > mw2
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用 pg_restore 恢复它:

pg_restore -U postgres -d otherdatabase -n schema mw2
Run Code Online (Sandbox Code Playgroud)

首先,我尝试使用 .dump 代替 tar,但结果保持不变;这是我的数据库中的空架构。

或者出现如下错误信息:

pg_restore: [archiver] input file does not appear to be a valid archive
Run Code Online (Sandbox Code Playgroud)

postgresql pg-dump pg-restore

4
推荐指数
1
解决办法
1万
查看次数