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
63
Как спать спокойно
Владимир Бородин: Как спать спокойно - 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
120
PostgreSQL, Hasql, Haskell
gosdev
0
190
Other Decks in Technology
See All in Technology
「魔法少女まどか☆マギカ Magia Exedra」の多様なバトルの開発を柔軟かつ効率的に実現するためのPure C#とUnityの分離について
gree_tech
PRO
0
140
Databricks AI/BI Genie の「値ディクショナリー」をAmazonの奥地(S3)まで見に行く
kameitomohiro
1
340
AI時代におけるデータの重要性 ~データマネジメントの第一歩~
ryoichi_ota
0
700
ニッポンの人に知ってもらいたいGISスポット
sakaik
0
190
Oracle Autonomous AI Database:サービス概要のご紹介
oracle4engineer
PRO
2
15k
Claude Codeを駆使した初めてのiOSアプリ開発 ~ゼロから3週間でグローバルハッカソンで入賞するまで~
oikon48
10
5.2k
React19.2のuseEffectEventを追う
maguroalternative
2
550
Copilot Studio ハンズオン - 生成オーケストレーションモード
tomoyasasakimskk
0
160
会社を支える Pythonという言語戦略 ~なぜPythonを主要言語にしているのか?~
curekoshimizu
1
170
[Codex Meetup Japan #1] Codex-Powered Mobile Apps Development
korodroid
2
1k
Click A, Buy B: Rethinking Conversion Attribution in ECommerce Recommendations
lycorptech_jp
PRO
0
110
エンタメとAIのための3Dパラレルワールド構築(GPU UNITE 2025 特別講演)
pfn
PRO
0
600
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.2k
The World Runs on Bad Software
bkeepers
PRO
72
11k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Context Engineering - Making Every Token Count
addyosmani
7
270
Six Lessons from altMBA
skipperchong
29
4k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Automating Front-end Workflow
addyosmani
1371
200k
Making Projects Easy
brettharned
120
6.4k
Producing Creativity
orderedlist
PRO
347
40k
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]