SlideShare una empresa de Scribd logo
1 de 32
Descargar para leer sin conexión
Реализация
восстановления
после аварий
Сергей Бурладян
Avito
• база 2 Тб
• 4 сервера: master, standby index, standby site, standby
backup
• 4 реплики * 2: сайта, индексации, платежей, дельты
объявлений
• sphinx
• экспорт в DWH
• xrpc (pgq)
• xdb: 16 баз, шардинг
• 6 часов backup
• 4 часа восстановления из backup, 8 часов применения
WAL
• простой 10 минут
Avito
Как всё это не потерять при авариях?
Аварии
• Master
• Standby
• Sphinx
• DWH
• Xrpc
• Xdb
• Replica
• Backup
Master
• UPDATE без WHERE
• backup standby, 12 часов задержки применения WAL
– pg9.2: if [ "$ftime" -gt "$apply_time" ]
– pg9.4: recovery_min_apply_delay (commit time)
Master
• promote standby
• асинхронная репликация
– теряем часть транзакций
– необходимы процедуры восстановления
• руками сложно, скрипт переключения
Master
promote создаёт на новом мастере параллельную ветвь
времени, а все остальные остаются в старой
• в DWH объявления, которых нет
• xrpc отработал для несуществующих данных
• sphinx выдаёт несуществующие объявления
• sequences начались снова с момента аварии
• логические реплики не работают
Master
Не всё так плохо :-)
• выгрузить в DWH промежуток аварии с запасом в час
снова
– 10 минут — мало изменят отчёты, можно
игнорировать
• xrpc, повезло:
– геокодинг
– локально для асинхронных вызовов на мастере
– карма
– TODO, "обратные" функции, триггеры типа undo
londiste
Master
Не всё так плохо :-)
• sphinx
– сайта, через 10 минут создан с нуля
– backoffice, не критично, зарефрешить последний час,
пересоздаётся с нуля раз в месяц
• sequences, открутить важные вперёд на 100 000
– item_id
– user_id
– order_id
• UNDO для логических реплик
Undo
• subscriber undo [TICK_ID]
– rewind all tables with it UNDO log
• subscriber add-undo-all
– enable UNDO log on all tables
• subscriber remove-undo-all
– disable UNDO log on all tables
• --enable-undolog
– replay generate UNDO log
Undo
• триггер на таблицах subscriber
• undo_log таблица с 'I,'U','D', hstore и tick_id
• получение tick_id с мастера
• все строки во всех наблюдаемых таблицах с tick_id
больше мастера — отменить
– INSERT -> DELETE
– UPDATE -> UPDATE
– DELETE -> INSERT
• londiste.completed: last_tick_id = master tick_id
Скрипт переключения
• 3 standby — выбираем ближайший к мастеру
• останавливаем другие standby
– pg9.2, pg9.4 можно не перезапускать
• promote
• сдвиг sequences вперёд
• londiste undo
• запускаем standby
• ждём новый timeline на standby
• обновление в DNS
Скрипт переключения
• ждём новый timeline на standby
– нет SQL функции
– протокол репликации:
psql -h "$host" -F' ' -c 'IDENTIFY_SYSTEM' 
'dbname=replication replication=true'
systemid | timeline | xlogpos
---------------------+----------+------------
6080348884119699418 | 1 | 1/4E0E42D0
Standby
• 3 standby
• всё на мастер с потерей части трафика
• быстрое создание нового
– из архива (1 Gbp, NFS HDD) — 12 часов
– с соседнего standby pg_basebackup (10 Gbps, SSD,
мало WAL применять) — 4-6 часа
Sphinx сайта
• отдельная реплика для индексации
• данные подготовлены и разложены для быстрой
вычитки в sphinx
• реплика: все данные в shared_buffers
• полная вычитка всех активных объявлений и
перестроение всего индекса каждые 10 минут
• через 10 минут — все индексы готовы заново!
Экспорт в DWH
• отдельная реплика со всеми дельтами всех
объявлений за последние 4 дня
– ручной запуск экспорта с указанием промежутка
времени
• архив за полгода
• в крайнем случае — pause standby и заново выгрузить
все объявления
Базы-клиенты xrpc
• так как xrpc поверх pgq — можно заново проиграть
(redo) часть событий на восстановленной базе
Xdb
• бинарная репликация
• 8 машин, standby на соседней
xdb1 -> xdb2, xdb2 -> xdb3, ..., xdb8 -> xdb1
• задержка проигрывания — 4 дня
Реплика
• на основе возможностей postgres
– view
– deferred триггер
• подготавливаются данные на мастере в таблице
• londiste реплицирует готовые данные в реплику
Реплика
• мастер: набор таблиц с данными для выдачи на сайте
• deferred триггер на каждой, вызывает refresh функцию
• view site_data_v с join по item_id
• таблица site_data_m
• refresh функция:
– блокировка item_id
– delete from site_data_m where item_id = i_item_id
– insert into site_data_m select * from site_data_v where
item_id = i_item_id
• londiste на site_data_m
Реплика
• отдельный сервер (* N)
• shared_buffers = sizeof(site_data_m + indexs)
• всё в памяти, fsync=off
• 7000 TPS чтение
• 1000 событий в сек. в очередь на мастере
• londiste (pgq): учёт транзакций, tick_id
Авария реплики
• pgq — два или больше потребителя одной очереди
• переключаемся на копию
• упавшую — копируем с рабочей
• заново инициализировать — долго
– реплика сайта — 4 часа
– реплика индексации — 8 часов
• делаем копию с оставшейся реплики
Авария реплики
Алгоритм копирования:
• stop londiste
• преподписать к очереди
• pg_dump -f
• pg_restore -j10
• repca: UPDATE londiste.consumer
• master: UPDATE pgq.subscription
• start londiste
• 15 минут!
Авария реплики
– pgqadm ticker.conf unregister ОЧЕРЕДЬ 'название londiste
consumer'
– pgqadm ticker.conf register ОЧЕРЕДЬ 'название londiste consumer'
– pgqadm ticker.conf status; ждём Lag больше, чем у копии
1) pg_dump -Fc -h prod_host --serializable-deferrable dst_db
pg_restore -Fc -d dst_db -j10
2) dst: select * from londiste.completed
3) src: select * from pgq.consumer where co_name = 'название londiste
consumer'
4) src: select * from pgq.subscription where sub_consumer = 'id из (3)'
5) src: update pgq.subscription set sub_last_tick = 'tick_id из (2)',
sub_batch = null, sub_next_tick = null where sub_consumer = 'id из
(3)'
Backup
• fsync в archive_command
– сейчас — копия в облаке
• в планах: два сервера
– archive_command на оба
– restore_command с двух
– pg9.2 pg_receivexlog не работает
●
как защититься от удаления WAL при checkpoint?
(в 9.4 сделали --slot)
●
не делает fsync (в 9.5 сделали --synchronous)
●
не проверяет целостность при запуске
Backup и streaming
• в архив пишет master (archive_command), а копия идёт
со standby
• backup завершился, а master не успел отправить WAL в
архив = битый backup
– pg9.2 не используем streaming :-)
– pg9.2 12 часов задержка backup сервера
– pg9.5 archive_mode=always, пишем в архив со
standby!
Backup, проверка
скрипт для проверки, распаковка на тестовый сервер:
• запуск кластера, recovery.conf: recovery_end_command
• ждём RECOVERY_END, перезапуск для log: 'end-of-
recovery checkpoint', 'database system is ready'
• анализ csvlog файла, пропускаем SQLSTATE '57P03' # 'the
database system is starting up'
– есть только severity: LOG
– для каждой базы вызываем: select
check_backup(last_txtime)
●
например, create_time - last_txtime < 1 минута
Backup, проверка
redo_start = backup_label: START WAL LOCATION
recovery_end = pg_controldata: Minimum recovery ending location
• сообщения, анализируемые в log файле
– 'redo starts at ([0-9A-F/]+)': redo_start
– 'consistent recovery state reached at ([0-9A-F/]+)':
recovery_end
– 'redo done at ([0-9A-F/]+)'
– 'last completed transaction was at log time ([0-9-]+ [0-
9:.]++[0-9]+)': last_txtime
– 'archive recovery complete'
– 'database system is ready to accept connections'
• vacuum базы, sec scan, index scan
– отказались, отчёты по восстановленной базе
Синхронная
репликация
• приложение-сервисы
• сервис платежей
– отдельный кластер master-slave
– синхронная репликация
• так как только платежи — TPS и latency сети хватает
• можно восстанавливаться и при асинхронной
репликации
• недостаточно восстановить postgres, нужно думать о
связанных системах
– логическая репликация
– внешние индексы (sphinx)
– экспорт данных (DWH и т.п)
• тестирование резервных копий
ZooKeeper?
Спасибо за внимание!

