2015.10.14 Как спать спокойно

Post on 27-Jan-2017

344 Views

Category:

Engineering

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Как спать спокойно?

Владимир Бородин Системный администратор

Логическое повреждение данных:

〉 DELETE FROM important_table

〉 DROP SCHEMA data CASCADE Физическое повреждение данных:

〉Железные проблемы

〉 Баги ядра

〉 Баги PostgreSQL

3

Что плохого может случиться?

Эдвард Мёрфи

Anything that can go wrong will go wrong

https://clck.ru/9bESm

ARIES

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

d0uble@yandex-team.ru

top related