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的开箱即用配置.
也许发行版配置不同……@H_301_16@也许只是windows发行版正在做的一些优化?
额外信息:@H_301_16@在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秒钟. (问题解决了……几乎)@H_301_16@似乎db人员使用不同的选项导出了原始转储.也许 – 插入选项?
使用原始转储的Windows和Ubuntu之间的巨大差异仍然困扰着我的想法.有什么想法吗?
你应该先阅读的内容:
http://www.postgresql.org/docs/8.4/static/populate.html
有条件的提示:
>首先启用持续时间记录所有语句,看看发生了什么@H_301_16@>增加shared_buffers,ubuntu 10.10上的默认值仅为24 MB,请参阅http://www.postgresql.org/docs/8.4/static/kernel-resources.html#SYSVIPC以配置linux系统以接受更高的值@H_301_16@>使用–format = custom或-Fc进行转储.这是最好的选择@H_301_16@>您可以使用“-j”在多个cpu上运行pg_restore,但我猜您还有其他问题可以获得性能的最后一点
了解更多信息:
>阅读优秀的online documentation@H_301_16@>购买Postgresql 9.0 High Performance(不是关于你的问题,它只是一本经验丰富的Postgresql DBA的优秀书籍)