Поделиться через


Этапы миграции Oracle to База данных Azure для PostgreSQL

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

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

Обнаружение

Большинство клиентов уже хорошо знакомы с объемами и расположениями экземпляров базы данных Oracle (особенно их связанными затратами на лицензирование), однако для полноты мы подчеркиваем этот этап как важную отправную точку в миграции. Этап обнаружения — это идеальный этап для определения соответствующей области усилий по миграции. У вас есть среда сервера базы данных Oracle "ферма", требующая десятков, сотен или даже тысяч баз данных для миграции? Вы рассматриваете масштабируемую миграцию после подхода "фабрика миграции"? Скорее, ваша среда подходит для комплексной миграции одной базы данных вместе с параллельной модернизацией всех подключенных клиентов, прежде чем перейти к следующей базе данных в списке миграции? В любом случае актуальное и тщательное инвентаризация является критически важным предварительным условием, и этап обнаружения гарантирует, что вы готовы к успешному выполнению.

Оценки

Оценки инкапсулируют множество различных типов исследовательских операций на основе оценки, которые индивидуально определяются их уникальными характеристиками. Некоторые оценки предназначены для оценки и классификации сложности усилий и ресурсов, участвующих в миграции объектов базы данных, и на основе таких факторов, как количество объектов (потенциально даже изучение количества строк кода), требующих внимания от эксперта по теме. Кроме того, другие типы оценок изучают структуру и размер базовых данных и предоставляют рекомендации относительно времени, необходимого для полной миграции данных в целевую среду. Тем не менее, другой тип оценки структурирован, чтобы обеспечить правильное масштабирование целевых ресурсов Azure Postgres для размещения вычислительных ресурсов, памяти, операций ввода-вывода в секунду и конфигурации сети, необходимой для обслуживания данных. Одной из наиболее важных оценок, которые необходимо включить, чтобы обеспечить успешность миграции, является тщательная проверка и рассмотрение всех подключенных клиентов и области, содержащей все зависимые приложения. Чтобы свести итоги, при подготовке оценки миграции убедитесь, что вы оцениваете все аспекты миграции базы данных, включая:

  • Схема базы данных / количество преобразования кода и сложность
  • Размер базы данных и масштаб
  • Требования к эксплуатации ресурсов базы данных
  • Миграция кода клиентского приложения

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

Дополнительные сведения см. в сборнике схем миграции Azure Postgres в Oracle.

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

Структурированные определения данных являются одним из признаков обработчиков транзакций субД и важной основой для хорошо разработанной платформы данных. Обеспечение правильности сопоставления уникальных структур данных Oracle и определений типов данных с соответствующими таблицами в Azure Postgres является критически важным требованием к общему успеху миграции. Хотя все базы данных транзакций имеют множество сходств, различия в таблицах данных и типах данных столбцов существуют и должны быть приняты меры, чтобы гарантировать, что данные не будут случайно потеряны, усечены или урезаны из-за несоответствия определений данных. Числовые типы данных, типы данных даты и времени и текстовые типы данных — это лишь некоторые примеры областей, которые необходимо внимательно изучить при разработке соответствующих сопоставлений данных для миграции.

Дополнительные сведения и примеры различий между типами данных Oracle и Postgres см. в нашем сборнике схем миграции Oracle в Azure Postgres.

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

Миграция кода базы данных относится к процессу преобразования кода базы данных, написанного для Oracle, совместимого с ядром СУБД Postgres, сохраняя как исходные функциональные возможности, так и существующие характеристики производительности. Этот процесс подразумевает преобразование запросов Oracle PL/SQL, хранимых процедур, функций, триггеров и других объектов базы данных в соответствии с Postgres PL/pgSQL. К счастью, диалекты процедурного языка PL/pgSQL Oracle PL/SQL и Postgres используют множество сходств, и это обычно начальный фактор, который многие организации определяют при выборе Postgres в качестве лучшего подходящего для миграции баз данных Oracle. Однако существуют некоторые уникальные различия и различия между двумя языками базы данных, которые необходимо учитывать. К ним относятся ключевые слова и синтаксис, обработка исключений, встроенные функции, типы данных и добавочная последовательность.

Во многих случаях экосистема расширений Postgres может быть мощным союзником для упрощения процесса миграции кода. Например, расширение "Функции Oracle для PostgreSQL" (orafce) предоставляет набор встроенных функций совместимости Oracle и пакетов, которые могут снизить потребность в перезаписи частей базы кода, которые используют и ссылаются на эти функции Oracle. Использование этого подхода на основе совместимости во время миграции кода Oracle в PostgreSQL обеспечивает значительные преимущества с точки зрения снижения сложности, времени и стоимости процесса миграции путем поддержания исходной логики и функциональности определений исходной базы данных, обеспечения согласованности результатов и повышения производительности разработчиков. Все эти преимущества добавляются к достигнутой упрощенной и более эффективной миграции кода в PostgreSQL.

