Здравствуйте, сообщество pgsql-ru-general.
Предлагаю обсудить тему выбора стратегии максимизации формулы
[быстродействие+надежность/стоимость железа] сервера PostgreSQL.
Вот мой проектный вариант, который еще нуждается в осмылении,
доработке и реализации в работающем варианте.
1. Каталог pgdata монтируется в ненадежном и быстром месте - RAID0 или
RAM-диске (если позволяет размер).
2. Каталог pg_xlog монтируется в надежном месте - RAID1.
3. Ежесуточно бакап баз данных в надежное место - RAID1.
4. Очень правильно настраиваются опции раздела "WRITE AHEAD LOG"
файла конфигурации сервера. Журнал танзакций должен превышать суточную
наработку данных.
Комментарии.
Данная стратегия, насколько я понимаю, допускает более "медленное"
выполнение операций связанных с записью данных (RAID1) и что всегда
желательно - улучшение быстродействия при запросах выборки данных
(RAID0/RAM).
Для двух дисков для RAID1 и RAM-диска каждый раз при загрузке
операционной системы выполняется форсмажорный скрипт: dbinit ...;
pg_restore ...; <дополнение восстановленных баз данных "чужеродным"
pg_xlog (?)>
Допустим наличие трех дисков, тогда можно их одинаково разбить на ,
допустим, два раздела и всего получаем шесть разделов. Три раздела (по
одному с диска) относим в RAID0 для корня pgdata, два раздела - в
RAID1 для pg_xlog, остается раздел одного диска - для прочих целей.
Пока не выяснил, возможно ли и как реализуется наложение "чужеродного"
журнала транзакций на восстановленные базы нового кластера initdb?
Может придется отказаться от постоянного initdb в случае
форсмажора/RAM-диска.
Может идея этой стратегии бредовая, выложите, пожалуйста, свои
соображения и свои, может уже реализованные, стратегии по данной теме.
Спасибо.
--
---
С уважением,
Михаил Наседкин