我正在尝试在我的笔记本电脑(PostGresSQL 9.6,PgAdmin3)中备份本地数据库,但我看到以下错误。
pg_dump:服务器版本:9.6.3;pg_dump 版本:9.5.5 pg_dump:由于服务器版本不匹配而中止
我已经尝试了一些关于 SO 的答案,比如在自制软件上更新 postgres,但它也抛出了一个错误。
错误:未安装 postgres
在查看postgres应用程序包的内容时,在versions文件夹中发现了2个文件夹,9.5和9.6。我尝试在两个版本的 bin 文件夹中运行 pg_dump ,我看到的只是这个错误:
有人可以帮我解决这个问题并备份我的数据库吗
我想将我的数据从 HasuraDB 的 pg_dump 带到我的本地机器。推荐的方法是什么?
我在恢复表的架构时遇到一些困难。我转储了 Heroku Postgres 数据库,并使用 pg_restore 将其中一张表恢复到我的本地数据库(它有 20 多个表)。它已成功恢复,但当我尝试将新数据插入表中时遇到问题。
当我使用psql打开数据库时,我发现恢复的表包含所有数据,但其架构有零行。无论如何,我可以从转储中导入表及其架构吗?非常感谢。
这就是我将表恢复到本地数据库的方法:
pg_restore -U postgres --dbname my_db --table=message latest.dump
Run Code Online (Sandbox Code Playgroud)
编辑:
我按照官方文档尝试了类似的操作,但它被阻止了,什么也没有发生。我的数据库很小,不超过几兆字节,并且我尝试恢复的表架构不超过 100 行。
pg_restore -U postgres --dbname mydb --table=message --schema=message_id_seq latest.dump
Run Code Online (Sandbox Code Playgroud) 使用 Postgres 12 / Windows 10。
尝试使用以下命令将远程数据库复制到 localhost:
pg_dump -C -h remotehost -p 5432 -U postgres remotedb | psql -h localhost -p 5432 -U postgres localdb
CMD 请求密码 2x。
Password for user postgres: Password:
我先输入 localhost,按 ENTER,然后输入 remotehost 并再次按 ENTER。
这是我得到的错误回报:
SET
SET
SET
SET
SET
set_config
------------
(1 row)
SET
SET
SET
SET
ERROR: option "locale" not recognized
LINE 1: ...ting" WITH TEMPLATE = template0 ENCODING = 'UTF8' LOCALE = '...
^
ERROR: database "remotedb" does not exist
\connect: …Run Code Online (Sandbox Code Playgroud) 我有个问题。有没有办法强制 PostgreSQL 9.3 备份/恢复模式以正确的依赖对象顺序?(例如:在创建物化视图本身之前,我需要创建一个在物化视图中使用的函数)。我在模式恢复时遇到错误,因为物化视图是在创建函数本身之前创建的。
谢谢
我的代码库和数据库托管在 Ubuntu 12.04 的不同服务器上。
database => web1
codebase => web2
Run Code Online (Sandbox Code Playgroud)
我正在尝试通过应用程序(web2)获取数据库备份(web1)。
现在的问题是我在 web1 和 web2 上安装了不同版本的 postgres。
pg_dump: server version: 9.3.12 (web1)
pg_dump version: 9.1.23 (web2)
Run Code Online (Sandbox Code Playgroud)
有什么方法可以在不升级任何软件包的情况下解决此问题,因为有多个应用程序托管并依赖于这些版本。
感谢您的帮助!
问题:使用PSQLpg_dump和pg_restore在Python脚本,并使用该subprocess模块。
背景:我使用python 2.7来自本地主机(即Ubuntu 14.04.5 LTS)的以下脚本在 PSQL 服务器(即PostgreSQL 9.4.11)中创建表的备份,并将其恢复到Ubuntu 16.04.2 LTS较新版本的 PSQL 服务器(即PostgreSQL 9.6.2)中的远程主机(即)。
#!/usr/bin/python
from subprocess import PIPE,Popen
def dump_table(host_name,database_name,user_name,database_password,table_name):
command = 'pg_dump -h {0} -d {1} -U {2} -p 5432 -t public.{3} -Fc -f /tmp/table.dmp'\
.format(host_name,database_name,user_name,table_name)
p = Popen(command,shell=True,stdin=PIPE)
return p.communicate('{}\n'.format(database_password))
def restore_table(host_name,database_name,user_name,database_password):
command = 'pg_restore -h {0} -d {1} -U {2} < /tmp/table.dmp'\
.format(host_name,database_name,user_name)
p = Popen(command,shell=True,stdin=PIPE)
return p.communicate('{}\n'.format(database_password))
def …Run Code Online (Sandbox Code Playgroud) 是否可以使用 Postgrespg_dump将备份写入 Azure Blob 存储?我在 postgres 数据库中的 VM 上有近 2TB 的数据,我需要将所有数据迁移到 Blob 存储。
是否可以查询 db 中有多少多版本行?
我们想测量pg_dump对生产数据库的影响,并在需要时暂停它:它是否创建了太多多版本行?
提前致谢
假设我db0在本地计算机和db1远程服务器上都有。我只是想了解db1最新情况db0。
my_table假设我向in添加了几行(数千行)db0,现在我想将其插入到my_tablein中db1。
关于 pg_dump/pg_restore 的所有食谱和文档都提到了表的完全恢复,但是,我不需要(也不想)删除并my_table从头开始恢复。
是否有任何清晰且简单的方法来制作文件,scp将其发送到服务器并从中pg_restore取出文件?
只需两个命令:pg_dump 和 pg_restore。因为我花了大约两个小时查看文档和演练,发现了新的错误,并且变得越来越困惑。
pg-dump ×10
postgresql ×9
pg-restore ×4
psql ×2
azure ×1
hasura ×1
heroku ×1
mvcc ×1
python ×1
subprocess ×1