Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo

1

Andrey Borodin "Architecture of online backup for various DBMS"

2

Резервное копирование
нагруженных СУБД
Андрей Бородин

3

В других сериях
▌ Георгий Рылов и Даниил Захлыстов: Надежные и быстрые бекапы
PostgreSQL
› clck.ru/RNwoe
▌ Андрей Бородин и Владимир Лесков: Масштабирование реплик
PostgreSQL под нагрузкой с точки зрения технологий резервного
копирования
› clck.ru/F8ioz
▌ Андрей Бородин: Разгоняем бэкап
› clck.ru/Ebbte
▌ Много серий до 2018
3

4

Agenda
› Теория
› PostgreSQL
› Go
› Не PostgreSQL

5

PostgreSQL в Яндексе
▌ Яндекс.Почта
› Сколько-то сотен миллионов пользователей
› 1+ триллион строк, 1+ миллион запросов в секунду
▌ Яндекс.Облако
› Несколько петабайт Постгреса
› Много разных сервисов Яндекса живут в Облаке
› 3+ миллиона запросов в секунду
5

6

6
Point in time
recovery
▌ Основные цели
› Ресурсы функционирования резервных
копий
› Время восстановления

7

Ресурсы
› Место в хранилище
7

8

Ресурсы
› Место в хранилище
› Локальное место
› CPU
› Утилизация сети
› IOPS диска
8

9

Время восстановления
› OLAP
▌ От старта операции до точки консистентности
› OLTP standby
▌ До подключения репликации
› OLTP primary
▌ До открытия базы на запись
9

10

Дополнительные цели
• Защита от человеческой ошибки
• Защита от сбоев и повреждения данных
• Стоимость администрирования
• Мониторинг состояния базы
• Интеграция с другими системами в базе
• Расширяемость и единообразие подходов
10

11

Чего мы точно не хотим?
› Локов
▌ у нас же Highload
› Потери данных
▌ У нас же база данных
11

12

Бэкапов много хороших и разных
12
pgBackRest
pgProBackup

13

WAL-G

14

Andrey Borodin "Architecture of online backup for various DBMS"

15

15

16

16

17

17

18

18

19

19

20

20

21

Нормальный бекап
21
База История изменений

22

Бекап с дельта-копиями
22
База Дельта-бекап
(инкрементальный)
История изменений

23

LSN-based-дельты
23
LSN
Файл 1
Файл 2
Файл 3
Start Stop Start Stop
Файл 1 Файл 2 Файл 3

24

Круговорот данных в системе
24
M R
W
AL
D
elta-файлы
Delta-файлы
W
AL
бэкап
WAL

25

PG features
25

26

Catchup
github.com/wal-g/wal-g/issues/363 26
LSN
Архивация журнала
М
Yandex
Object
Storage

27

Catchup
github.com/wal-g/wal-g/issues/363 27
LSN
Архивация журнала
М
Yandex
Object
Storage
Delta

28

Catchup
github.com/wal-g/wal-g/issues/363 28
LSN
Архивация журнала
М
Yandex
Object
Storage
Delta

29

Backup-push quorum
29
Синхронная репликация Асинхронная репликация
М

30

Жмём и храним байтики
30

31

lz4
31

32

lz4
32

33

lz4
33

34

lzma
34
▌ Просто дорого по CPU

35

ZStd
35

36

brotli
36

37

OpenPGP
37

38

libsodium
38

39

Push-based vs Pull-based executer
39

40

io.Reader vs io.Writer
40

41

io.ReadFull
41

42

Храним байтики

43

S3-based WAL-G
43

44

S3-based WAL-G
44
▌ AWS умеет в криптографию

45

S3 ListObjectsV2()
45

46

S3 – всё им поросло
46

47

Переезд в storages
47

48

GCP
48
› Нет мультипартов
› Какие-то странные проблемы с зависаниями и ретраями

49

Azure
49
▌ Принесли контрибьюторы из KubeDB

50

FS
50
▌ Проблемы с Windows build

51

SWIFT
51
▌ Проблем нет, возможно, никто им не пользуется?

52

SSHSCP
52
› Появилось недавно

53

Расширяемость WAL-G

54

Базы данных
54
Базы данных
15

55

Что нужно архивировать?
55
Данные
Журнал истории

56

Топология HA-кластера с архивом
Репликация
Архивация журнала
Резервное
копированиеМ

57

MVP WAL-G для MySQL
57
WAL-G
BACKUP-PUSH
BACKUP-FETCH STREAM-FETCH
STREAM-PUSH

58

Extensions
58
WAL-G
PostgreSQL
Extensions
MySQL

59

Разные сборки
59
PostgreSQL
MySQL
MongoDB
Redis

60

Общее API
60
WAL-G API
DELETE
PUSH
FETCH
PostgreSQL
MySQL
MongoDB
Redis
LIST

61

Резервное копирование
61
backup-push
backup-fetch

62

Внешние утилиты
62
WALG_STREAM_CREATE_COMMAND
MySQL
xtrabackup
Redis(WIP)
redis-cli
MongoDB
mongodump

63

Архивация журнала
63
binlog-push
binlog-fetch
oplog-push
oplog-fetch
wal-push
wal-fetch

64

Отсутствие archive command
64
Архивация журнала?
М

65

Отсутствие archive command
65
Архивация журнала?
М
Cron Job

66

Свои бин-логи на хостах
66
М

67

Switchover/Failover
67
Host 1 Timeline
Host 2 Timeline
Host 3 Timeline

68

Нелинейная история
68
Host 1 Timeline
Host 2 Timeline
Host 3 Timeline

69

MongoDB
▌ Физический бэкап только за деньги
› Но есть логический
› +CDC через OpLog
69

70

70

71

71

72

Microsoft SQL Server
72

73

FDB
73

74

Как попробовать у себя?
74
github.com/wal-g/wal-g

75

x4mmm@yandex-team.ru
Андрей Бородин
Жду вопросов J
x4mmm

More Related Content

Andrey Borodin "Architecture of online backup for various DBMS"