Más contenido relacionado

La actualidad más candente

Механика DDoS (Александр Крижановский)
Механика DDoS (Александр Крижановский)Механика DDoS (Александр Крижановский)
Механика DDoS (Александр Крижановский)Ontico
 
DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)
DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)
DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)Ontico
 
Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...
Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...
Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...Ontico
 
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...Ontico
 
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...Ontico
 
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)Ontico
 
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Ontico
 
Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)Ontico
 
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...Ontico
 
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)Ontico
 
Максим Дунин, Nginx, Inc.
Максим Дунин, Nginx, Inc.Максим Дунин, Nginx, Inc.
Максим Дунин, Nginx, Inc.Ontico
 
Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...
Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...
Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...Ontico
 
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)Ontico
 
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Ontico
 
Dennis Anikin - Tarantool Case Studies in Mail.Ru Group
Dennis Anikin - Tarantool Case Studies in Mail.Ru GroupDennis Anikin - Tarantool Case Studies in Mail.Ru Group
Dennis Anikin - Tarantool Case Studies in Mail.Ru GroupMail.ru Group
 
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)Ontico
 
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...Ontico
 
Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)
Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)
Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)Ontico
 
SOA: строим свой service mesh / Иван Круглов (Booking.com)
SOA: строим свой service mesh / Иван Круглов (Booking.com)SOA: строим свой service mesh / Иван Круглов (Booking.com)
SOA: строим свой service mesh / Иван Круглов (Booking.com)Ontico
 

