История факапов, часть первая. Про репликацию.
Было время, когда я работал в игровой компании и занимался поддержкой инфраструктуры. В качестве базки везде использовался постгрес с tablespac'ами, мастер слейв репликацией и логической репликацией с использованием londiste. Сразу скажу, что с постгресом я только начинал работать и никакого pg_basebackup в тот момент не было.
В общем поступила задача настроить мастер слейв репликацию. Стандартная схема - делаешь start_backup(), копируем файлики, делаем stop_backup и стартуем слейв с валидным recovery.conf. Первый шаг я прошел без проблем, а вот со вторым - копированием файлов - случилась беда. Команду я выдал примерно такую:
rsync -av —delete —progress . <master_server>:/var/lib/postgresql/Как вы догадались, запустил я ее на слейве, явно рассчитывая засинкать файлы с мастера на слейв. Но что-то пошло не так (ну как что - аргументы source & dest местами перепутал) и пустая слейвовая база заменила собой продакшен. Хорошо что, продакшен был в тот момент не продакшеном, а всего лишь релиз кандидатом - проект не был еще запущен. Но поседел я в тот момент знатно. Зато теперь никогда не забуду порядок аргументов к рсинку.