标签: pg-dump

PostgreSQL上的$ libdir问题

简而言之,我的问题是"为什么$ libdir不能在我的PSQL安装上运行."

CREATE FUNCTION st_box2d_in(cstring) RETURNS box2d
    AS '$libdir/liblwgeom', 'BOX2DFLOAT4_in'
    LANGUAGE c IMMUTABLE STRICT;
Run Code Online (Sandbox Code Playgroud)

产生错误

could not access file "$libdir/liblwgeom": No such file or directory
Run Code Online (Sandbox Code Playgroud)

CREATE FUNCTION st_box2d_in(cstring) RETURNS box2d
    AS '/usr/local/pgsql/lib/liblwgeom', 'BOX2DFLOAT4_in'
    LANGUAGE c IMMUTABLE STRICT;
Run Code Online (Sandbox Code Playgroud)

工作正常.

的输出

% pg_config --pkglibdir
/usr/local/pgsql/lib
Run Code Online (Sandbox Code Playgroud)

似乎是正确的.

postgresql postgis pg-dump

12
推荐指数
2
解决办法
2万
查看次数

在Windows上执行pg_dump时出现"访问被拒绝"错误

我正在尝试为pg_dump我的一个PostgreSQL数据库执行,但我遇到了权限问题.

C:\Windows\system32>pg_dump -U postgres -p 1863 -O social_sense > C:\\Program Files\\PostgreSQL\\8.4\\data\\social_sense.sql
Run Code Online (Sandbox Code Playgroud)


我收到以下错误:

访问被拒绝


任何人都可以开导吗?

postgresql pg-dump

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

pg_restore会覆盖现有的表吗?

假设我有两台主机服务器s1和s2.在这两个服务器中我都有一个名为n1的模式,现在我对s1的模式n1中的一些表进行了一些更改.我希望对服务器s2的模式n1进行相同的更改.我打算做的是使用pg_dump备份服务器s1的模式n1,并使用pg_restore在服务器s2中恢复.现在我的问题是,因为服务器s2中已经存在具有相同表集的相同模式n1.恢复过程会做什么?它会覆盖现有的表还是应该删除服务器s2的现有模式并使用服务器s1的转储来恢复它?

postgresql pg-dump pg-restore psql postgresql-9.5

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

如何从PostgreSQL合并转储到数据库?

我正在不同的机器(PostgreSQL)上使用相同的数据库模式.我想知道,如何将数据从一台机器合并到另一台机器.Schema有很多表(大约10个).我想要实现什么?

  1. 将数据从机器A转储到文件A.dmp
  2. 将数据从文件A.dmp还原到计算机B.
  3. 当机器B中已存在记录时,我不想将其插入机器B.

我正在尝试从机器A转储数据到简单的SQL插入命令,但是当我尝试恢复它时,我收到重复的密钥错误.更重要的是,我想从命令行恢复数据(我必须导入250 MB数据),因为现在我正在尝试使用pgAdmin手动执行此操作.

最好的方法是什么?

postgresql pg-dump

11
推荐指数
1
解决办法
4259
查看次数

带-C选项的pg_restore不会创建数据库

我正在使用pg_dump和pg_restore来备份和恢复postgres数据库.

以下是与此问题相关的文档中的一些信息.对于Pg_restore,-C选项描述如下

-C

- 创建

在还原到数据库之前创建数据库.如果还指定了--clean,则>> drop并在连接之前重新创建目标数据库.使用此选项时,使用-d命名的数据库仅用于发出初始DROP DATABASE和CREATE DATABASE命令.所有数据都将还原到存档中显示的数据库名称中.

但是,即使我在pg_restore中使用此选项,也会出现以下错误

pg_restore:[archiver(db)]与数据库"test"的连接失败:致命:>数据库"test"不存在

根据描述,-C选项应该创建缺少的数据库.但是在我的情况下并不适用.

以下是我为备份和还原所做的步骤:

  1. 使用pg_dump备份数据库
pg_dump -N backup -d test --format custom -v -h xxhostxx -p 5432 -U xxuserxx --lock-wait-timeout 300000 -f test_pg_dump.dmp
Run Code Online (Sandbox Code Playgroud)

