У меня есть PostgreSQL, работающий на Windows Server 2008 R2 x64. И я запланировал ежедневное резервное копирование с диска RAID 1 DB на выделенный автономный диск. Это SAS 15k на Dell PERC 6i. Я специально использую встроенную программу резервного копирования Windows Server.
Проблема в том, что всякий раз, когда запускается процесс резервного копирования, производительность базы данных снижается. Я бы сказал, почти 10-кратное снижение производительности.
Судя по монитору ресурсов, очередь диска находится в диапазоне двузначных цифр при резервном копировании и менее 1 в течение дня. Дисковая активность составляет примерно 30-50 МБ / с во время резервного копирования, поэтому я предполагаю, что оборудование работает нормально, хотя wbengine.exe занимает большую часть части.
Я думаю, что снижение приоритета ввода-вывода процесса резервного копирования было бы ответом, но я не мог найти способ. Настройка приоритета ЦП процесса, похоже, не помогает.
На приоритет ввода-вывода влияет приоритет ЦП потока в Windows. Чтобы получить более подробные сведения, посмотрите книги Марка Руссиновича по ядру Windows. Короткий ответ заключается в том, что вам нужно изменить приоритет процессора вызывающего процесса. Вы хотите, чтобы приоритет вашего процесса был либо Ниже нормального или холостого хода чтобы изменить ввод-вывод, чтобы не оказывать негативного влияния на использование базы данных.
В вашем случае вы, вероятно, захотите вызвать сценарий резервного копирования с низким приоритетом, который сам вызывает wbadmin или любой другой инструмент резервного копирования.
Ваша версия PostGRES является писателем VSS? (Я почти уверен, что такого зверя нет.) Если нет, то вы, вероятно, не берете пригодные для использования восстанавливаемые резервные копии. Делать файловую резервную копию файлов данных и журналов без предварительного отключения ядра базы данных - неправильно. И это может быть причиной ваших проблем с производительностью ввода-вывода.
Вы должны использовать собственный инструмент PG, чтобы выгрузить ваши БД на диск, а затем создать резервную копию выгруженных файлов.
http://wiki.postgresql.org/wiki/Automated_Backup_on_Windows
http://www.postgresql.org/docs/current/static/backup-file.html