标签: pg-restore

pg_restore在没有数据库时要求输入密码

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

postgresql pg-restore

6
推荐指数
1
解决办法
4438
查看次数

PostgreSQL在不同的时区转储和恢复

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

我需要从一个数据库转储数据,并使用正确的时间戳和正确的时区将其导入另一个数据库.

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

pg_dump -a DB_NAME > dump.sql
Run Code Online (Sandbox Code Playgroud)

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

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

psql -d DB_NAME -f dump.sql
Run Code Online (Sandbox Code Playgroud)

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

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

SET timezone ...
Run Code Online (Sandbox Code Playgroud)

但仍然行不通.:(

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

postgresql timezone timestamp pg-dump pg-restore

6
推荐指数
1
解决办法
1500
查看次数

在视图中使用hstore比较转储和恢复PostgreSQL数据库失败

我有一个比较两hstore列的视图.

当我转储和还原此数据库时,还原失败并显示以下错误消息:

Importing /tmp/hstore_test_2014-05-12.backup...
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 172; 1259 1358132 VIEW hstore_test_view xxxx
pg_restore: [archiver (db)] could not execute query: ERROR:  operator does not exist: public.hstore = public.hstore
LINE 2:  SELECT NULLIF(hstore_test_table.column1, hstore_test_table....
                ^
HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.
    Command was: CREATE VIEW hstore_test_view AS
 SELECT NULLIF(hstore_test_table.column1, hstore_test_table.column2) AS "nullif"
   FROM hst...
pg_restore: [archiver …
Run Code Online (Sandbox Code Playgroud)

postgresql pg-restore hstore postgresql-9.3

6
推荐指数
1
解决办法
2473
查看次数

pg_restore到在docker容器中运行的postgres

我有一个数据库的备份,我将恢复到在docker容器内运行的postgres数据库.

我在OS X上使用的是docker-
machine.Postgres图像是postgres:9.4.

这是我到目前为止提出的脚本:

pg_restore --verbose --clean --no-acl --no-owner \
  -h tcp://`docker-machine ip default`:5432 \
  -U postgres \
  -d tonsser-api_development latest.dump
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我收到错误:

pg_restore: connecting to database for restore
pg_restore: [archiver (db)] connection to database "tonsser-api_development" failed: could not translate host name "tcp://192.168.99.100:5432" to address: nodename nor servname provided, or not known
Run Code Online (Sandbox Code Playgroud)

postgresql pg-restore docker docker-machine

6
推荐指数
2
解决办法
2521
查看次数

pg_restore错误:pg_restore:文件头中的[archiver]不支持的版本(1.13)

我试图用pg_restore从备份文件恢复表.但是我得到了上面提到的错误.我到处都读到需要升级版的postgres.我将我的升级到9.6.8-1然后升级到10.3-1.两者都没用.有没有人有一个详细的程序来解决使用Windows操作系统的这个问题?提前致谢

postgresql pg-restore

6
推荐指数
1
解决办法
3296
查看次数

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

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

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

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

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

postgresql pg-dump pg-restore

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

pg_restore 无法执行查询:错误:无效的语言环境名称:“en_US.UTF-8”

我在 Windows 10 上使用 pg_restore 和在 Linux 上制作的转储文件。

我收到这个错误

我在网上搜索,但我没有找到答案。

[新]:我在我的计算机上安装了 Ubuntu 以使用 pg_restore 但是当我发送

pg_restore -d mydatabase /home/user/Documents/dumpfile.dump
Run Code Online (Sandbox Code Playgroud)

命令行被阻止。

有人有这个问题吗?

postgresql pg-restore

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

pg_使用 -j 选项恢复非常大的单个表需要几个小时

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

pg_dump -Fc --column-inserts --data-only --table='tname' -U 
postgres -d dbname > /root/tname_experiment_inserts_custom_format.dump
Run Code Online (Sandbox Code Playgroud)

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

pg_restore -d dest_dbname -U postgres -j 7 /root/tname_experiment_inserts_custom_format.dump
Run Code Online (Sandbox Code Playgroud)

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

log_min_duration_statement = -1
autovacuum = off
maintenance_work_memory = 7gb 
wal_level = minimal
fsync = off
full_page_writes= off
synchronous_commit= off
max_wal_size= 20GB
wal_buffers= 16MB
Run Code Online (Sandbox Code Playgroud)

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

整个事情的目的是更改列的某些数据类型,当使用 alter table alter columns 查询完成时,也花费了类似的时间。

postgresql pg-dump pg-restore

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

无法将 hstore 扩展安装到新创建的架构中

我有一个安装了 postgres 9.5 的 ubuntu 18.04 。

我的数据库“mydb”安装了 hstore。当我执行“\dx store”时,我确实有

List of installed extensions
  Name  | Version | Schema |                   Description                    
--------+---------+--------+--------------------------------------------------

hstore | 1.3     | public | data type for storing sets of (key, value) pairs
(1 row)
Run Code Online (Sandbox Code Playgroud)

当我使用某个备份文件执行 pg_restore 时,会创建一个也称为“mydb”的新模式,但它不包含“hstore”扩展名。“\dx”命令的结果是相同的。hstore 已经在我的 template1 中了。

pg_restore 失败并显示

pg_restore:[archiver(db)]无法执行查询:错误:类型“hstore”不存在

谁能指出问题出在哪里?

谢谢

postgresql pg-restore hstore

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

pg_restore:[归档器]输入文件似乎是文本格式转储。请使用psql

我试图通过以下命令从 sql 文件在远程服务器上创建一个新数据库 (analysis_db):

pg_restore -d analyses_db byoryn_resource.sql
Run Code Online (Sandbox Code Playgroud)

我收到错误消息

pg_restore:[归档器]输入文件似乎是文本格式转储。请使用 psql。`

当我尝试按照说明操作时:(来自/sf/answers/2844262151/

要将此类脚本重新加载到名为 newdb 的(新创建的)数据库中:
$ psql -d newdb -f db.sql

我收到了:

psql: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Run Code Online (Sandbox Code Playgroud)

作为菜鸟,我不知道如何解决这个问题。SQL 文件应该没问题,因为它已提供。

sql postgresql pg-restore

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