有没有办法使用postgres在数据库中创建单个表的备份?如何?这也适用于pg_dump命令吗?
我正在尝试使用pg_dump工具转储Postgresql数据库.
$ pg_dump books > books.out
Run Code Online (Sandbox Code Playgroud)
我怎么会得到这个错误.
pg_dump: server version: 9.2.1; pg_dump version: 9.1.6
pg_dump: aborting because of server version mismatch
Run Code Online (Sandbox Code Playgroud)
该--ignore-version选项现已弃用,即使有效,也不会解决我的问题.
如何升级pg_dump来解决此问题?
我一直在使用主机变量尝试PGPASSWORD和.pgpass并没有这两个让我来验证数据库.我已经chmod倒是.pgpass给适当的权限,也尝试过:
export PGPASSWORD=mypass and PGPASSWORD=mypass
Run Code Online (Sandbox Code Playgroud)
密码包含\但是我用单引号将其包装起来PGPASS='mypass\',但仍然无法进行身份验证.
我在跑:
pg_dump dbname -U username -Fc
Run Code Online (Sandbox Code Playgroud)
我仍然收到
pg_dump: [archiver (db)] connection to database "dbname" failed: FATAL: Peer authentication failed for user "username"
Run Code Online (Sandbox Code Playgroud) 我在Linux服务器上有一个Postgres 8.4数据库,我使用以下命令转储:
pg_dump --format=c --exclude-table=log --file=/path/to/output my_db
Run Code Online (Sandbox Code Playgroud)
然后我将创建的文件ftp到我的本地Windows 7计算机,并尝试使用以下命令将文件恢复到我的本地Postgres 8.4实例:
pg_restore --create --exit-on-error --verbose c:\path\to\file
Run Code Online (Sandbox Code Playgroud)
restore命令生成大量输出,声称它创建了我的数据库,连接到它,然后按预期创建了所有其他表.但是,当我通过pgAdmin查看本地计算机上的数据库时,恢复的数据库根本不存在.
在尝试进行故障排除时,我尝试了以下命令:
pg_restore --create --exit-on-error --verbose --host=blahblah --username=no_one c:\path\to\file
Run Code Online (Sandbox Code Playgroud)
当我运行此命令时,即使给出的主机和用户名是完全无意义的,我仍然可以从命令获得完全相同的输出而没有任何错误.
有没有人遇到这个或知道什么可以导致这个?
我temp1使用follwing命令转储了一个名为的数据库
$ pg_dump -i -h localhost -U postgres -F c -b -v -f pub.backup temp1
Run Code Online (Sandbox Code Playgroud)
现在我想在另一个名为"db_temp"的数据库中恢复转储,但是我只是希望所有表都应该在"temp_schema"(而不是fms temp1数据库中的默认模式)中创建"db_temp"数据库.
有没有办法用pg_restore命令做到这一点?
任何其他方法也不胜感激!
我正在尝试在我们的DMZ中的远程服务器上pg_dump一个SQL数据库.有两个问题.
1)远程服务器上没有足够的空间,因此运行到本地备份数据库的正常命令
pg_dump -C database > sqldatabase.sql.bak 将因空间问题而无法工作.
2)我也无法使用其他版本的pg_dump命令将数据库从远程服务器转储到本地服务器:
pg_dump -C -h remotehost -U remoteuser db_name | psql localhost -U localuser db_name
Run Code Online (Sandbox Code Playgroud)
因为服务器在我们的DMZ中,端口5432被阻止.我期待看到的是,是否可以pg_dump数据库并立即将其(ssh或其他形式)作为文件保存到远程服务器.我在想的是: pg_dump -C testdb | ssh admin@ourserver.com | > /home/admin/testdb.sql.bak
有谁知道我想要实现的目标是否可行?
我有一个实时服务器和开发盒,分别称它们为 live 和 dev,它们都运行 postgresql。我可以使用 pgadmin4 轻松查看和管理两者,并且当我在开发箱上以调试模式通过网站运行时,两者都功能齐全,一个是实时网站,另一个是。很普通的设定。
多年来,我一直在运行我编写的相同 bash 脚本,该脚本转储实时数据库,然后在开发箱上恢复它,因此我拥有最新的实时快照。
今天,这让我失望了标题消息:
pg_restore: [archiver] unsupported version (1.14) in file header
Run Code Online (Sandbox Code Playgroud)
我试图诊断这个问题,并在网上进行了广泛的搜索,但我很困惑并且失败了,所以在这里我掌握了专业知识。
为了帮助我将分享以下内容:
$ pg_dump --version
pg_dump (PostgreSQL) 10.11 (Ubuntu 10.11-1.pgdg18.04+1)
$ pg_restore --version
pg_restore (PostgreSQL) 10.11 (Ubuntu 10.11-1.pgdg18.04+1)
$ pg_dump --host=live.lan --port=5432 --dbname=mydb --username=myuser --format=custom > test.backup
$ ls -l test.backup
-rw-r--r-- 1 bernd bernd 2398358 Dec 23 23:40 test.backup
$ file test.backup
test.backup: PostgreSQL custom database dump - v1.14-0
$ pg_restore --dbname=mydb test.backup
pg_restore: [archiver] unsupported version (1.14) in file …Run Code Online (Sandbox Code Playgroud) 我有大量的postgresql转储文件,我需要仔细阅读数据.我是否必须逐个安装Postgresql并将其中的每一个"恢复"到新的数据库中?或者我希望有一个postgresql客户端可以简单地打开它们,我可以查看数据,甚至可以运行一个简单的SQL查询?
转储文件全部来自Postgresql v9.1.9服务器.
或者也许有一个工具可以轻松地使数据库与转储文件"连接"?
更新:这些不是文本文件.它们是二进制的.它们来自Heroku的备份机制,这就是 Heroku关于如何创建备份的说法:
PG备份使用本机pg_dump PostgreSQL工具来创建其备份文件,这使得导出到其他PostgreSQL安装变得微不足道.
我想在数据库转储中搜索一些数据,但这些转储使用二进制压缩格式(PGDMP标头).
如何在不恢复它们的情况下将这些转换为SQL?
如何在PostgreSQL数据库中进行模式级备份并在另一个数据库上进行还原?有没有可用的单一命令?例如,我可以pg_dump并以单行恢复吗?