La actualidad más candente (20)

Механика DDoS (Александр Крижановский)
Механика DDoS (Александр Крижановский)Механика DDoS (Александр Крижановский)
Механика DDoS (Александр Крижановский)
 
DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)
DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)
DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)
 
Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...
Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...
Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...
 
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
 
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
 
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
 
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
 
Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)
 
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
 
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)
 
Максим Дунин, Nginx, Inc.
Максим Дунин, Nginx, Inc.Максим Дунин, Nginx, Inc.
Максим Дунин, Nginx, Inc.
 
Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...
Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...
Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...
 
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
 
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
 
Dennis Anikin - Tarantool Case Studies in Mail.Ru Group
Dennis Anikin - Tarantool Case Studies in Mail.Ru GroupDennis Anikin - Tarantool Case Studies in Mail.Ru Group
Dennis Anikin - Tarantool Case Studies in Mail.Ru Group
 
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
 
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
 
Mysql vs postgresql
Mysql vs postgresqlMysql vs postgresql
Mysql vs postgresql
 
Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)
Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)
Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)
 
SOA: строим свой service mesh / Иван Круглов (Booking.com)
SOA: строим свой service mesh / Иван Круглов (Booking.com)SOA: строим свой service mesh / Иван Круглов (Booking.com)
SOA: строим свой service mesh / Иван Круглов (Booking.com)
 

Destacado

Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)Ontico
 
