Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Миграция данных крайне важна для перемещения баз данных MySQL из локальных сред в База данных Azure для MySQL. В этой статье рассматривается использование MySQL Workbench, мощное средство, упрощающее миграцию. Используя MySQL Workbench, вы можете эффективно передавать данные, минимизируя время простоя и обеспечивая целостность данных. В этом руководстве описан пошаговый процесс настройки и выполнения миграции данных с помощью MySQL Workbench, выделения рекомендаций и потенциальных ошибок, чтобы избежать. Независимо от того, являетесь ли вы опытным администратором базы данных или не знакомы с миграцией баз данных, в этой статье приведены аналитические сведения и методы, необходимые для обеспечения простой и успешной миграции в Azure.
Необходимые компоненты
Перенос локальной среды MySQL в База данных Azure для MySQL: миграция данных
Настройка
Выполните все действия, описанные в руководстве по установке, чтобы создать среду для поддержки следующих шагов.
Настройка параметров сервера (источник)
В зависимости от типа выбранной миграции (в автономном режиме и в сети), необходимо оценить, будет ли вы изменять параметры сервера для поддержки быстрого исходящего трафика данных. Если вы работаете в Интернете, возможно, вам не придется ничего делать с параметрами сервера, так как вы, скорее всего, выполняете binlog репликацию и синхронизируете данные самостоятельно. Однако если вы выполняете автономную миграцию, после остановки трафика приложения можно переключить параметры сервера с поддержки рабочей нагрузки на поддержку экспорта.
Настройка параметров сервера (целевой объект)
Перед началом процесса импорта в БД Azure для MySQL проверьте параметры сервера. Параметры сервера можно получить и задать на портале Azure или путем вызова командлетов Azure PowerShell для MySQL.
Выполните следующий скрипт PowerShell, чтобы получить все параметры:
\[Net.ServicePointManager\]::SecurityProtocol = \[Net.SecurityProtocolType\]::Tls
12
Install-Module -Name Az.MySql
Connect-AzAccount
$rgName = "{RESOURCE\_GROUP\_NAME}";
$serverName = "{SERVER\_NAME}";
Get-AzMySqlConfiguration -ResourceGroupName $rgName -ServerName $serverName
То же самое можно сделать с помощью средства mysql. Для этого скачайте корневой сертификат центра сертификации в каталог c:\temp (если нужно, создайте этот каталог).
Примечание.
Этот сертификат будет изменяться. Дополнительные сведения о сертификатах см. в статье Настройка SSL-подключений в приложении для безопасного подключения к базе данных Azure для MySQL.
Выполните следующую команду в командной строке, но не забудьте изменить в ней токены:
mysql --host {servername}.mysql.database.azure.com --database mysql --user
{u sername}@{servername} -p --ssl-ca=c:\\temp\\BaltimoreCyberTrustRoot.crt.cer
-A -e "SHOW GLOBAL VARIABLES;" \> c:\\temp\\settings\_azure.txt
Будет создан файл settings_azure.txt, где можно изучить стандартные параметры сервера БД Azure для MySQL, которые представлены в приложении.
Чтобы обеспечить поддержку миграции, задайте для целевого экземпляра MySQL параметры, ускоряющие ввод данных. Перед началом переноса данных следует задать следующие параметры сервера:
max\_allowed\_packet— установите значение1073741824(то есть 1 ГБ) или значение размера самой крупной строки в базе данных, чтобы избежать переполнения буфера при обработке длинных строк. Возможно, этот параметр придется изменять при наличии строк с большими двоичными объектами, которые нужно извлекать или считывать.innodb\_buffer\_pool\_size— в разделе "Ценовая категория" на портале увеличьте категорию сервера до 32 виртуальных ядер с оптимизацией для операций в памяти на время миграции, чтобы увеличить значение innodb_buffer_pool_size. Innodb_buffer_pool_size можно увеличить только путем увеличения масштаба вычислений для сервера базы данных Azure для MySQL. Максимально допустимые значения для разных уровней указаны на странице параметров сервера в Базе данных Azure для MySQL. В системе с 32 виртуальными ядрами и оптимизацией для операций в памяти допускаются значения до132070244352.innodb\_io\_capacity&innodb\_io\_capacity\_max— измените параметр, чтобы9000улучшить использование операций ввода-вывода для оптимизации скорости миграции.max\_connections— если используется средство, создающее несколько потоков для увеличения пропускной способности, увеличьте количество соединений для поддержки этого средства. Значение по умолчанию —151, максимально допустимое —5000.Примечание.
Соблюдайте осторожность при выполнении масштабирования. Некоторые операции, например масштабирование хранилища, не могут быть отменены.
Эти параметры можно обновить с помощью следующих командлетов Azure PowerShell:
Install-Module -Name Az.MySql
$rgName = " {RESOURCE\_GROUP\_NAME}";
$serverName = "{SERVER\_NAME}";
Select-AzSubscription -Subscription "{SUBSCRIPTION\_ID}"
Update-AzMySqlConfiguration -Name max\_allowed\_packet -ResourceGroupName
$rgna me -ServerName $serverName -Value 1073741824
Update-AzMySqlConfiguration -Name innodb\_buffer\_pool\_size -ResourceGroupName
$rgname -ServerName $serverName -Value 16106127360
Update-AzMySqlConfiguration -Name innodb\_io\_capacity -ResourceGroupName
$rgna me -ServerName $serverName -Value 9000
Update-AzMySqlConfiguration -Name innodb\_io\_capacity\_max -ResourceGroupName
$ rgname -ServerName $serverName -Value 9000
\#required if You've functions
Update-AzMySqlConfiguration -Name log\_bin\_trust\_function\_creators
-ResourceGr oupName $rgname -ServerName $serverName -Value ON
Data
Выбор средства
После переноса объектов базы данных и пользователей из исходной системы можно начинать миграцию. Базы данных, работающие в службе MySQL версии 8.0, не могут использовать Azure DMS для миграции рабочей нагрузки. Вместо этого для миграции следует использовать MySQL Workbench.
Действия по импорту и экспорту вручную
Откройте MySQL Workbench и подключитесь к корневому пользователю локальной базы данных.
В разделе **Управление** выберите **Экспорт данных**. Выберите схему reg_app.
В области Объекты для экспорта выберите Дамп хранимых процедур и функций, Дамп событий и Дамп триггеров.
В разделе Параметры экспорта выберите Экспорт в автономный файл.
Также установите флажок Включить создание схемы. На приведенном ниже изображении представлена правильная конфигурация mysqldump.
Тестирование
Если какие-то из этих параметров отсутствуют, их отображению обычно мешает область вывода. Измените макет редактора соответствующим образом.
Тестирование
Выберите вкладку Ход экспорта.
Щелкните Start Export (Начать экспорт) и убедитесь, что MySQL Workbench выполняет вызовы к средству
mysqldump.Откройте только что созданный скрипт экспорта.
Найдите все инструкции
DEFINERи укажите в них допустимого пользователя или удалите их полностью.
Примечание.
Это можно сделать, передав --skip-definer в команду mysqldump. В MySQL Workbench такой вариант невозможен, и эти строки придется удалять вручную в командах экспорта. Здесь мы выделили четыре элемента для удаления, но у вас могут появиться и другие элементы, наличие которых может привести к ошибке при миграции на другую версию MySQL (например, новые зарезервированные слова).
Найдите инструкции
SET GLOBALи укажите в них допустимого пользователя или удалите их полностью.Убедитесь, что
sql\_modeне задано значениеNO\_AUTO\_CREATE\_USER.Удалите функцию
hello\_world.В MySQL Workbench создайте новое подключение к БД Azure для MySQL.
В качестве имени узла введите полное DNS-имя сервера (например,
servername.mysql.database.azure.com).Введите имя пользователя (например,
sqlroot@servername).Перейдите на вкладку SSL.
Чтобы открыть SSL-файл центра сертификации, в окне обзора найдите файл ключа BaltimoreCyberTrustRoot.crt.cer.
Щелкните Проверить подключение и убедитесь, что подключение успешно завершается.
Нажмите ОК.
Откроется диалоговое окно подключения к MySQL.
Щелкните Файл >Открыть скрипт SQL.
Перейдите к файлу дампа и выберите Открыть.
Выберите Выполнить.
Обновление приложений для поддержки SSL
Переключитесь на API Java Server в Visual Studio Code.
Откройте файл launch.json.
В поле DB_CONNECTION_URL (URL-адрес подключения к базе данных) укажите
jdbc:mysql://serverDNSname:3306/reg\_app?useUnicode=true\&useJDBCCompliantT imezoneShift=true\&useLegacyDatetimeCode=false\&serverTimezone=UTC\&verifySe rverCertificate=true\&useSSL=true\&requireSSL=true\&noAccessToProcedureBodie s=true.. Обратите внимание на дополнительные параметры SSL.Обновите значение DB_USER_NAME (Имя пользователя базы данных) на conferenceuser@servername.
Запустите конфигурацию отладки и убедитесь, что приложение работает локально с новой базой данных.
Восстановление параметров сервера
Указанные ниже параметры можно изменить на целевом экземпляре БД Azure для MySQL. Эти параметры можно настроить на портале Azure или с помощью командлетов Azure PowerShell для MySQL.
$rgName = "YourRGName";
$serverName = "servername";
Update-AzMySqlConfiguration -Name max\_allowed\_packet -ResourceGroupName
$rgna me -ServerName $serverName -Value 536870912
Update-AzMySqlConfiguration -Name innodb\_buffer\_pool\_size -ResourceGroupName
$rgname -ServerName $serverName -Value 16106127360
Update-AzMySqlConfiguration -Name innodb\_io\_capacity -ResourceGroupName $rgna
me -ServerName $serverName -Value 200
Update-AzMySqlConfiguration -Name innodb\_io\_capacity\_max -ResourceGroupName
$ rgname -ServerName $serverName -Value 2000
Изменение строки подключения для API Java
- Используйте следующие команды, чтобы изменить строку подключения для API Java Службы приложений.
$rgName = "YourRGName";
$app_name = "servername";
az webapp config appsettings set -g $rgName -n $app_name
--settings DB_CONNECTION_URL={DB_CONNECTION_URL}
Примечание.
Помните, что для настройки строки подключения можно использовать портал.
- Перезапустите API Службы приложений.
az webapp restart -g $rgName -n $app\_name
Итак, вы успешно завершили миграцию из локальной службы в Базу данных Azure для MySQL!