Дополнительные сведения и примеры различий между встроенными функциями и операторами логики Oracle и Postgres см. в сборнике схем миграции Azure Postgres в Oracle.

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

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

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

Миграция кода приложения

Хотя внешние приложения могут быть технически рассмотрены за пределами домена обязанностей по миграции группы баз данных, обновление и модернизация подключения к базе данных клиентским приложениям является важным и тесно связанным этапом к общему успеху процесса миграции базы данных. Как и в случае с другими этапами миграции, связанные усилия и сложность, связанные с исправлением совместимости платформы клиентских приложений, зависят от уникальных обстоятельств вашей среды. Разрабатываются ли клиентские приложения сторонними разработчиками? В этом случае важно убедиться, что их программное обеспечение сертифицировано для поддержки платформы базы данных Postgres. Используются ли ваши внутренние приложения с помощью технологий реляционного сопоставления объектов, таких как Hibernate или Entity Framework? В некоторых случаях небольшое изменение конфигурации или файла может быть обязательным. И наоборот, если у вас есть значительные объемы запросов и инструкций базы данных, внедренных в код, может потребоваться выделить больше времени для соответствующего просмотра, изменения и проверки изменений кода.

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

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

Внимание

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

Проверка миграции

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

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

Настройка производительности

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

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

Хранилище запросов

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

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

Настройка индекса

Настройка индекса — это функция База данных Azure для PostgreSQL гибкого сервера, который может автоматически повысить производительность рабочей нагрузки, анализируя отслеживаемые запросы и предоставляя рекомендации по индексу. Он встроенный в База данных Azure для PostgreSQL гибкий сервер и основан на хранилище запросов функциональных возможностях. Настройка индекса анализирует рабочие нагрузки, отслеживаемые хранилище запросов, и создает рекомендации по индексу для повышения производительности проанализированной рабочей нагрузки или удаления повторяющихся или неиспользуемых индексов. Это достигается тремя уникальными способами:

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

Интеллектуальная настройка

Интеллектуальная настройка — это текущий процесс мониторинга и анализа, который не только узнает о характеристиках рабочей нагрузки, но и отслеживает текущую нагрузку и использование ресурсов, например ЦП или операций ввода-вывода в секунду. Это не беспокоит обычные операции рабочей нагрузки приложения. Этот процесс позволяет базе данных динамически адаптироваться к рабочей нагрузке путем распознавания текущего коэффициента больших двоичных объектов, производительности записи и эффективности контрольных точек в экземпляре. С помощью этих аналитических сведений интеллектуальная настройка развертывает действия настройки, повышающие производительность рабочей нагрузки и избегающие потенциальных ошибок. Эта функция состоит из двух функций автоматической настройки:

  • Настройка autovacuum: эта функция отслеживает коэффициент больших двоичных объектов и настраивает параметры автовакуума соответствующим образом. Он влияет как на текущее, так и прогнозируемое использование ресурсов, чтобы предотвратить нарушения рабочей нагрузки.
  • Записывает настройку: эта функция отслеживает объем и шаблоны операций записи, а также изменяет параметры, влияющие на производительность записи. Эти корректировки повышают производительность системы и надежность, что позволяет заранее предотвратить потенциальные осложнения.

Совет

Узнайте больше о применении интеллектуальной производительности для максимально эффективной работы платформ Azure Postgres.

Оптимизация облачных ресурсов

Оптимизация новой среды базы данных Azure Postgres означает кульминацию всех невероятных усилий и трудозатрат, которые привели к тому, что ваша команда прибудет к этой ключевой точке. Оптимизация облака может быть новой ответственностью, особенно при переходе из локальной или устаревшей среды базы данных. Облачная платформа Azure предоставляет новый и расширенный набор ценных и передовых функций масштабируемости, позволяя команде "набирать" точный объем ресурсов, функций и экономичности, чтобы соответствовать вашим потребностям организации сегодня и хорошо в будущем. Облачная оптимизация — это непрерывный процесс непрерывного уточнения среды, как показано в объективах рекомендаций, связанных с хорошо спроектированной платформой Майкрософт: оптимизация затрат, эффективность работы, эффективность производительности, надежность и безопасность.

Оптимизация затрат — это сочетание правильного размера ресурсов, применение стратегий для управления затратами и эффективное использование ресурсов.

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

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

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

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

Дополнительные сведения о пяти основных принципах реализации оптимизации облака см. в нашем центре Azure Well-Architected Framework (WAF).

Чтобы обеспечить соответствие этих основных компонентов развертыванию Azure Postgres, ознакомьтесь с нашим руководством по службе Azure Well-Architected Framework для PostgreSQL.