Ещё раз про collation в PostgreSQL

Давненько я ничего не писал. Надо сдуть пыль с блога и написать что-нибудь полезное :)

Когда люди начинают работать с PostgreSQL, они временами допускают ошибки, которые потом очень сложно исправить. Например, в момент инициализации первой базы ты слабо понимаешь, зачем нужно включать контрольные суммы для данных. Тем более, что по-умолчанию они …

more ...

Интерфейс ожиданий в PostgreSQL

Люди, имеющие опыт работы с коммерческими СУБД, привыкли к тому, что могут получить ответ на вопрос “Чем прямо сейчас занимается конкретная сессия?” Или ещё лучше “Чего ждала каждая сессия 5 минут назад?” Долгое время PostgreSQL не имел таких средств диагностики и DBA приходилось выкручиваться разной степени изощрённости способами. О том …

more ...

Лаг репликации PostgreSQL в секундах

Наш классический шард PostgreSQL состоит из мастера и двух реплик. Мы мониторим тот факт, что реплик ровно столько, сколько должно быть (зажигаем WARN, если осталась одна, и CRIT, если реплик не осталось). И мониторим отставание реплик, а именно replay_location. Всё это делается парой простых запросов в pg_stat_replication …

more ...

Проверка консистентности бэкапов

Однажды в результате наложения двух человеческих ошибок при выкатке кода на базы мы сделали DROP SCHEMA data CASCADE; на всех шардах одного из кластеров, в котором лежало около 3 ТБ данных. Это добавило нам много седых волос, позволило проверить свои навыки в PITR прямо в бою и заставило по-другому относиться …

more ...

Обновление PostgreSQL до 9.4

Пролог

В 9.4 появилась логическая репликация. А потому с 9.4 на 9.5 можно будет обновиться весьма дёшево (по крайней мере так должно быть). Ну а прямо сейчас обновление мажорной версии PostgreSQL — боль. В самом распространённом варианте это выглядит так:

  1. Необходимо полностью потушить мастер и дёрнуть pg_upgrade …
more ...