注意:不使用-C选项,因为它仅对纯文本格式有意义

  1. 删除了测试数据库

  2. 使用pg_resore恢复数据库

    pg_restore -C -d test -v -h xxhostxx -p 5432 -U xxuserxx test_pg_dump.dmp**
    
    Run Code Online (Sandbox Code Playgroud)

我无法理解这里的问题是什么!我做错了吗?如果需要更多信息,请与我们联系.

postgresql pg-dump pg-restore

11
推荐指数
3
解决办法
7919
查看次数

使用pg_restore从较新版本的PostgreSQL恢复

我有一个运行PostgreSQL v9.0的(生产)数据库服务器和一个运行PostgreSQL v8.4的开发机器.我想转储生产数据库并在开发机器上使用它.我无法升级dev机器上的postgres.

在生产机器上,我运行:

pg_dump -f nvdls.db -F p -U nvdladmin nvdlstats
Run Code Online (Sandbox Code Playgroud)

在开发机器上,我运行:

pg_restore -d nvdlstats -U nvdladmin nvdls.db
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误:

pg_restore: [archiver] unsupported version (1.12) in file header
Run Code Online (Sandbox Code Playgroud)

无论我在转储时选择自定义,tar还是plain_text格式,都会发生这种情况.

我在网上发现了一个讨论,建议我pg_restore在开发机器上使用更新版本.我通过简单地将9.0二进制文件复制到开发机器来尝试这一点,但由于链接问题,这会失败(不会出乎意料).

我认为使用plain_text转储的意义在于它将是原始的可移植SQL.显然不是.

如何将9.0 DB安装到我的8.4安装中?

postgresql export restore pg-dump psql

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

比较两个postgres转储文件

如何比较postgres转储文件?我有两个转储文件,dump1和dump2.我想比较这两个转储文件.

任何帮助将不胜感激..

谢谢

postgresql pg-dump

10
推荐指数
1
解决办法
5867
查看次数

heroku pgbackups:restore:转储格式无效

我有一个需要上传到heroku的本地psql数据库转储.我按照此链接的"更新"部分中的步骤操作.一切正常,直到最后一部分,实际的上传步骤:

Heroku的pgbackups:恢复--app myAppName DATABASE ' https://www.dropbox.com/myAppPSQLDumpLink/myAppName_local.dump ' --confirm myAppName

这是在控制台中出现的内容:

HEROKU_POSTGRESQL_SILVER_URL (DATABASE_URL)  <---restore---  myAppName_local.dump

Retrieving... done

 !    An error occurred and your restore did not finish.
Run Code Online (Sandbox Code Playgroud)

这是日志中的错误(由Toby Hede的问题提供):

2013-01-09T15:39:09+00:00 app[pgbackups]: Invalid dump format: /tmp/GgUz5yU4bF/project_mgr_development_local.dump: HTML document text
Run Code Online (Sandbox Code Playgroud)

我尝试搜索此错误,但找不到答案.有谁知道要解决这个问题需要做些什么?我的本地psql数据库的实际转储是这样执行的:

pg_dump -Fc --no-acl --no-owner -U myUserName  > myAppName_local.dump
Run Code Online (Sandbox Code Playgroud)

谢谢!

postgresql pg-dump heroku psql heroku-toolbelt

10
推荐指数
2
解决办法
2797
查看次数

pg_dump输出文件的"权限被拒绝"

我使用下面的命令来备份我的数据库

sudo -u user_name pg_dump dbName -f /home ..../someWhere/db.sql

但它给了我这个:

pg_dump: [archiver] could not open output file "/home ..../someWhere/db.sql": Permission denied

谷歌搜索此问题后,我发现我必须在/tmp路径下备份我的数据,但不起作用

我该如何解决这个问题?

提前致谢,


我正在使用Ubuntu 12.04 lts

database postgresql backup command-line pg-dump

10
推荐指数
2
解决办法
2万
查看次数

Postgres:将数据从一个数据库的公共模式移动到另一个数据库的新模式的最佳方法

我是Postgres的新手,刚刚发现我无法在一个SQL查询中访问不同数据库的数据.并且还学习了Postgres中的模式概念.

现在,我有两个数据库

db1和db2

两者都在其公共模式中具有相同名称的表.

现在,我想在db1中使用名称:new_schema创建一个新模式

并将数据从db2.public移动到db1.new_schema

最简单的方法是什么?

database postgresql pg-dump postgresql-9.3

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