Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Владимир Бородин: Как спать спокойно - 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

930 views

Published on

More: http://PostgreSQLRussia.org

Доклад посвящён резервному хранению СУБД PostgreSQL. Мы поговорим о том, как устроено хранение данных на диске и организован WAL в PostgreSQL, какие есть средства для резервного копирования и восстановления данных. Обсудим, как перестать беспокоиться за свои данные и почему PostgreSQL славится своей надёжностью.

Published in: Technology
  • Be the first to comment

Владимир Бородин: Как спать спокойно - 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

  1. 1. Как спать спокойно? Владимир Бородин Системный администратор
  2. 2. Логическое повреждение данных: 〉 DELETE FROM important_table 〉 DROP SCHEMA data CASCADE Физическое повреждение данных: 〉 Железные проблемы 〉 Баги ядра 〉 Баги PostgreSQL 3 Что плохого может случиться?
  3. 3. Эдвард Мёрфи Anything that can go wrong will go wrong
  4. 4. https://clck.ru/9bESm ARIES
  5. 5. 6 Немного про PostgreSQL
  6. 6. postgresql.org/docs/9.5/static/storage-page-layout.html momjian.us/main/writings/pgsql/inside_shmem.pdf src/backend/access/transam/README 7 Немного про PostgreSQL
  7. 7. 8 Немного про PostgreSQL
  8. 8. 〉 pg_start_backup(), rsync, pg_stop_backup() 〉 pg_basebackup 〉 pg_dump 9 Резервные копии
  9. 9. Только с мастера 〉 pg_start_backup(‘foo’) 〉 rsync/что угодно 〉 pg_stop_backup() 10 Exclusive backup
  10. 10. 〉 full_page_writes 〉 CHECKPOINT 〉 Флаг в shared memory 〉 backup_label 〉 tablespace_map (с 9.5) 11 pg_start_backup(‘foo’)
  11. 11. $ cat backup_dir/backup_label START WAL LOCATION: 6/48000028 (file 0000000D0000000600000048) CHECKPOINT LOCATION: 6/48001EE0 BACKUP METHOD: pg_start_backup BACKUP FROM: master START TIME: 2015-10-14 14:06:09 MSK LABEL: foo $ 12 backup_label
  12. 12. 〉 Удаляет backup_label и tablespace_map 〉 Запись backup-end в WAL 〉 Пишет backup history file в pg_xlog/ 〉 pg_switch_xlog() 〉 Дождётся archiver’а 13 pg_stop_backup(‘foo’)
  13. 13. $ cat $PGDATA/pg_xlog/0000000D0000000600000048.00000028.backup START WAL LOCATION: 6/48000028 (file 0000000D0000000600000048) STOP WAL LOCATION: 6/48033E80 (file 0000000D0000000600000048) CHECKPOINT LOCATION: 6/48001EE0 BACKUP METHOD: pg_start_backup BACKUP FROM: master START TIME: 2015-10-14 14:06:09 MSK LABEL: foo STOP TIME: 2015-10-14 14:11:46 MSK $ 14 Backup history file
  14. 14. 〉 Можно с реплик 〉 Использует streaming-протокол 〉 pg_basebackup 15 Non-exclusive backup
  15. 15. 〉 Инкрементальные бэкапы на файловом уровне 〉 Нет готового решения с параллелизмом 16 Недостатки обоих решений
  16. 16. Бэкап Шрёдингера Состояние бэкапа неизвестно до попытки восстановления
  17. 17. simply.name/barman-backups-check.html
  18. 18. 〉 File-level бэкап не залезает в сами данные 〉 Возможно тихое повреждение 〉 Checksums 〉 pg_dump 19 Проверка самих данных
  19. 19. wiki.postgresql.org/wiki/Corruption
  20. 20. 〉 Бэкап 〉 WAL’ы 〉 Правильный recovery.conf postgresql.org/docs/current/static/recovery-target-settings.html 21 Point-in-Time Recovery
  21. 21. clck.ru/9bFGS
  22. 22. 〉 Инкрементальные бэкапы 〉 Бэкапы с реплик 〉 Retention policy 〉 Сжатие WAL’ов 〉 Ограничение сетевого трафика 〉 barman recover 23 Barman
  23. 23. Владимир Бородин Системный администратор Контакты @man_brain https://simply.name +7 (495) 739 70 00, доб. 7255 d0uble@yandex-team.ru

×