简而言之,我的问题是"为什么$ 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)
似乎是正确的.
我正在尝试为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)
我收到以下错误:
访问被拒绝
任何人都可以开导吗?
假设我有两台主机服务器s1和s2.在这两个服务器中我都有一个名为n1的模式,现在我对s1的模式n1中的一些表进行了一些更改.我希望对服务器s2的模式n1进行相同的更改.我打算做的是使用pg_dump备份服务器s1的模式n1,并使用pg_restore在服务器s2中恢复.现在我的问题是,因为服务器s2中已经存在具有相同表集的相同模式n1.恢复过程会做什么?它会覆盖现有的表还是应该删除服务器s2的现有模式并使用服务器s1的转储来恢复它?
我正在不同的机器(PostgreSQL)上使用相同的数据库模式.我想知道,如何将数据从一台机器合并到另一台机器.Schema有很多表(大约10个).我想要实现什么?
我正在尝试从机器A转储数据到简单的SQL插入命令,但是当我尝试恢复它时,我收到重复的密钥错误.更重要的是,我想从命令行恢复数据(我必须导入250 MB数据),因为现在我正在尝试使用pgAdmin手动执行此操作.
最好的方法是什么?
我正在使用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选项应该创建缺少的数据库.但是在我的情况下并不适用.
以下是我为备份和还原所做的步骤:
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选项,因为它仅对纯文本格式有意义
删除了测试数据库
使用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 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安装中?
如何比较postgres转储文件?我有两个转储文件,dump1和dump2.我想比较这两个转储文件.
任何帮助将不胜感激..
谢谢
我有一个需要上传到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)
谢谢!
我使用下面的命令来备份我的数据库
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
我是Postgres的新手,刚刚发现我无法在一个SQL查询中访问不同数据库的数据.并且还学习了Postgres中的模式概念.
现在,我有两个数据库
db1和db2
两者都在其公共模式中具有相同名称的表.
现在,我想在db1中使用名称:new_schema创建一个新模式
并将数据从db2.public移动到db1.new_schema
最简单的方法是什么?
pg-dump ×10
postgresql ×10
psql ×3
database ×2
pg-restore ×2
backup ×1
command-line ×1
export ×1
heroku ×1
postgis ×1
restore ×1