Определение параметров средства миграции

Завершено

Существует множество вариантов миграции с сервера PostgreSQL на гибкий сервер Базы данных Azure для PostgreSQL. Существуют собственные средства PostgreSQL, такие как pg_dump, pgadmin и pg_restore. Существуют облачные службы Microsoft Azure, такие как Database Migration Service и вариант миграции в Базе данных Azure для PostgresSQL — гибкий сервер, который может в значительной степени автоматизировать общий процесс передачи данных из источника в целевой.

Гибкий сервер Базы данных Azure для PostgreSQL — миграция

В службе гибкого сервера Базы данных Azure для PostgreSQL есть собственная возможность для поддержки миграции баз данных из других экземпляров PostgreSQL в службу на основе Azure. Этот параметр предназначен для автономной миграции баз данных из источника в целевой. Чтобы использовать этот параметр, необходимо использовать средства pg_dumpall и psql, рассмотренные ранее, для переноса баз данных объектов уровня сервера на гибкий сервер.

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

Проекты миграции

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

снимок экрана портала Azure, показывающий выбор базы данных проекта миграции.

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

снимок экрана портала Azure, показывающий проверку и статус миграции базы данных.

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

Средства PostgreSQL

Здесь мы рассмотрим основные средства, которые можно использовать для переноса данных с сервера PostgreSQL на гибкий сервер Базы данных Azure для PostgreSQL.

pgcopydb

Pgcopydb — это проект с открытым исходным кодом, который может автоматизировать процесс копирования базы данных между серверами PostgreSQL. Существует несколько преимуществ использования pgcopydb по сравнению с собственным инструментом, предоставляемым при установке PostgreSQL, к этим преимуществам относятся.

  • Удаление необходимости в промежуточных файлах с помощью pg_backup и pg_restore.
  • Создайте параллелизм индекса для параллелизации создания индексов в таблицах с помощью возможности synchronize__seqscans в PostgreSQL.
  • Многопоточное копирование таблиц для секционирования данных и параллельной передачи больших таблиц.
  • Фиксация изменений данных для синхронизации данных с целью минимизации необходимости в длительных окнах простоя.

Существует два основных варианта в pgcopydb, которые можно использовать для переноса данных с исходного сервера на целевой. Эти параметры — клон и копия.

Клон pgcopydb

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

pgcopydb: копирование данных

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

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

pgAdmin

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

снимок экрана pgAdmin с меню с различными параметрами администратора.

pg_dump, pg_restore и psql

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

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


pg_dump -O --host=MyServerName --port=5432 --username=adminuser --dbname=AdventureWorks --schema-only > adventureWorks.sql

psql --host=MyFlexibleServer --username=demo --dbname=AdventureWorks < adventureWorks.sql

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

В следующем примере показано, как создать дамп базы данных в пользовательском формате и восстановить его на другом сервере.


pg_dump -Fc --host=MyServerName --port=5432 --username=adminuser --dbname=AdventureWorks > db.dump

pg_restore -Fc --host=MyServerName --port=5432 --create --username=adminuser --dbname=AdventureWorks db.dump

pg_dumpall

В то время как pg_dump используется для дампа одной базы данных, pg_dumpall используется для дампа всех баз данных в один файл скрипта, который psql считывает в новый экземпляр PostgreSQL.

Кроме того, pg_dumpall можно использовать для создания файлов скриптов для глобальных объектов уровня сервера, таких как роли, от которых могут зависеть базы данных при переносе между серверами.