Найти в Дзене
Timeweb Cloud

Миграция базы данных: для чего нужна, как сделать, примеры использования

Что такое миграция баз данных, зачем она нужна, как перенести базы данных в облачную инфраструктуру. Об этом и не только мы рассказали в этой статье. 📜Читайте также: Типы данных в MySQL Миграция баз данных Под любой миграцией понимают перемещение чего-то или кого-то с одного места в другое. По этому же принципу работает миграция баз данных. Например, ее переносят из локальной среды в облачную. Существует 2 типа процесса миграции: Цели миграция баз данных Прежде чем перейти к инструкциям, разберемся, зачем компании проводят данную процедуру и какую выгоду получают. Как правило, в любой организации с каждым годом работы количество информации только приумножается. В основном для ее хранения выбирают базы данных. Но не все так просто, поскольку со временем специалисты перестают справляться с сопровождением, а также появляется необходимость в современных информационных системах. Чтобы справиться со всеми трудностями, нужно проводить миграцию баз данных. Это помогает улучшить защиту конфид
Оглавление

Что такое миграция баз данных, зачем она нужна, как перенести базы данных в облачную инфраструктуру. Об этом и не только мы рассказали в этой статье.

📜Читайте также: Типы данных в MySQL

Миграция баз данных

Под любой миграцией понимают перемещение чего-то или кого-то с одного места в другое. По этому же принципу работает миграция баз данных. Например, ее переносят из локальной среды в облачную.

Существует 2 типа процесса миграции:

  1. Однократная миграция подразумевает разовое перемещение. Нюанс этого процесса заключается в том, что база данных переносится из одной системы в другую. При этом поддержка первой системы, из которой выполнили перенос, прекращается.
  2. Версионная миграция данных. При данном типе база данных обновляется до новой версии. Помимо апгрейда, может быть откат к более старым версиям. Также данный тип миграции затрагивает схему, о которой более подробно рассказали в разделе «Основные понятия».

Цели миграция баз данных

Прежде чем перейти к инструкциям, разберемся, зачем компании проводят данную процедуру и какую выгоду получают. Как правило, в любой организации с каждым годом работы количество информации только приумножается. В основном для ее хранения выбирают базы данных. Но не все так просто, поскольку со временем специалисты перестают справляться с сопровождением, а также появляется необходимость в современных информационных системах.

Чтобы справиться со всеми трудностями, нужно проводить миграцию баз данных. Это помогает улучшить защиту конфиденциальности информации и закрыть вопрос с поддержкой, так как базы данных переходят под управление современных систем. Переход от старого к новому способствует цифровым трансформациям в компании.

Сейчас мы рассмотрим, почему бизнес нуждается в миграции баз данных и какие задачи она решает:

  • Чтобы повысить уровень сохранности и надежности данных.
  • Улучшить качество командной работы. Если над проектом работает команда разработчиков, миграция помогает синхронизировать код и контролировать версии программного обеспечения.
  • Устранить проблемы с масштабированием проектов.
  • Обновить функционал и повысить производительность системы хранения информации.
  • Чтобы воспользоваться возможностями современных технологий, например, работать с BigData или искусственным интеллектом.
  • Сократить расходы на сопровождение и поддержку информационных систем.

Далее познакомимся с терминологией и расшифруем основные понятия, которые встречаются в статье.

Основные термины

  • База данных (сокращенно — БД) представляет собой набор упорядоченных однородных или разнородных данных. Эти данные хранятся в соответствии со специальной схемой. Она представляет собой структуру базы данных и изображается в виде таблиц, связей и других элементов. Язык, на котором она описана, поддерживается СУБД.
  • Система управления базами данных (сокращенно — СУБД). Здесь все просто. Это специальное программное обеспечение, предназначенное для создания и управления базами данных. Также СУБД определяет формат, в котором будут храниться данные. Чаще всего это таблицы.
  • Информационная система (сокращенно — ИС) предназначена для того, чтобы искать, обрабатывать и хранить информацию. Также сюда можно отнести средства, которые помогают реализовывать эти функции.

Также нужно знать еще два термина: источник и приемник.

Под первым имеется в виду старая база данных, которую необходимо перенести.

Под приемником понимают новую базу данных, в которую перемещают данные из источника.

Данные выгружают из источника в формате xls, а в приемник их загружают, используя шаблоны. Шаблоны — это файлы описания.

Два способа миграции данных: полная и версионная

Полная миграция баз данных

При такой миграции база данных переносится полностью из источника в приемник. Чтобы осуществить данный вид миграции, необходимо выбрать технологию переноса, определить правила настройки доступа, подумать над постмиграционном тестировании и устранением недочетов. Также нужно оценить объем и состав данных, которые необходимо перенести. Все это относится к организационным моментам, чтобы сам процесс был четко организованным и непрерывным.

Помимо организационных вопросов, нужно задуматься над планом Б, если произойдет внештатная ситуация. К примеру, в процессе переноса случаются сбои, которые влекут за собой нарушение целостности, а также корректности данных. В этом случае в качестве плана Б необходимо вспомнить о методах отката баз данных к исходной версии.

И, конечно же, очень важно, чтобы работу выполнял высококвалифицированный персонал. Участники процесса должны быть поделены на 2 рабочие группы, каждая из которых будет разбираться в своей системе управления базами данных. Независимо от того, осуществляется процесс в автоматическом режиме или вручную, необходимо назначить сотрудников для мониторинга.