Где живут Ваши объявления / Тюрин Михаил (Avito)
Где живут Ваши объявления / Тюрин Михаил (Avito)Где живут Ваши объявления / Тюрин Михаил (Avito)
Где живут Ваши объявления / Тюрин Михаил (Avito)Ontico
 
Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...
Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...
Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...Ontico
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Ontico
 
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...Ontico
 
Metronews.ru прайс лист-for site
Metronews.ru прайс лист-for siteMetronews.ru прайс лист-for site
Metronews.ru прайс лист-for siteElza Tsastaeva
 
конкурентоспособность продукции Site
конкурентоспособность продукции Siteконкурентоспособность продукции Site
конкурентоспособность продукции SiteVladimir Burdaev
 
Site making
Site makingSite making
Site makingmedcoru
 
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)Ontico
 
Эволюция клиентской разработки от веба ко всеобщей мобилизации или mobile-fir...
Эволюция клиентской разработки от веба ко всеобщей мобилизации или mobile-fir...Эволюция клиентской разработки от веба ко всеобщей мобилизации или mobile-fir...
Эволюция клиентской разработки от веба ко всеобщей мобилизации или mobile-fir...Ontico
 
Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...
Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...
Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...Ontico
 
Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)
Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)
Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)Ontico
 
Креатив: Отличные картинки за 5 минут и 0 рублей
Креатив: Отличные картинки за 5 минут и 0 рублей Креатив: Отличные картинки за 5 минут и 0 рублей
Креатив: Отличные картинки за 5 минут и 0 рублей Semrush
 
Sitecontrol module position [site-control.ru]
Sitecontrol module position [site-control.ru]Sitecontrol module position [site-control.ru]
Sitecontrol module position [site-control.ru]Burt and Co LLC
 
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...Ontico
 
Сага о кластере. Все что вы хотели знать про горизонтальное масштабирование в...
Сага о кластере. Все что вы хотели знать про горизонтальное масштабирование в...Сага о кластере. Все что вы хотели знать про горизонтальное масштабирование в...
Сага о кластере. Все что вы хотели знать про горизонтальное масштабирование в...Ontico
 
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...Ontico
 
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Ontico
 

Destacado (20)

Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
 
Где живут Ваши объявления / Тюрин Михаил (Avito)
Где живут Ваши объявления / Тюрин Михаил (Avito)Где живут Ваши объявления / Тюрин Михаил (Avito)
Где живут Ваши объявления / Тюрин Михаил (Avito)
 
Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...
Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...
Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
 
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...
 
6 domo site
6 domo site6 domo site
6 domo site
 
Metronews.ru прайс лист-for site
Metronews.ru прайс лист-for siteMetronews.ru прайс лист-for site
Metronews.ru прайс лист-for site
 
конкурентоспособность продукции Site
конкурентоспособность продукции Siteконкурентоспособность продукции Site
конкурентоспособность продукции Site
 
Site making
Site makingSite making
Site making
 
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
 
Site secure
Site secureSite secure
Site secure
 
Эволюция клиентской разработки от веба ко всеобщей мобилизации или mobile-fir...
Эволюция клиентской разработки от веба ко всеобщей мобилизации или mobile-fir...Эволюция клиентской разработки от веба ко всеобщей мобилизации или mobile-fir...
Эволюция клиентской разработки от веба ко всеобщей мобилизации или mobile-fir...
 
Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...
Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...
Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...
 
Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)
Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)
Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)
 
Креатив: Отличные картинки за 5 минут и 0 рублей
Креатив: Отличные картинки за 5 минут и 0 рублей Креатив: Отличные картинки за 5 минут и 0 рублей
Креатив: Отличные картинки за 5 минут и 0 рублей
 
Sitecontrol module position [site-control.ru]
Sitecontrol module position [site-control.ru]Sitecontrol module position [site-control.ru]
Sitecontrol module position [site-control.ru]
 
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...
 
Сага о кластере. Все что вы хотели знать про горизонтальное масштабирование в...
Сага о кластере. Все что вы хотели знать про горизонтальное масштабирование в...Сага о кластере. Все что вы хотели знать про горизонтальное масштабирование в...
Сага о кластере. Все что вы хотели знать про горизонтальное масштабирование в...
 
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
 
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
 

