Обложка канала

Хмельной Девопс

Будничный хаос и мрак при поддержке ИТ систем.

Хмельной Девопс

8 лет назад
Открыть в
Недавно прочитал на хабре статью с фейлами в продакшене от компании Pixalate и несколько дней ходил и вспоминал свои собственные факапы и как я учился на своих же ошибках. Странно, но вспомнил только 3 интересные истории, хотя их было явно больше 🙂 Истории разобью на части, а то какой-то лонг рид получился.

История факапов, часть первая. Про репликацию.

Было время, когда я работал в игровой компании и занимался поддержкой инфраструктуры. В качестве базки везде использовался постгрес с tablespac'ами, мастер слейв репликацией и логической репликацией с использованием londiste. Сразу скажу, что с постгресом я только начинал работать и никакого pg_basebackup в тот момент не было.

В общем поступила задача настроить мастер слейв репликацию. Стандартная схема - делаешь start_backup(), копируем файлики, делаем stop_backup и стартуем слейв с валидным recovery.conf. Первый шаг я прошел без проблем, а вот со вторым - копированием файлов - случилась беда. Команду я выдал примерно такую:

rsync -av —delete —progress . <master_server>:/var/lib/postgresql/

Как вы догадались, запустил я ее на слейве, явно рассчитывая засинкать файлы с мастера на слейв. Но что-то пошло не так (ну как что - аргументы source & dest местами перепутал) и пустая слейвовая база заменила собой продакшен. Хорошо что, продакшен был в тот момент не продакшеном, а всего лишь релиз кандидатом - проект не был еще запущен. Но поседел я в тот момент знатно. Зато теперь никогда не забуду порядок аргументов к рсинку.