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
ゼロからはじめる採用広報
yutadayo
3
990
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
10
130k
CDK Vibe Coding Fes
tomoki10
0
220
成長し続けるアプリのためのテストと設計の関係、そして意思決定の記録。
sansantech
PRO
0
130
VS CodeとGitHub Copilotで爆速開発!アップデートの波に乗るおさらい会 / Rapid Development with VS Code and GitHub Copilot: Catch the Latest Wave
yamachu
2
190
スタートアップに選択肢を 〜生成AIを活用したセカンダリー事業への挑戦〜
nstock
0
260
AWS認定を取る中で感じたこと
siromi
1
210
Delegating the chores of authenticating users to Keycloak
ahus1
0
160
ソフトウェアテストのAI活用_ver1.25
fumisuke
1
230
TableauLangchainとは何か?
cielo1985
1
120
OpenTelemetryセマンティック規約の恩恵とMackerel APMにおける活用例 / SRE NEXT 2025
mackerelio
2
790
Getting to Know Your Legacy (System) with AI-Driven Software Archeology (WeAreDevelopers World Congress 2025)
feststelltaste
1
160
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
830
Thoughts on Productivity
jonyablonski
69
4.7k
Navigating Team Friction
lara
187
15k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
GitHub's CSS Performance
jonrohan
1031
460k
Adopting Sorbet at Scale
ufuk
77
9.5k
The Cult of Friendly URLs
andyhume
79
6.5k
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
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]