Similar a Реализация восстановления после аварий / Сергей Бурладян (Avito)

SECON'2017, Лесовский Алексей, Потоковая репликация в PostgreSQL.
SECON'2017, Лесовский Алексей, Потоковая репликация в PostgreSQL.SECON'2017, Лесовский Алексей, Потоковая репликация в PostgreSQL.
SECON'2017, Лесовский Алексей, Потоковая репликация в PostgreSQL.SECON
 
PostgreSQL Streaming Replication
PostgreSQL Streaming ReplicationPostgreSQL Streaming Replication
PostgreSQL Streaming ReplicationAlexey Lesovsky
 
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...Dev_Party
 
Streaming replication in practice
Streaming replication in practiceStreaming replication in practice
Streaming replication in practiceAlexey Lesovsky
 
2014.10.15 Сергей Бурладян, Avito.ru
2014.10.15 Сергей Бурладян, Avito.ru2014.10.15 Сергей Бурладян, Avito.ru
2014.10.15 Сергей Бурладян, Avito.ruNikolay Samokhvalov
 
pgconf.ru 2015.avito postgresql recovery
pgconf.ru 2015.avito postgresql recoverypgconf.ru 2015.avito postgresql recovery
pgconf.ru 2015.avito postgresql recoveryМихаил Тюрин
 
Беспроблемная эксплуатация PostgreSQL
Беспроблемная эксплуатация PostgreSQLБеспроблемная эксплуатация PostgreSQL
Беспроблемная эксплуатация PostgreSQLДмитрий Васильев
 
Мониторинг и отладка MySQL: максимум информации при минимальных потерях
Мониторинг и отладка MySQL: максимум информации при минимальных потеряхМониторинг и отладка MySQL: максимум информации при минимальных потерях
Мониторинг и отладка MySQL: максимум информации при минимальных потеряхSveta Smirnova
 
"Деплой кода процедур" Мурат Кабилов (Avito)
"Деплой кода процедур" Мурат Кабилов (Avito)"Деплой кода процедур" Мурат Кабилов (Avito)
"Деплой кода процедур" Мурат Кабилов (Avito)AvitoTech
 
Kostja Root Conf
Kostja Root ConfKostja Root Conf
Kostja Root ConfLiudmila Li
 
Building the Enterprise infrastructure with PostgreSQL as the basis for stori...
Building the Enterprise infrastructure with PostgreSQL as the basis for stori...Building the Enterprise infrastructure with PostgreSQL as the basis for stori...
Building the Enterprise infrastructure with PostgreSQL as the basis for stori...PavelKonotopov
 
Истинный DevOps. Секрет 42.
Истинный DevOps. Секрет 42.Истинный DevOps. Секрет 42.
Истинный DevOps. Секрет 42.Nikita Borzykh
 
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5DevDay
 
Percona XtraBackup: экспертные возможности (Алексей Копытов)
Percona XtraBackup: экспертные возможности (Алексей Копытов)Percona XtraBackup: экспертные возможности (Алексей Копытов)
Percona XtraBackup: экспертные возможности (Алексей Копытов)Ontico
 
Linuxvirt seminar-csc-2015
Linuxvirt seminar-csc-2015Linuxvirt seminar-csc-2015
Linuxvirt seminar-csc-2015OSLL
 
07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервера07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервераRoman Brovko
 
Абак Пресс
Абак ПрессАбак Пресс
Абак Прессit-people
 
От Make к Ansible
От Make к AnsibleОт Make к Ansible
От Make к AnsibleIvan Grishaev
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeYehor Herasymchuk
 

Similar a Реализация восстановления после аварий / Сергей Бурладян (Avito) (20)

