Please enable JavaScript.
Coggle requires JavaScript to display documents.
2.3 Управляемые БД, перенос данных - Coggle Diagram
2.3 Управляемые БД, перенос данных
Резервное копирование
-
-
-
Пример скорости восстановления. Средняя скорость восстановления из резервной копии — 10 МБ/с на каждое ядро vCPU хоста БД. Вы восстанавливаете из резервной копии БД размером 1,2 ГБ в кластер с одним хостом класса s2.small. Сколько примерно времени займёт восстановление? - 0,5 минуты
Репликация
Всё ломается не только в физическом мире — виртуальные машины тоже выходят из строя. Чтобы решить проблему сохранности и доступности БД, можно создать несколько хостов и поместить на каждый её копию. Это повысит отказоустойчивость системы и даже улучшит её производительность, поскольку запросы распределятся между хостами. Однако в этом случае возникает новая задача: синхронизировать данные.
Механизм синхронизации копий БД внутри кластера называют репликацией. В различных СУБД он реализуется по-разному (ниже мы кратко остановимся на основных его видах). Выбор решения зависит от задачи и должен учитывать размер системы, требования к скорости ее работы, критичность потери даже небольшого фрагмента данных.
Синхронная
В кластерах PostgreSQL используется синхронная репликация. В этой классической СУБД запись в БД происходит на хосте-мастере. Остальные хосты в кластере — реплики, для них доступны только операции чтения данных. Транзакция подтверждается лишь тогда, когда данные записаны на диск и на хосте-мастере, и на всех репликах. Это повышает надёжность системы, но может заметно (на 25−30%) снизить скорость ее работы по сравнению с асинхронным режимом.
Асинхронная
Асинхронный механизм допускает задержку между подтверждением транзакции (целостного выполнения связанных между собой операций) на одном хосте и её передачей на другие хосты. Это ускоряет работу, но данные при сбое могут быть потеряны. Такой подход реализован в БД ClickHouse.
Логическая
В PostgreSQL также реализован метод логической репликации. Его основное отличие от физической заключается в том, что вместо последовательностей байтов копируются таблицы и строки.
При логической репликации используются публикации и подписки. Один экземпляр БД (подписчик) подписывается на изменения в другом экземпляре (публикующем узле) и получает от него данные. Изменения на стороне публикующего узла передаются подписчику в реальном времени, публикациям в рамках подписки гарантируется транзакционная целостность (т. е. результат транзакции записывается в БД только тогда, когда все операции транзакции успешно завершены).
Каскадная
Подписчик, в свою очередь, также может публиковать данные, что позволяет организовать каскадную репликацию. В этом случае хост-мастер синхронизируется только с одной репликой, которая затем используется для синхронизации с другими репликами группы. Такой подход позволяет заметно уменьшить транзакционную нагрузку на хост-мастер.
В кластере Managed Service for PostgreSQL подписки может применять пользователь, созданный одновременно с кластером, и пользователи с ролью mdb.admin для этого кластера.
Data Transfer
Аварийное восстановление. Data Transfer позволяет организовать миграцию данных из Yandex Cloud в локальную БД. На вашем сервере всегда будет актуальная копия данных, пригодная для аварийного восстановления.
Организация разработки и разделение нагрузки. Если разработчики, тестировщики или аналитики вашего продукта используют инфраструктуру Yandex Cloud, то вы быстро организуете окружение для нового участника. За актуальную копию данных в окружении отвечает Data Transfer.
Схема работает и в обратном направлении, когда актуальная стабильная версия сервиса базируется в Yandex Cloud, а для организации рабочего процесса необходима реплика данных в локальных базах. При этом основная БД не будет испытывать лишнюю нагрузку.
Разделение и объединение БД. С помощью Data Transfer можно разделить БД и в каждую новую базу можно перенести разный набор таблиц исходной базы. Также с его помощью можно объединить несколько БД. Например, при миграции в Yandex Cloud вы соберёте данные в единую БД в одном из сервисов управляемых БД. Объединяются только однородные БД
Эндпоинт
Источник описывает настройки БД, откуда передаётся информация.
Приёмник описывает настройки БД, куда переносится информация
Трансфер — это перенос данных из источника в приёмник. Трансфер должен находиться в одном каталоге с эндпоинтами, которые соединяет
-
-
Копирование и репликация — перенос состояния базы источника в базу приёмника и поддержка этого состояния.
При копировании скорость достигает 15 МБ/с. База размером 100 ГБ скопируется за 2–3 часа. При репликации пропускная способность составляет 20–30 тысяч транзакций в секунду.