Дао миграции нагруженного сервиса - pg day · згляд за...
TRANSCRIPT
![Page 1: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/1.jpg)
Дао миграции
нагруженного сервисас Oracle на PostgreSQL
Василий Созыкин, ведущий Java-разработчик
![Page 2: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/2.jpg)
Начало пути
2
![Page 3: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/3.jpg)
Решение о миграции
3
2 года назад руководство компании
Яндекс.Деньги приняло
окончательное решение о
миграции
c Oracle на PostgreSQL.
![Page 4: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/4.jpg)
Аргументы экономические
› Oracle дорогой как в лицензиях, так и в поддержке
› Рост количества микросервисов и команд, который потребовал
большое количество небольших баз данных на боевой и дев.
средах
› Подходил плановый срок замены оборудования, решили убить сразу двух зайцев
4
![Page 5: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/5.jpg)
Аргументы технические
› Бесплатная, активно развивающаяся инфраструктуравокруг PostgreSQL
› Отказоустойчивость
› Для перехода от интеграционного тестирования к
компонентному потребовалась функциональность быстрого поднятия нового экземпляра БД
› Возможность офлайн работы с локальной БД
5
![Page 6: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/6.jpg)
Преграда на пути
1 год назад…
6
![Page 7: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/7.jpg)
Серьезный соперник
Небольшие сервисы уже переведены на PostgreSQL.
Мы столкнулись с настоящим сервисом-тяжеловесом и
старые подходы уже не работали,
потребовалось промышленное решение.
7
![Page 8: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/8.jpg)
Непростая миграция
Сервис «Профиль пользователя»:
› Не допустимы простой сервиса и потеря данных
› 55 таблиц, самая большая - 1.5 Tb,нагрузка на БД больше 800 rps
› Legacy код, почти без тестов, 5-10 лет давности
› Релизное окно - 1 раз в неделю и сервис активно развивается – 40 комитов в день
8
![Page 9: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/9.jpg)
Всё та же преграда
Месяц спустя
9
![Page 10: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/10.jpg)
Нужен другой путь
Миграция по частям в разных командах не дала никаких
результатов
Для миграции выделяется отдельная команда из 4 разработчиков и 1 DBA
Разрабатывается план миграции для минимизации сроков и трудозатрат
10
![Page 11: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/11.jpg)
Кандидаты
11
› Ora2Pg
› SymmetricDS
› Oracle GoldenGate
› xDB Replication Server
› ORQ
› Full Convert
› Oracle to PostgreSQL Migration
› ESF Database Migration Toolkit
› OraDump-to-PostgreSQL
› Oracle-to-PostgreSQL
› SQLData Tool
![Page 12: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/12.jpg)
Автоматизация процесса миграции
Миграция DDL:
› Ora2Pg — http://ora2pg.darold.net
Миграция данных:
› SymmetricDS — https://www.Symmetricds.org
Миграция кода:
› copy-paste и топором, напильником, скальпелем
12
![Page 13: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/13.jpg)
Взгляд за горизонт
13
![Page 14: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/14.jpg)
Оценка трудозатрат
Приблизительные оценки:
› 1 таблица перенос кода, тесты, pull request – 1-2 дня
› Релиз – длительность 3-5 дней
› Время миграции данных - не больше 1-2 часов
› За один раз можно мигрировать 3-5 таблиц
› Порядка 7 сложных таблиц в БД с большими рисками
14
![Page 15: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/15.jpg)
Возможность оптимизации
› Релиз 1 раз в неделю был узким местом.При 2 релизах успевали переводить 5-7 таблиц.
› Использовали возможность получения опыта на простых
таблицах. Сложные оставили на конец.
› Не делать ручного тестирования. 100% покрытие юнит-тестами с БД и приемка.
› Избегать миграции с «самописной» синхронизацией. По оценке и по факту она в 3 раза дольше.
15
![Page 16: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/16.jpg)
Итого по оценкам в неделю
› Минимум 1 релиз в неделю
› 3-7 таблиц на бою переключены на PostgreSQL
› 12 таблиц переведены по коду для PostgreSQL
› 1 день команды - на улучшение инфраструктуры: ускорение
релизного цикла,
автоматизация, стабилизация тестов.
16
![Page 17: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/17.jpg)
Наивное представление
› Пишем код для работы с PostgreSQL под выключенным «рубильником»,
› Выкатываем код на продакшен,
› Мигрируем данные таблиц,
› Переключаем «рубильник»,
› PROFIT!
17
![Page 18: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/18.jpg)
Поехали
Месяц спустя
18
![Page 19: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/19.jpg)
Шаг 1. Подготовка
› DBA настраивает SymmetricDS на продакшен зоне
› Перед миграцией разработчик релизит новый код
c поддержкой работы на PostgreSQL, под «рубильником»
› DBA получает от разработчика DDL таблицы в PostgreSQL, проверяет DDL на корректность
› DBA создаёт таблицу и её окружение в PostgreSQL.
19
![Page 20: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/20.jpg)
20
SymmetricDS inside
![Page 21: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/21.jpg)
Шаг 2. Миграция данных
Создание триггера на синхронизацию:
21
INSERT INTO sym_trigger (trigger_id, source_table_name,
channel_id, last_update_time, create_time)
VALUES (‘sometable_trigger', ‘sometable', ‘sample_db',
current_timestamp, current_timestamp)
![Page 22: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/22.jpg)
Шаг 2. Миграция данных
Создание связки роутера и триггера синхронизации:
22
INSERT INTO sym_trigger_router (trigger_id, router_id,
initial_load_order, last_update_time, create_time)
VALUES (‘sometable_trigger', 'ora_2_pg', 100,
current_timestamp, current_timestamp)
![Page 23: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/23.jpg)
Шаг 2. Миграция данных
Создание задачи на initial load:
23
INSERT INTO sym_data (node_list, table_name, event_type,
row_data, trigger_hist_id, channel_id, create_time) SELECT
'001', t.source_table_name, 'R', '1=1', h.trigger_hist_id,
t.channel_id, current_timestamp
FROM sym_trigger t INNER JOIN sym_trigger_router tr
ON t.trigger_id = tr.trigger_id
INNER JOIN sym_trigger_hist h ON h.trigger_hist_id = (SELECT
max(trigger_hist_id) FROM sym_trigger_hist WHERE trigger_id
= t.trigger_id) WHERE channel_id = ‘some_db' AND
tr.router_id LIKE 'ora_2_pg' AND (t.source_table_name LIKE
‘some_table') ORDER BY tr.initial_load_order ASC
![Page 24: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/24.jpg)
Шаг 2. Миграция данных
Убедиться что данные начали синхронизироваться
Примерно через 30 мин. – 1 час проверить,
что initial load закончился
24
![Page 25: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/25.jpg)
25
Шаг 2. Окончание initial load
![Page 26: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/26.jpg)
Шаг 3. Переключение рубильника
Увеличить значение sequence для PK в PostgreSQL.
Переключиться на работу с PostgreSQL,
внимательно наблюдать за производительностью приложения и ошибками в логах.
26
![Page 27: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/27.jpg)
Шаг 3. Возможный возврат
В зависимости от таблицы будет 5-10 минут,
чтобы переключиться обратно на Oracle
27
![Page 28: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/28.jpg)
Последний шаг
Переименовать таблицу в Oracle.
Следим за логами!
28
![Page 29: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/29.jpg)
Первые победы
Месяц спустя
29
![Page 30: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/30.jpg)
Первая ретроспектива
Мигрировано уже около 20 таблиц.
Командой выработан checklist миграции.
Выработаны правила валидации миграции.
30
![Page 31: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/31.jpg)
Checklist мигратора
› Стараться мигрировать связанные таблицы пачкой
› Держать под общим переключателем связанные по SQL
таблицы
31
![Page 32: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/32.jpg)
Checklist мигратора
› Написать тесты на все ветки работы с БД в коде
› Проверить соответствие типов данных при передаче из кода в
БД
32
![Page 33: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/33.jpg)
Checklist мигратора
› Подумать как восстановить данные в случае отката
› Не забыть сдвинуть sequence для PK перед переключением
таблицы
33
![Page 34: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/34.jpg)
Валидация миграции
› Сверка количества записей по количеству записей
› Получение из двух БД выборки с n произвольными
соответствующими записями,
их программное сравнение
34
![Page 35: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/35.jpg)
Набираем обороты
Месяц спустя
35
![Page 36: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/36.jpg)
Вторая ретроспектива
Мигрировано уже около 40 таблиц.
Набили уже много шишек из-за отличий
PostgreSQL от Oracle.
Начали использовать advanced возможности SymmetricDS.
36
![Page 37: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/37.jpg)
Отличия PostgreSQL от Oracle
› Транзакционный DDL. Транзакция в 8 часов.
› Переход с rownum = 1 на limit 1 без order by.
Oracle – index scan, PostgreSQL – full scan.
› PostgreSQL открывает очень много file handlers.
› Oracle - настраиваемый размер страницы памяти, PostgreSQL – 8Kb.
37
![Page 38: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/38.jpg)
Аdvanced SymmetricDS
› Конвертация данных при миграции.
› Миграция части данных с ограничением по условию.
› Миграция таблиц с BLOB > 4 Kb.
38
![Page 39: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/39.jpg)
Внезапная остановка
Две недели спустя
39
![Page 40: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/40.jpg)
Идём на ощупь
Начались самые сложные таблицы.
SymmetricDS не справляется c объемами,
мигрируем на самописных очередях в БД.
Миграция выполняется с полной обратной совместимостью, риск отката велик.
40
![Page 41: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/41.jpg)
Миграция в ручном режиме
SymmetricDS на нашем железе падает при миграции таблиц >
100Gb с OutOfMemory.
Написали собственных механизм миграции:
› При вставке и изменении записи, создаем в БД задачу на
синхронизацию данных.
› Выполняем физическую репликацию записи.
› Initial load делаем через этот же механизм,
но пачками по диапазону идентификаторов.
41
![Page 42: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/42.jpg)
Недостатки ручной миграции
› Возможны ошибки.
Совместили очередь задач синхронизации измененных
записей и initial load.
Синхронизация – быстрая и там много задач,
initial load – просто долгая задача.В итоге количество задач выросло до миллиона.
› Нужно тестирование. Дополнительные трудозатраты.
42
![Page 43: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/43.jpg)
Сложный участок пути
Последние 1.5 месяца
43
![Page 44: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/44.jpg)
Колдобины и выбоины на пути
› Deadlock в двух БД
› Неучтенный SQL Join
› Ошибка дублирования для SymmetricDS
44
![Page 45: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/45.jpg)
Колдобины и выбоины на пути
› Откат на Oracle
› Изменения в неявной транзакции
› Другой сервис
45
![Page 46: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/46.jpg)
98%
46
![Page 47: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/47.jpg)
История платежей пользователей
Самая проблемная таблица размером 1.5 Tb.
При переключении на PostgreSQL получили 20 кратную
деградацию производительности, откатились.
47
![Page 48: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/48.jpg)
Проблема
Все запросы были index scan, как и в Oracle.
Уперлись в дисковые чтения.
48
![Page 49: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/49.jpg)
49
Диск загружен на 100%
![Page 50: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/50.jpg)
Триумф или позор?
50
![Page 51: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/51.jpg)
Решение
В таблице был CLOB для неструктурированных данных, который использовался только в части запросов.
Вынесли CLOB в отдельную таблицу,перенесли основную таблицу на SSD.
51
![Page 52: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/52.jpg)
52
Диск успевает отвечать
![Page 53: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/53.jpg)
53
Загрузка диска < 30%
![Page 54: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/54.jpg)
Победа
54
Сервис «Профиль пользователя»
успешно переключен на работу с PostgreSQL
![Page 55: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/55.jpg)
Итоги пути
55
![Page 56: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/56.jpg)
Начало
Oracle
› Version - 11.2.0.2.
› RAM – 64Gb.
› Intel(R) Xeon(R) CPU E5630 / 2.53GHz / 2 CPU * 4 ядра c HT.
› SAS DELL/JBOD/ASM normal redundancy.
› Размер БД - 3Tb
56
![Page 57: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/57.jpg)
Окончание
PostgreSQL
› Version - 9.5.4.
› RAM – 128Gb.
› Intel(R) Xeon(R) CPU E5-2690 v4 / 2.60GHz / 2 CPU * 14 ядер.
› Storage - SAS DELL/RAID 10/FS xfs для data/index/xlog,
SSD RAID 10 для индексов и таблиц с высоким доступом OLTP.
› Размер БД - 2Tb
57
![Page 58: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/58.jpg)
Выводы
› Миграция на другой тип СУБД реальна.
› PostgreSQL – production ready. PROVED!
› SymmetricDS - silver bullet для типовых сценариев,но надо уметь его готовить.
› Правило 80/20 работает и для миграции.
› Мониторинг, мониторинг, мониторинг!
58
![Page 59: Дао миграции нагруженного сервиса - PG Day · згляд за горизонт 13. ... ›Перед миграцией разработчик релизит](https://reader031.vdocuments.mx/reader031/viewer/2022041114/5f2296eff478d74e063c747c/html5/thumbnails/59.jpg)
Контакты
+7 904 551 41 33
Спасибо за внимание!
Созыкин Василий
Ведущий Java-разработчик