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
100
PostgreSQL, Hasql, Haskell
gosdev
0
170
Other Decks in Technology
See All in Technology
これはPerl? それともRuby? クイズ〜〜〜〜〜!!!- Perl or Ruby Quiz
moznion
3
2.1k
From naive to advanced RAG: the complete guide
glaforge
0
470
とある事業会社にとっての Kaggler の魅力
hakubishin3
7
1.3k
Webセキュリティのあるきかた
akiym
34
12k
Databricks Appのご紹介
databricksjapan
0
490
データ分析基盤のためにS3を深堀りする~アーキテクチャ設計の考え方のヒントに~
nrinetcom
PRO
1
550
【完全版】Dify - LINE Bot連携 考え方と実用テクニック
uezo
2
770
塩野義製薬様のAWS統合管理戦略:Organizations設計と運用の具体例
tkikuchi
0
270
Graph Database と Generative AI の素敵な関係
oracle4engineer
PRO
16
3.1k
YAPC::Hakodateの映像記録を支える技術
godan
4
400
GPSデバイスを使った簡易位置案内システムの構築をしてみた話。/jawsfesta2024
kwada
0
150
テストコードの品質を客観的な数値で担保しよう〜Mutation Testのすすめ〜
ysknsid25
12
3.9k
Featured
See All Featured
Facilitating Awesome Meetings
lara
49
6k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
40
2.1k
How GitHub Uses GitHub to Build GitHub
holman
473
290k
Producing Creativity
orderedlist
PRO
341
39k
The Cost Of JavaScript in 2023
addyosmani
43
5.9k
Build The Right Thing And Hit Your Dates
maggiecrowley
32
2.3k
Learning to Love Humans: Emotional Interface Design
aarron
272
40k
Robots, Beer and Maslow
schacon
PRO
157
8.2k
Pencils Down: Stop Designing & Start Developing
hursman
119
11k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
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]