Базы данных PostgreSQL занимают одно из центральных мест в Авито. Они являются разделяемой платформой, вокруг которой построено множество дополнительных сервисов. Одной из основных задач при их администрировании является задача восстановления после аварий как самих баз, так и связанной с ними инфраструктуры.
В своём докладе я постараюсь рассказать про:
- общую схему связей баз данных между собой и с другими компонентами;
- точки отказа и виды аварий, затрагиваемые связи;
- бинарную репликацию и архив;
- логическую репликацию, pgq, londiste, UNDO (REDO), пересоздание репки;
- скрипт и процедуру переключения при аварии;
- планы: развитие «восстановлений» по всем связям, автоматика на основе системы zookeeper (etcd и т.п.).