Список докладов конференции PgConf.Russia 2017
Поиск и устранение проблем при эксплуатации потоковой репликации

Data Egret, Администратор баз данных
В настоящее время я PostgreSQL DBA. Более 10 лет я работаю в сфере ИТ, где большая часть времени это серверное администрирование Linux и использование KVM виртуализации. Последние 5 лет акцент интересов сместился в сторону эксплуатации баз данных и PostgreSQL в частности. На данный момент я работаю в консалтинговой компании в качестве PostgreSQL DBA, где каждый день сталкиваюсь с PostgreSQL и тем как его интересно эксплуатируют люди. В свободное рабочее время в качестве маленьких хобби программирую на pure C и пишу плэйбуки для Ansible.
Потоковая репликация появилась в PostgreSQL в 2010 году и практически сразу же стала очень популярной. В настоящее время практически ни одна инсталляция не обходится без использования потоковой репликации. Она надежна, высокопроизводительна и легка в настройке. Однако несмотря на все свои положительные качества, в её эксплуатации могут возникать различные проблемы и неприятные ситуации. Для диагностики и решения проблем связанных с потоковой репликацией есть как встроенные в PostgreSQL средства так и сторонние утилиты. В этом докладе я сделаю обзор инструментов и расскажу как с помощью этих средств диагностировать и устранить проблемы связанные с потоковой репликацией. Также рассмотрю проблемы которые возникают чаще всего при эксплуатации потоковой репликации и методы их решения. Доклад будет полезен DBA и системным администраторам.
- Как устроена потоковая репликация и что такое wal sender/wal receiver
- Основные настройки репликации в postgresql.conf: wal_level, hot_standby, max_wal_senders, wal_keep_segments, и какие проблемы можно получить при их настройке
- представление pg_stat_replication, описание и ее роль в траблшутинге (определение лага)
- pg_*_xlog* функции как дополительный инструмент статистики
- рассмотрение "replication lag" (bytes, seconds) - как определять, где лаг и почему (io,network,cpu,etc), решения
- рассмотрение блоата pg_xlog/: причины (autovac, long xacts) и решения
- длинные транзакции и ошибки восстановления (recovery conflicts): инструменты (pg_stat_databases, pg_stat_databases_conflicts, postgresql.conf), какие возникают проблемы, почему это плохо и методы решения
- частный случай лага репликации: recovery process - 100% cpu usage: причины, как заглянуть внутрь, как облегчать.
- итоговый обзор 3rd party tools: iostat, nicstat, top, pgcenter, perf, /proc