SECON'2017, Лесовский Алексей, Потоковая репликация в PostgreSQL.
SECON'2017, Лесовский Алексей, Потоковая репликация в PostgreSQL.SECON'2017, Лесовский Алексей, Потоковая репликация в PostgreSQL.
SECON'2017, Лесовский Алексей, Потоковая репликация в PostgreSQL.
 
PostgreSQL Streaming Replication
PostgreSQL Streaming ReplicationPostgreSQL Streaming Replication
PostgreSQL Streaming Replication
 
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
 
Streaming replication in practice
Streaming replication in practiceStreaming replication in practice
Streaming replication in practice
 
2014.10.15 Сергей Бурладян, Avito.ru
2014.10.15 Сергей Бурладян, Avito.ru2014.10.15 Сергей Бурладян, Avito.ru
2014.10.15 Сергей Бурладян, Avito.ru
 
pgconf.ru 2015 avito postgresql
pgconf.ru 2015 avito postgresqlpgconf.ru 2015 avito postgresql
pgconf.ru 2015 avito postgresql
 
pgconf.ru 2015.avito postgresql recovery
pgconf.ru 2015.avito postgresql recoverypgconf.ru 2015.avito postgresql recovery
pgconf.ru 2015.avito postgresql recovery
 
Беспроблемная эксплуатация PostgreSQL
Беспроблемная эксплуатация PostgreSQLБеспроблемная эксплуатация PostgreSQL
Беспроблемная эксплуатация PostgreSQL
 
Мониторинг и отладка MySQL: максимум информации при минимальных потерях
Мониторинг и отладка MySQL: максимум информации при минимальных потеряхМониторинг и отладка MySQL: максимум информации при минимальных потерях
Мониторинг и отладка MySQL: максимум информации при минимальных потерях
 
"Деплой кода процедур" Мурат Кабилов (Avito)
"Деплой кода процедур" Мурат Кабилов (Avito)"Деплой кода процедур" Мурат Кабилов (Avito)
"Деплой кода процедур" Мурат Кабилов (Avito)
 
Kostja Root Conf
Kostja Root ConfKostja Root Conf
Kostja Root Conf
 
Building the Enterprise infrastructure with PostgreSQL as the basis for stori...
Building the Enterprise infrastructure with PostgreSQL as the basis for stori...Building the Enterprise infrastructure with PostgreSQL as the basis for stori...
Building the Enterprise infrastructure with PostgreSQL as the basis for stori...
 
Истинный DevOps. Секрет 42.
Истинный DevOps. Секрет 42.Истинный DevOps. Секрет 42.
Истинный DevOps. Секрет 42.
 
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
 
Percona XtraBackup: экспертные возможности (Алексей Копытов)
Percona XtraBackup: экспертные возможности (Алексей Копытов)Percona XtraBackup: экспертные возможности (Алексей Копытов)
Percona XtraBackup: экспертные возможности (Алексей Копытов)
 
Linuxvirt seminar-csc-2015
Linuxvirt seminar-csc-2015Linuxvirt seminar-csc-2015
Linuxvirt seminar-csc-2015
 
07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервера07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервера
 
Абак Пресс
Абак ПрессАбак Пресс
Абак Пресс
 
От Make к Ansible
От Make к AnsibleОт Make к Ansible
От Make к Ansible
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And Forge
 

Más de Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Ontico
 

Más de Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

