首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >不支持并行pg_restore

不支持并行pg_restore
EN

Database Administration用户
提问于 2017-05-30 10:48:55
回答 1查看 1.9K关注 0票数 5

我多次使用这种技术在服务器之间传输数据库:

代码语言:javascript
代码运行次数:0
运行
复制
pg_dump --no-owner -Fd mydb -j 4 -f tmp/mydb
scp -r tmp/mydb otherserver:tmp/

然后在另一个服务器中:

代码语言:javascript
代码运行次数:0
运行
复制
dropdb --if-exists mydb && 
createdb -T template0 mydb && 
pg_restore -j 4 -d mydb tmp/mydb && 
rm -rf tmp/mydb

它完美无缺地发挥了作用。使用Postgres 9.3.16和CentOS 7。

但是现在,在一台新服务器中,pg_restore抱怨:

代码语言:javascript
代码运行次数:0
运行
复制
pg_restore: [archiver] parallel restore is not supported with this archive file format

我可以删除-j 4参数,但理论上它应该是有效的。根据pg_恢复医生的说法:

-j作业数--作业数=作业数--使用多个并发作业运行pg_restore中最耗时的部分--那些加载数据、创建索引或创建约束的部分。此选项可大大减少将大型数据库还原到多处理器计算机上运行的服务器的时间。每个作业都是一个进程或一个线程,取决于操作系统,并使用与服务器的单独连接。此选项的最佳值取决于服务器、客户端和网络的硬件设置。因素包括CPU核的数量和磁盘设置。一个很好的起点是服务器上CPU核的数量,但是在许多情况下,大于这个值也会导致更快的恢复时间。当然,过高的值会导致性能下降。此选项只支持自定义和目录存档格式。输入必须是常规文件或目录(例如,不是管道)。此选项在发出脚本时被忽略,而不是直接连接到数据库服务器。此外,不能将多个作业与选项--单一事务一起使用.

我在pg_dump-Fd中使用目录格式!它为什么要抱怨?

EN

回答 1

Database Administration用户

发布于 2017-05-30 14:50:10

我不知道为什么,但作为服务器,Postgres 9.3和psqlpg_restorepg_dump属于版本9.2。

/usr/bin/pg_restore是9.2版,而/usr/pgsql- 9.3 /bin/pg_dump是9.3版。

这就是问题的原因。

代码语言:javascript
代码运行次数:0
运行
复制
postgresql.x86_64                                     9.2.18-1.el7                                  @base      
postgresql-devel.x86_64                               9.2.18-1.el7                                  @base      
postgresql-libs.x86_64                                9.2.18-1.el7                                  @base      
postgresql-odbc.x86_64                                09.03.0100-2.el7                              @base      
postgresql93.x86_64                                   9.3.17-1PGDG.rhel7                            @pgdg93    
postgresql93-contrib.x86_64                           9.3.17-1PGDG.rhel7                            @pgdg93    
postgresql93-libs.x86_64                              9.3.17-1PGDG.rhel7                            @pgdg93    
postgresql93-server.x86_64                            9.3.17-1PGDG.rhel7                            @pgdg93    

解决办法很简单:

代码语言:javascript
代码运行次数:0
运行
复制
yum remove postgresql
票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/174892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档