1. 首页
  2. 数据库运维
  3. PostgreSQL

PostgreSQL数据库升级的速度测试

之前博主在PostgreSQL升级这篇文章中介绍了几种升级方法,今天我们就按照那篇文章来总结下各个方法的效率问题。哪种升级方法最快,具体应该选择哪种升级办法?如果你对升级还不怎么熟悉,可以再熟悉这个网址http://blog.nbqykj.cn/?p=1597.html上的内容 。

测试环境:

操作系统:ubuntu 12.04

原数据库:postgresql 9.2.4

新数据库:postgresql 9.3.1

数据库大小:pgdata目录150G,另外几个表空间总共约700G。

实际操作:

一、使用pg_dump,不加任何参数直接备份、psql恢复

开始时间:3月17日14:29

结束时间:3月17日20:05

备份数据库文件大小约300G 。

psql恢复

开始时间:3月18日11:03

结束时间:3月18日18:16

小结:备份和恢复的总时间大概需要13小时。

二、使用pg_dump,添加-Fc参数备份、pg_restore恢复

开始时间:3月19日9:14

结束时间:3月19日20:00

备份数据库文件大小约115G。

pg_restore恢复

开始时间:3月20日16:52

结束时间:3月20日19:02

小结:备份恢复总时间大概需要13小时。

比较两种升级方案的测试结果可以发现,他们升级恢复总的花费时间相差不大,不过添加-Fc参数后可以把备份文件大小减小很多。不过在9.3版本,pg_dump新增加了-j并行备份的功能,我想速度肯定会快很多。由于环境只有9.2的,所以这个博主暂时没测试。

三、使用pg_upgrade不加-j并行参数升级

开始时间:4月1日09:55

结束时间:4月1日13:23

小结:升级花费3.5小时左右,然后运行analyze_new_cluster.sh脚本,大概又用时1.5小时,总共5小时。

四、使用pg_upgrade添加-j并行参数升级

开始时间:4月1日16:28

结束时间:4月1日19:39

小结:这里我添加-j 15,看看效果,不过升级还是花费了3小时左右,貌似效果不怎么明显。

五、使用pg_upgrade添加-j 15 -k参数升级

添加-k硬链接后升级速度快了很多,没几分钟居然升级好了。快的有些让我不敢相信,然后运行analyze_new_cluster.sh脚本大概用了1小时左右。

不过这里需要注意,因为添加-k参数后是直接在原文件上修改,所以强烈建议升级前对数据目录,所有表空间数据进行硬备份,不然出错会比较麻烦。

测试总结:

以上是博主实际升级操作后的总结,可能比较粗浅。在数据库比较大时,升级速度pg_upgrade加硬链接参数应该会比较快,但是pg_upgrade在操作之前一定要记得数据备份。pg_dump逻辑备份恢复的升级操作数据安全性比较高,不容易出错。

升级前可能在postgresql.conf中还可以对性能进行优化,这个需要继续学习。

参考链接:http://blog.nbqykj.cn/?p=1597.html

联系我们

0574-55011290

QQ:248687950

邮件:admin@nbhao.org

工作时间:周一至周五,9:00-18:00,节假日休息

QR code