我有一个在Windows Server 2008 R2 x64框上运行的PostgreSQL。 而且我已经每天从RAID 1 DB磁盘安排备份到专用的独立磁盘。 他们是戴尔PERC 6i上的SAS 15k。 我正在使用内置的Windows Server Backup。
问题是,无论何时启动备份进程,数据库性能都会受到影响。 我会说几乎是性能下降的十倍。
在资源监视器中,磁盘队列在备份时位于两位数字范围内,白天小于1位。 磁盘活动在备份期间约为30-50MB / s,所以我猜硬件运行正常,尽pipewbengine.exe占用了大部分的部分。
我认为减less备份过程的IO优先级将是一个答案,但我找不到办法。 调整过程CPU优先级似乎没有帮助。
在Windows中,I / O优先级受线程CPU优先级的影响。 有关更深入的参考,请查看Windows内核上的Mark Russinovich书籍。 简短的答案是你必须改变调用进程的CPU优先级。 您希望您的进程优先级为低于正常或空闲,以更改I / O以不负面影响数据库使用。
在你的情况下,你可能会想调用一个低优先级的备份脚本,它自己调用wbadmin或者你的备份工具。
您的PostGRES版本是VSS作家吗? (我相当肯定没有这样的野兽。)如果没有,那么你可能没有采取可用的,可恢复的备份。 在不closures数据库引擎的情况下,对数据和日志文件进行基于文件的备份,会造成错误。 而这也可能是IO性能问题的来源。
您应该使用本地PG工具将数据库转储到磁盘,然后备份转储的文件。
http://wiki.postgresql.org/wiki/Automated_Backup_on_Windows
http://www.postgresql.org/docs/current/static/backup-file.html