Также к технологическим моментам можно отнести следующее:

  • Если источников выгрузки данных несколько, требуется подготовить их список, согласовав его заранее.
  • Перед выгрузкой данных рекомендуется проводить предварительное тестирование и комплексный аудит. Чтобы определить скорость процесса и какие факторы на нее влияют. Процессы выгрузки не должен затягиваться.
  • Подготовить шаблоны загрузки данных с техническими описаниями.
  • Сопоставить исходные и загрузочные данные. Чаще всего процесс Data mapping занимает практически половину объема всего процесса. На этом этапе в виде скриптов создают правила преобразования данных, которые подлежат переносу.
  • После прохождения вышеописанных этапов данные готовы к выгрузке из источника. В процессе они трансформируются и затем перемещаются в приемник. Как мы и говорили, первоначально лучше сделать пробную миграцию с внесением корректив.
  • Заключительный этап включает в себя сверку данных. Это необходимо, чтобы проверить работоспособность данных.

Версионная миграция

Чаще всего версионную миграцию выбирают в случаях, когда необходимо контролировать версии программного обеспечения, если над разработкой программного обеспечения трудится команда специалистов, а не отдельный разработчик. Именно версионная миграция помогает не столкнуться с рассинхронизацией, когда новые версии программного обеспечения отправляются в продакшн. Также у данной процедуры есть следующие нюансы, о которых нужно знать и учитывать в работе: при переносе данных важно соблюдать последовательность, все SQL-запросы должны выполняться один раз. Если не придерживаться этих условий, то можно столкнуться с потерей данных и потратить время на их восстановление.

Допустим, вам нужно выполнить версионную миграцию. Чтобы это сделать, нужно выбрать подходящий для вас метод:

  1. Метод инкрементных изменений.
  2. Метод идемпотентных изменений.

уподобление структуры базы данных исходному коду.

Чтобы облегчить процесс переноса и избежать ошибок, были разработаны специальные наборы инструментов для каждого метода в отдельности.

Как выбрать правильный метод? Для этого нужно руководствоваться рядом принципов:

  • для каждой версии базы данных должно быть предусмотрено обновление до новых версий, а при необходимости откат на предыдущие версии;
  • упрощенное получение SQL-запросов;
  • нужно предусмотреть возможность создания базы данных с обновленной структурой с чистого листа;
  • рекомендуем продумывать миграцию базы данных таким образом, чтобы избежать редактирования вручную.

Ознакомившись с теорией, можно переходить к практике. Ниже представлены две инструкции по переносу баз данных.

Миграция базы данных PostgreSQL

Мы будем использовать две логические процедуры, а именно: репликацию и дампу.

Для начала необходимо подготовить исходный кластер, выполнив команды в данной последовательности:

  • ALTER ROLE <name> WITH REPLICATION, в скобках вместо name необходимо указать имя пользователя;
  • Затем откройте postgresql.conf и укажите следующую информацию: wal_level = logical
  • На этом этапе должна настроиться аутентификация в pg_hba.conf. Где <host>, укажите IP или DNS приемника:

host all all <host> md5

host replication all <host> md5

  • Перезапустите систему управления базами данных с использованием инструкции: systemctl restart postgresql.

После подготовки кластера можно перенести схему базы данных. При этом должно соблюдаться требование, что схема базы данных в источнике должна быть идентична схеме базы данных в приемники.

Чтобы перенести базу данных, используйте следующие утилиты: pg_dump и pg_restore.

В завершении необходимо создать публикацию в источнике при помощи инструкции CREATE PUBLICATION <name> FOR ALL TABLES, указав название публикации. Для создания публикации нужно обладать правами superuser.

После этого нужно создать подписки в приёмнике, применив инструкцию CREATE SUBSCRIPTION <name> CONNECTION, указав название подписки. Для этого действия нужно иметь доступ администратора dbaas_admin.

В связи с невозможностью репликации последовательностей необходимо произвести восстановление дампа с последовательностями при помощи утилиты psql. Для этого сбросьте подписку в приемнике, выполнив команду:

DROP SUBSCRIPTION.

Создать дамп можно при помощи вышеупомянутых утилит: pg_dump и pg_restore. Дамп базы данных можно создать в кастомном формате (для восстановления отдельных элементов) или в SQL формате.

Миграция базы данных Django

В этом блоке представлены основные инструкции, которые также, как и фреймворк Django, работают в коде на языке Python.

Назначение инструкций:

  • для создания файла миграции с кодом схемы:

makemigrations

  • для создания таблицы согласно схеме, которая находится в файле: миграции

migrate

  • для просмотра необработанных SQL-запросов реализованной миграции:

sqlmigrate

  • для перечисления миграций и их статуса:

showmigrations

Заключение

В данной статье мы рассмотрели основные моменты, которые касаются миграции баз данных. Для обеспечения непрерывности миграции, а также во избежание ошибок начните с составления плана переноса базы данных. При отсутствии намеченной стратегии пользователи сталкиваются с потерей корпоративных данных, с нарушением бизнес-процессов и всеми вытекающими из этого последствиями. Все это негативно сказывается на бюджете компании, а в некоторых случаях и на репутации.

В план необходимо включать аудит базы данных с проведением анализа формата данных. На этом этапе необходимо выявить потенциальные проблемы, связанные с конфиденциальностью данных во время осуществления миграции. Также не забывайте про резервное копирование и установление временных рамок. Для этого проводится тестирование миграции. Выполнение этих требований и соблюдение плана гарантирует то, что миграция будет выполнена успешно.

Кстати, в официальном канале Timeweb Cloud собрали комьюнити из специалистов, которые говорят про IT-тренды, делятся полезными инструкциями и даже приглашают к себе работать.💥