Spec-Zone.ru › MariaDB

Переход между основными версиями MariaDB

MariaDB разработана для лёгкого обновления. Вы должны без проблем обновить с любой предыдущей версии MariaDB до последней (например, с MariaDB 10.3.x до MariaDB 10.11.x), обычно за несколько секунд. Это также в основном верно для любой версии MySQL < 8.0 до MariaDB 10.4 и выше.

Обновления обычно просты, потому что:

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

Корпорация MariaDB регулярно проводит тесты, чтобы проверить, что можно обновить с MariaDB 5.5 до последней версии MariaDB без проблем. Все более старые версии также должны работать (пока движки хранения, которые вы использовали, всё ещё существуют).

Обратите внимание, что если вы используете Кластер MariaDB Galera, вам нужно следовать инструкциям по обновлению Galera!

Требования для обновления между основными версиями

  • Пройдите по отдельным заметкам об обновлении версий (перечисленных ниже), чтобы найти любые значительные изменения или параметры конфигурации, которые изменились.
  • Убедитесь, что целевая версия MariaDB поддерживает движки хранения, которые вы используете. Например, в 10.5 TokuDB не поддерживается.
  • Сделайте резервную копию базы данных (на всякий случай). По крайней мере, сделайте копию каталога данных mysql с помощью mariadb-dump --add-drop-table mysql (называется mysqldump в MariaDB 10.3 и более ранних версиях), так как большинство изменений при обновлении выполняются там (добавление новых полей и новых системных таблиц и т. д.).
  • Безопасно выключите сервер. Это необходимо, потому что даже если файлы данных совместимы между версиями, журналы восстановления могут быть несовместимы.
    • Убедитесь, что переменная innodb_fast_shutdown не равна 2 (быстрое аварийное завершение) или 3. Значение по умолчанию для этой переменной равно 1. Самый безопасный и рекомендуемый вариант для обновлений — 0. Время завершения может быть заметно больше при значении 0, чем при значении 1, так как для 0 выполняется гораздо больше действий очистки, однако при подготовке к обновлению это не должно вызывать проблем.
    • innodb_force_recovery должно быть меньше 3.

Обратите внимание, что rpms не поддерживают обновление между основными версиями, только между второстепенными, например, с 10.4.1 до 10.4.2. Если вы используете rpms, вам следует удалить старые rpms MariaDB и установить новые rpms MariaDB перед запуском mariadb-upgrade. Обратите внимание, что при установке новых rpms mariadb-upgrade может быть запущен автоматически. Запуск mariadb-upgrade много раз не проблема.

Рекомендованные шаги

  • Если у вас есть настройка основной-реплики, сначала обновите одну реплику, а после проверки ее корректной работы обновите остальные реплики (если таковые имеются). Затем обновите одну реплику до основной, обновите основную и переключите реплику на основную.
  • Если у вас нет настройки основной-реплики, сделайте резервную копию, выключите MariaDB и выполните обновление.

Пошаговые инструкции по обновлению

  • Обновите двоичные файлы и библиотеки MariaDB, предпочтительно без запуска MariaDB.
  • Если процесс MariaDB-сервера, mysqld или mariadbd, не был запущен во время обновления, запустите его, выполнив mysqld --skip-grant-tables. Это может вызывать некоторые предупреждения о том, что некоторые системные таблицы не обновлены, но пока вы можете их игнорировать, так как mariadb-upgrade исправит это.
  • Запустите mariadb-upgrade
  • Перезапустите сервер MariaDB.

Работа, выполняемая mariadb-upgrade

Основная работа при обновлении выполняется с помощью mariadb-upgrade. Основные действия:

  • Обновление системных таблиц в базе данных mysql до последней версии. Это очень быстро.
  • mariadb-upgrade также выполняет mariadb-check --check-upgrade, чтобы проверить, были ли изменения кодировок между основными версиями. Это пересоздаёт индексы в старых таблицах, которые используют любые из изменённых кодировок. Это может занять некоторое время, если есть много таблиц или много таблиц, которые использовали изменённую кодировку. Последний раз кодировка менялась в MariaDB/MySQL 5.1.23.

Работа после обновления

Проверьте журнал ошибок MariaDB на наличие проблем во время обновления. Если в журналах есть какие-либо предупреждения, постарайтесь их устранить!

Общие предупреждения/ошибки:

  • Использование устаревших параметров. В этом случае удалите их из своих файлов my.cnf.
  • Проверьте руководство по новым функциям, которые были добавлены с момента вашей последней версии MariaDB.
  • Проверьте, работает ли ваше приложение, как и раньше. Основное отличие заключается в том, что из-за улучшений оптимизатора ваше приложение должно работать лучше, чем раньше, но в некоторых редких случаях оптимизатор может что-то сделать неправильно. В этом случае вы можете попробовать использовать explain, отладочную информацию оптимизатора или optimizer_switch для исправления запросов.

Если что-то пойдёт не так

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

Восстановление после катастрофы

В маловероятном случае возникновения проблем, вы можете попробовать следующее:

  • Удалите таблицы InnoDB из каталога данных mysql. Они это:
    • gtid_slave_pos
    • innodb_table_stats
    • innodb_index_stats
    • transaction_registry
  • Переместите каталог данных mysql в mysql-old и запустите mariadb-install-db, чтобы создать новый.
  • После этого вам нужно будет добавить обратно ваших старых пользователей.
  • После завершения удалите каталог данных mysql-old.

Понижение версии

Сервер MariaDB не предназначен для понижения версии. Однако, в большинстве случаев, если вы не выполняли никаких команд ALTER TABLE или CREATE TABLE и у вас есть mariadb-dump вашей старой базы данных mysql, вы должны иметь возможность понизить версию до предыдущей версии, выполнив следующие действия:

  • Выполните безопасное завершение. Для этого особого случая вам нужно установить innodb_fast_shutdown в 0 перед отключением нового MariaDB-сервера, чтобы убедиться, что нет журналов перегенерации или отмены, которые нужно применить на пониженной версии сервера.
  • Удалите таблицы в базе данных mysql (если вы не использовали параметр --add-drop-table для mariadb-dump)
  • Удалите новую установку MariaDB
  • Установите старую версию MariaDB
  • Запустите сервер с mysqld --skip-grant-tables
  • Установите старую базу данных mysql
  • Выполните в клиенте mariadb FLUSH PRIVILEGES

См. также

  • Обновление с MySQL на MariaDB
  • Обновление с MariaDB 10.11 на MariaDB 11.0
  • Обновление с MariaDB 10.6 на MariaDB 10.11
  • Обновление с MariaDB 10.6 на MariaDB 10.7
  • Обновление с MariaDB 10.5 на MariaDB 10.6
  • Обновление с MariaDB 10.4 на MariaDB 10.5
  • Обновление с MariaDB 10.3 на MariaDB 10.4
  • Обновление с MariaDB 10.2 на MariaDB 10.3
  • Инструкции по обновлению Galera
  • innodb_fast_shutdown
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проходит предварительную проверку MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают точку зрения MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/upgrading-between-major-mariadb-versions/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API