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
60
Как спать спокойно
Владимир Бородин: Как спать спокойно - 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
AIエージェント実践集中コース LT
okaru
1
190
Digitization部 紹介資料
sansan33
PRO
1
4k
SwiftUI Transaction を徹底活用!ZOZOTOWN UI開発での活用事例
tsuzuki817
1
140
キャッシュレス決済のプロダクトから決済基盤への進化
b1a9id
0
210
Oracle Cloud Infrastructure IaaS 新機能アップデート 2025/03 - 2025/05
oracle4engineer
PRO
1
130
Javaアプリケーションの配布とパッケージング / Distribution and packaging of Java applications
hogelog
2
510
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
6.2k
20250514_未経験から Fintech実務参画まで。学生エンジニアの挑戦録
hideto1008
0
860
CloudBruteによる外部からのS3バケットの探索・公開の発見について / 20250605 Kumiko Henmi
shift_evolve
3
340
Observability 入門班:可觀測性的核心技術架構與 OpenTelemetry 實作指南
unclejoe
0
140
Tenstorrent HW/SW 概要説明
tenstorrent_japan
0
160
メルカリにおけるデータアナリティクス AI エージェント「Socrates」と ADK 活用事例
na0
15
7.3k
Featured
See All Featured
Bash Introduction
62gerente
614
210k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
42
2.4k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.3k
Visualization
eitanlees
146
16k
Rebuilding a faster, lazier Slack
samanthasiow
81
9k
Become a Pro
speakerdeck
PRO
28
5.4k
Writing Fast Ruby
sferik
628
61k
Making the Leap to Tech Lead
cromwellryan
134
9.3k
The World Runs on Bad Software
bkeepers
PRO
68
11k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Into the Great Unknown - MozCon
thekraken
39
1.8k
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 d0uble@yandex-team.ru