为什么pg_restore在Ubuntu上花费的时间比Windows长?

前端之家收集整理的这篇文章主要介绍了为什么pg_restore在Ubuntu上花费的时间比Windows长?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
生成了一个21 MB左右的转储文件
pg_dump --format=tar --verbose --file=database.backup mydatabase

当我在Windows上导入此文件时:

pg_restore --dbname mydatabase --verbose database.backup

这需要1个小时.

在Ubuntu 10.10 64位盒子上做同样的事,大约需要7个小时!

当然我在谈论相同的硬件规格(Dell Studio XPS).相同的RAM,cpu

在这两种情况下,我都使用Postgresql 8.4.7的开箱即用配置.

也许发行版配置不同……
也许只是windows发行版正在做的一些优化?

额外信息:
在Windows 7上 – > NTFS.在Ubuntu 10.10上 – > EXT4

当我做

pg_dump --format=tar --verbose --file=workspace/work/dumps/loaded.backup mydb

我只用了5秒钟!如果我在一个空的新数据库上恢复:

pg_restore --dbname mydb-2 --verbose workspace/work/dumps/loaded.backup

我只用了10秒钟. (问题解决了……几乎)
似乎db人员使用不同的选项导出了原始转储.也许 – 插入选项?

使用原始转储的Windows和Ubuntu之间的巨大差异仍然困扰着我的想法.有什么想法吗?

对于21 MB的小型转储文件,即使一小时也很长.我们在大约30分钟内恢复2 GB压缩转储文件数据库,但我们可能有更好的硬件;-)

你应该先阅读的内容

http://www.postgresql.org/docs/8.4/static/populate.html

这都是关于你的问题.它告诉您如何快速打包数据库.

有条件的提示

>首先启用持续时间记录所有语句,看看发生了什么
>增加shared_buffers,ubuntu 10.10上的默认值仅为24 MB,请参阅@L_403_0@以配置linux系统以接受更高的值
>使用–format = custom或-Fc进行转储.这是最好的选择
>您可以使用“-j”在多个cpu上运行pg_restore,但我猜您还有其他问题可以获得性能的最后一点

了解更多信息:

>阅读优秀的online documentation
>购买Postgresql 9.0 High Performance(不是关于你的问题,它只是一本经验丰富的Postgresql DBA的优秀书籍)

猜你在找的Ubuntu相关文章