Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Как спать спокойно
Search
Evgeniy
October 21, 2015
Technology
0
62
Как спать спокойно
Владимир Бородин: Как спать спокойно - 2015.10.14 PostgreSQLRussia.org meetup in Yandex office
Evgeniy
October 21, 2015
Tweet
Share
More Decks by Evgeniy
See All by Evgeniy
PostgREST. Как быстро создать RESTful API
gosdev
0
110
PostgreSQL, Hasql, Haskell
gosdev
0
180
Other Decks in Technology
See All in Technology
KotlinConf 2025_イベントレポート
sony
1
140
Snowflake Intelligenceにはこうやって立ち向かう!クラシルが考えるAI Readyなデータ基盤と活用のためのDataOps
gappy50
0
270
「Linux」という言葉が指すもの
sat
PRO
4
140
TS-S205_昨年対比2倍以上の機能追加を実現するデータ基盤プロジェクトでのAI活用について
kaz3284
1
210
react-callを使ってダイヤログをいろんなとこで再利用しよう!
shinaps
2
260
5分でカオスエンジニアリングを分かった気になろう
pandayumi
0
250
なぜスクラムはこうなったのか?歴史が教えてくれたこと/Shall we explore the roots of Scrum
sanogemaru
5
1.6k
slog.Handlerのよくある実装ミス
sakiengineer
4
410
Django's GeneratedField by example - DjangoCon US 2025
pauloxnet
0
150
スマートファクトリーの第一歩 〜AWSマネージドサービスで 実現する予知保全と生成AI活用まで
ganota
2
270
「どこから読む?」コードとカルチャーに最速で馴染むための実践ガイド
zozotech
PRO
0
540
Evolución del razonamiento matemático de GPT-4.1 a GPT-5 - Data Aventura Summit 2025 & VSCode DevDays
lauchacarro
0
210
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Being A Developer After 40
akosma
90
590k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
810
GitHub's CSS Performance
jonrohan
1032
460k
Agile that works and the tools we love
rasmusluckow
330
21k
Designing Experiences People Love
moore
142
24k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Balancing Empowerment & Direction
lara
3
620
Transcript
None
Как спать спокойно? Владимир Бородин Системный администратор
Логическое повреждение данных: 〉 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
[email protected]