![Page 1: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/1.jpg)
PostgreSQL глазами инженера по эксплуатации
Смерть эксплуататорам и программистам!
Александр Чистяков, главный инженер Git in Sky,
2015
![Page 2: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/2.jpg)
Мы
§ A small consulting company§ Web operations engineers§ Performance engineers§ Elephant lovers§ Знаем английский :)
Как пасти слонов. 2015
![Page 3: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/3.jpg)
Вы
§ Инженеры по эксплуатации?§ Веб(?)-разработчики?§ Любите слонов§ Может быть, пони вы тоже любите?
Как пасти слонов. 2015
![Page 4: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/4.jpg)
Повестка дня
§ Что такое “хорошо” и что такое “плох Случаи из жизни§ Раздача слонов и материализация views§ Границы применимости, законы физики
и другое занудство§ PostgreSQL vs. MySQL, PostgreSQL vs. MongoDB, ...
Как пасти слонов. 2015
![Page 5: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/5.jpg)
Что мы эксплуатируем
§ В основном — PostgreSQL 9.3.X§ В недавнем прошлом — 9.1.X и 9.2.X§ Уже начали использовать 9.4
Как пасти слонов. 2015
![Page 6: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/6.jpg)
Составляющие процесса эксплуатации
§ Sizing & capacity planning§ Установка и настройка§ Репликация§ Бэкап§ Мониторинг§ Соблюдение законов физики§ Обновление схемы БД и версий
Как пасти слонов. 2015
![Page 7: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/7.jpg)
Sizing & capacity planning
§ PostgreSQL — современная база данных§ Очень производительная!§ Поэтому sizing и capacity planning мы делать
не будем§ И обсуждать тоже не будем§ Зачем время тратить?
Как пасти слонов. 2015
![Page 8: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/8.jpg)
Установка и настройка
§ Как правило — ничего удивительного§ Однажды мы запустили PostgreSQL в Docker§ Было не очень удобно, ....§ Однажды мы запустили PostgreSQL в Amazon§ Но про capacity planning мы решили молчать
Как пасти слонов. 2015
![Page 9: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/9.jpg)
Репликация
§ Бывает:§ «Встроенная» асинхронная§ «Встроенная» синхронная§ «Внешняя» триггерная§ Не бывает:§ Мастер-мастер (хотя именно ее все и просят)§ Пока не пробовали: logical decoding
Как пасти слонов. 2015
![Page 10: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/10.jpg)
Встроенная репликация
§ Работает вот уже примерно два года§ Настраивается в < 10 простых шагов§ Ничего удивительного § Лучше настраивать сразу, пока база
еще маленькая§ Если база большая — возьмите WALs с бэкапа
Как пасти слонов. 2015
![Page 11: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/11.jpg)
Внешняя триггерная репликация
§ Не нужна*
Как пасти слонов. 2015
![Page 12: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/12.jpg)
Бэкап
§ Многих славный путь:§ pgdump =>§ barman =>§ отрицание, гнев, торг, депрессия, смирение§ Космодемьянский на мой доклад не пришел,
поэтому ZFS!
Как пасти слонов. 2015
![Page 13: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/13.jpg)
barman
§ Как часто делать базовый бэкап — time/space trade-off§ Ориентируйтесь на размер WALs и скорость восстановления§ Немного нарушает принцип наименьшего удивления -
хранит WALs в сжатом виде без расширения .gz § Даже будучи установлен локально, хочет забирать WAL'ы по
ssh
Как пасти слонов. 2015
![Page 14: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/14.jpg)
Обновление схемы БД
§ ALTER TABLE ADD COLUMN .... DEFAULT
Как пасти слонов. 2015
![Page 15: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/15.jpg)
Обновление версий
§ Задача, отсутствующая в мире MySQL§ В мире PostgreSQL до версии 9.4 — триггерная репликация§ Bucardo
Как пасти слонов. 2015
![Page 16: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/16.jpg)
Bucardo
§ Устанавливается почти не вызывая удивления§ В каком каталоге .pgpass?§ Работает почти не вызывая удивления§ https://gist.github.com/alexclear/a11deed1be3b1d045187§ Если в бизнес-логике используется TRUNCATE — беда
Как пасти слонов. 2015
![Page 17: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/17.jpg)
Bucardo
§ 9.3 — 9.4, 2.0 Tb — 1.7 Tb
Как пасти слонов. 2015
![Page 18: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/18.jpg)
Мониторинг
§ В PostgreSQL масса всяких параметров, ни один из которых мне не интересен
Как пасти слонов. 2015
![Page 19: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/19.jpg)
Мониторинг
§ Индексы должны помещаться в память!*
Как пасти слонов. 2015
![Page 20: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/20.jpg)
Мониторинг
§ pg_stat_statements§ POWA§ Надстройка над pg_stat_statements, которая умеет хранить
историю§ shared_preload_libraries = 'powa,pg_stat_statements'§ При апгрейде базы не забыть пересобрать§ Не работает*
Как пасти слонов. 2015
![Page 21: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/21.jpg)
Sizing & capacity planning
§ Для богатых:§ ISBN-10: 1849516960 (вся первая часть книги)§ Для бедных:§ а) взять железо, какое было в магазине§ б) задать целевое значение метрики§ в) протестировать под нагрузкой§ г) плакать, проклинать себя, жизнь и индустрию
Как пасти слонов. 2015
![Page 22: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/22.jpg)
А что делать, если слон устал?
§ У одной моей подруги с ее парнем§ Исходно было нужно 3K RPS на вставку§ Требования возросли до 30K RPS за две недели
до старта§ К счастью, есть немного времени подумать§ и поработать§ Здесь есть кто-то с 30K вставок в секунду в PostgreSQL?
Как пасти слонов. 2015
![Page 23: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/23.jpg)
Слайд памяти Курта Кобейна
§ Дорогая, я затюнил bgwriter
Как пасти слонов. 2015
![Page 24: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/24.jpg)
Объективация женщины это плохо!
Как пасти слонов. 2015
![Page 25: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/25.jpg)
Слон слону — слон!
§ Что такое “база данных” и зачем она нужна?§ (К слову, зачем нужна MongoDB, я так и не понял)§ Size does matter — smaller is better!§ Индексы в PostgreSQL, все остальное —
где-нибудь еще
Как пасти слонов. 2015
![Page 26: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/26.jpg)
Выводы
§ Слон — отличное домашнее животное§ Слоны требуют ухода§ Не обижайте слонов!
Как пасти слонов. 2015
![Page 27: PostgreSQL глазами инженера по эксплуатации§ Что такое “база данных” и зачем она нужна? § (К слову, зачем](https://reader034.vdocument.in/reader034/viewer/2022042412/5f2c6346c3837b3c4f3f0535/html5/thumbnails/27.jpg)
С вами был Александр Чистяков,главный инженер Git in Sky
[email protected]://gitinsky.com
http://meetup.com/DevOps-40
Пожалуйста, ваши вопросы.
Спасибо за внимание!