Реализация восстановления после аварий / Сергей Бурладян (Avito)

  • 2. Avito • база 2 Тб • 4 сервера: master, standby index, standby site, standby backup • 4 реплики * 2: сайта, индексации, платежей, дельты объявлений • sphinx • экспорт в DWH • xrpc (pgq) • xdb: 16 баз, шардинг • 6 часов backup • 4 часа восстановления из backup, 8 часов применения WAL • простой 10 минут
  • 3. Avito Как всё это не потерять при авариях?
  • 4. Аварии • Master • Standby • Sphinx • DWH • Xrpc • Xdb • Replica • Backup
  • 5. Master • UPDATE без WHERE • backup standby, 12 часов задержки применения WAL – pg9.2: if [ "$ftime" -gt "$apply_time" ] – pg9.4: recovery_min_apply_delay (commit time)
  • 6. Master • promote standby • асинхронная репликация – теряем часть транзакций – необходимы процедуры восстановления • руками сложно, скрипт переключения
  • 7. Master promote создаёт на новом мастере параллельную ветвь времени, а все остальные остаются в старой • в DWH объявления, которых нет • xrpc отработал для несуществующих данных • sphinx выдаёт несуществующие объявления • sequences начались снова с момента аварии • логические реплики не работают
  • 8. Master Не всё так плохо :-) • выгрузить в DWH промежуток аварии с запасом в час снова – 10 минут — мало изменят отчёты, можно игнорировать • xrpc, повезло: – геокодинг – локально для асинхронных вызовов на мастере – карма – TODO, "обратные" функции, триггеры типа undo londiste
  • 9. Master Не всё так плохо :-) • sphinx – сайта, через 10 минут создан с нуля – backoffice, не критично, зарефрешить последний час, пересоздаётся с нуля раз в месяц • sequences, открутить важные вперёд на 100 000 – item_id – user_id – order_id • UNDO для логических реплик
  • 10. Undo • subscriber undo [TICK_ID] – rewind all tables with it UNDO log • subscriber add-undo-all – enable UNDO log on all tables • subscriber remove-undo-all – disable UNDO log on all tables • --enable-undolog – replay generate UNDO log
  • 11. Undo • триггер на таблицах subscriber • undo_log таблица с 'I,'U','D', hstore и tick_id • получение tick_id с мастера • все строки во всех наблюдаемых таблицах с tick_id больше мастера — отменить – INSERT -> DELETE – UPDATE -> UPDATE – DELETE -> INSERT • londiste.completed: last_tick_id = master tick_id
  • 12. Скрипт переключения • 3 standby — выбираем ближайший к мастеру • останавливаем другие standby – pg9.2, pg9.4 можно не перезапускать • promote • сдвиг sequences вперёд • londiste undo • запускаем standby • ждём новый timeline на standby • обновление в DNS
  • 13. Скрипт переключения • ждём новый timeline на standby – нет SQL функции – протокол репликации: psql -h "$host" -F' ' -c 'IDENTIFY_SYSTEM' 'dbname=replication replication=true' systemid | timeline | xlogpos ---------------------+----------+------------ 6080348884119699418 | 1 | 1/4E0E42D0
  • 14. Standby • 3 standby • всё на мастер с потерей части трафика • быстрое создание нового – из архива (1 Gbp, NFS HDD) — 12 часов – с соседнего standby pg_basebackup (10 Gbps, SSD, мало WAL применять) — 4-6 часа
  • 15. Sphinx сайта • отдельная реплика для индексации • данные подготовлены и разложены для быстрой вычитки в sphinx • реплика: все данные в shared_buffers • полная вычитка всех активных объявлений и перестроение всего индекса каждые 10 минут • через 10 минут — все индексы готовы заново!
  • 16. Экспорт в DWH • отдельная реплика со всеми дельтами всех объявлений за последние 4 дня – ручной запуск экспорта с указанием промежутка времени • архив за полгода • в крайнем случае — pause standby и заново выгрузить все объявления
  • 17. Базы-клиенты xrpc • так как xrpc поверх pgq — можно заново проиграть (redo) часть событий на восстановленной базе
  • 18. Xdb • бинарная репликация • 8 машин, standby на соседней xdb1 -> xdb2, xdb2 -> xdb3, ..., xdb8 -> xdb1 • задержка проигрывания — 4 дня
  • 19. Реплика • на основе возможностей postgres – view – deferred триггер • подготавливаются данные на мастере в таблице • londiste реплицирует готовые данные в реплику
  • 20. Реплика • мастер: набор таблиц с данными для выдачи на сайте • deferred триггер на каждой, вызывает refresh функцию • view site_data_v с join по item_id • таблица site_data_m • refresh функция: – блокировка item_id – delete from site_data_m where item_id = i_item_id – insert into site_data_m select * from site_data_v where item_id = i_item_id • londiste на site_data_m
  • 21. Реплика • отдельный сервер (* N) • shared_buffers = sizeof(site_data_m + indexs) • всё в памяти, fsync=off • 7000 TPS чтение • 1000 событий в сек. в очередь на мастере • londiste (pgq): учёт транзакций, tick_id
  • 22. Авария реплики • pgq — два или больше потребителя одной очереди • переключаемся на копию • упавшую — копируем с рабочей • заново инициализировать — долго – реплика сайта — 4 часа – реплика индексации — 8 часов • делаем копию с оставшейся реплики
  • 23. Авария реплики Алгоритм копирования: • stop londiste • преподписать к очереди • pg_dump -f • pg_restore -j10 • repca: UPDATE londiste.consumer • master: UPDATE pgq.subscription • start londiste • 15 минут!
  • 24. Авария реплики – pgqadm ticker.conf unregister ОЧЕРЕДЬ 'название londiste consumer' – pgqadm ticker.conf register ОЧЕРЕДЬ 'название londiste consumer' – pgqadm ticker.conf status; ждём Lag больше, чем у копии 1) pg_dump -Fc -h prod_host --serializable-deferrable dst_db pg_restore -Fc -d dst_db -j10 2) dst: select * from londiste.completed 3) src: select * from pgq.consumer where co_name = 'название londiste consumer' 4) src: select * from pgq.subscription where sub_consumer = 'id из (3)' 5) src: update pgq.subscription set sub_last_tick = 'tick_id из (2)', sub_batch = null, sub_next_tick = null where sub_consumer = 'id из (3)'
  • 25. Backup • fsync в archive_command – сейчас — копия в облаке • в планах: два сервера – archive_command на оба – restore_command с двух – pg9.2 pg_receivexlog не работает ● как защититься от удаления WAL при checkpoint? (в 9.4 сделали --slot) ● не делает fsync (в 9.5 сделали --synchronous) ● не проверяет целостность при запуске
  • 26. Backup и streaming • в архив пишет master (archive_command), а копия идёт со standby • backup завершился, а master не успел отправить WAL в архив = битый backup – pg9.2 не используем streaming :-) – pg9.2 12 часов задержка backup сервера – pg9.5 archive_mode=always, пишем в архив со standby!
  • 27. Backup, проверка скрипт для проверки, распаковка на тестовый сервер: • запуск кластера, recovery.conf: recovery_end_command • ждём RECOVERY_END, перезапуск для log: 'end-of- recovery checkpoint', 'database system is ready' • анализ csvlog файла, пропускаем SQLSTATE '57P03' # 'the database system is starting up' – есть только severity: LOG – для каждой базы вызываем: select check_backup(last_txtime) ● например, create_time - last_txtime < 1 минута
  • 28. Backup, проверка redo_start = backup_label: START WAL LOCATION recovery_end = pg_controldata: Minimum recovery ending location • сообщения, анализируемые в log файле – 'redo starts at ([0-9A-F/]+)': redo_start – 'consistent recovery state reached at ([0-9A-F/]+)': recovery_end – 'redo done at ([0-9A-F/]+)' – 'last completed transaction was at log time ([0-9-]+ [0- 9:.]++[0-9]+)': last_txtime – 'archive recovery complete' – 'database system is ready to accept connections' • vacuum базы, sec scan, index scan – отказались, отчёты по восстановленной базе
  • 29. Синхронная репликация • приложение-сервисы • сервис платежей – отдельный кластер master-slave – синхронная репликация • так как только платежи — TPS и latency сети хватает
  • 30. • можно восстанавливаться и при асинхронной репликации • недостаточно восстановить postgres, нужно думать о связанных системах – логическая репликация – внешние индексы (sphinx) – экспорт данных (DWH и т.п) • тестирование резервных копий