Владимир Бородин: Как спать спокойно - 2015.10.14...
-
Upload
nikolay-samokhvalov -
Category
Technology
-
view
808 -
download
2
Transcript of Владимир Бородин: Как спать спокойно - 2015.10.14...
Как спать спокойно?
Владимир Бородин Системный администратор
Логическое повреждение данных:
〉 DELETE FROM important_table
〉 DROP SCHEMA data CASCADE Физическое повреждение данных:
〉Железные проблемы
〉 Баги ядра
〉 Баги PostgreSQL
3
Что плохого может случиться?
Эдвард Мёрфи
Anything that can go wrong will go wrong
6
Немного про PostgreSQL
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
8
Немного про PostgreSQL
〉 pg_start_backup(), rsync, pg_stop_backup()
〉 pg_basebackup
〉 pg_dump
9
Резервные копии
Только с мастера
〉 pg_start_backup(‘foo’)
〉 rsync/что угодно
〉 pg_stop_backup()
10
Exclusive backup
〉 full_page_writes
〉 CHECKPOINT
〉Флаг в shared memory
〉 backup_label
〉 tablespace_map (с 9.5)
11
pg_start_backup(‘foo’)
$ 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
〉 Удаляет backup_label и tablespace_map
〉 Запись backup-end в WAL
〉 Пишет backup history file в pg_xlog/
〉 pg_switch_xlog()
〉 Дождётся archiver’а
13
pg_stop_backup(‘foo’)
$ 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
〉Можно с реплик
〉 Использует streaming-протокол
〉 pg_basebackup
15
Non-exclusive backup
〉 Инкрементальные бэкапы на файловом уровне
〉 Нет готового решения с параллелизмом
16
Недостатки обоих решений
Бэкап Шрёдингера
Состояние бэкапа неизвестно до попытки восстановления
simply.name/barman-backups-check.html
〉 File-level бэкап не залезает в сами данные
〉 Возможно тихое повреждение
〉 Checksums
〉 pg_dump
19
Проверка самих данных
wiki.postgresql.org/wiki/Corruption
〉 Бэкап
〉WAL’ы
〉 Правильный recovery.conf
postgresql.org/docs/current/static/recovery-target-settings.html
21
Point-in-Time Recovery
clck.ru/9bFGS
〉 Инкрементальные бэкапы
〉 Бэкапы с реплик
〉 Retention policy
〉 Сжатие WAL’ов
〉Ограничение сетевого трафика
〉 barman recover
23
Barman
Владимир Бородин
Системный администратор
Контакты
@man_brain
https://simply.name
+7 (495) 739 70 00, доб. 7255