Spec-Zone.ru › MySQL 5.7

21.5.24.1 Восстановление резервной копии NDB в кластер NDB другой версии

  • 21.5.24.1.1 Восстановление резервной копии NDB в кластер NDB предыдущей версии
  • 21.5.24.1.2 Восстановление резервной копии NDB в кластер NDB более поздней версии

В следующих двух разделах описано восстановление резервной копии NDB в кластер NDB другой версии, нежели та, в которой резервная копия была создана.

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

Также рекомендуется ознакомиться с и разделом 2.10.3 «Изменения в MySQL 5.7», чтобы узнать о других изменениях между NDB 8.0 и предыдущими версиями кластера NDB, которые могут быть актуальны для вашей ситуации.

21.5.24.1.1 Восстановление резервной копии NDB в кластер NDB предыдущей версии

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

  • Таблицы, созданные в NDB 8.0, по умолчанию используют кодировку символов utf8mb4_ai_ci, которая недоступна в NDB 7.6 и более ранних версиях, и поэтому не могут быть прочитаны бинарным файлом ndb_restore из одной из этих более ранних версий. В таких случаях необходимо изменить любые таблицы, использующие utf8mb4_ai_ci, чтобы они использовали кодировку символов, поддерживаемую в более старой версии, перед выполнением резервного копирования.

  • Из-за изменений в том, как MySQL Server и NDB обрабатывают метаданные таблиц, таблицы, созданные или измененные с помощью включенного бинарного файла MySQL Server из NDB 8.0.14 или более поздних версий, не могут быть восстановлены с помощью ndb_restore в более раннюю версию кластера NDB. Такие таблицы используют файлы .sdi, которые не распознаются более ранними версиями mysqld.

    Резервная копия, созданная в NDB 8.0.14 или более поздних версиях таблиц, которые были созданы в NDB 8.0.13 или более ранних версиях и не были изменены после модернизации до NDB 8.0.14 или более поздних версий, должна быть восстановима в более ранних версиях кластера NDB.

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

  • Зашифрованные резервные копии, созданные в NDB 8.0.22 и более поздних версиях, не могут быть восстановлены с помощью ndb_restore из NDB 8.0.21 или более ранних версий.

  • Привилегия не поддерживается в версиях NDB до 8.0.18.

  • Кластер NDB 8.0.18 и более поздние версии поддерживают до 144 узлов данных, в то время как более ранние версии поддерживают только 48 узлов данных. См. раздел 21.5.24.2.1 «Восстановление на меньшее количество узлов, чем изначальное» для получения информации о ситуациях, в которых это несовпадение приводит к проблемам.

21.5.24.1.2 Восстановление резервной копии NDB в кластер NDB более поздней версии

В общем случае, резервная копия, созданная с помощью клиента ndb_mgm START BACKUP в более старой версии NDB, должна быть восстанавливаема в более новой версии, при условии, что вы используете бинарный файл ndb_restore, который входит в состав новой версии. (Возможно использование более старой версии ndb_restore, но это не рекомендуется.) Дополнительные потенциальные проблемы перечислены ниже:

  • При восстановлении метаданных из резервной копии (--restore-meta опция), ndb_restore обычно пытается точно воспроизвести схему таблицы, такой как она была в момент создания резервной копии.

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

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

  • Таблицы, использующие старые временные типы, которые не поддерживали дробные секунды (использовались до MySQL 5.6.4 и NDB 7.3.31), не могут быть восстановлены в NDB 8.0 с помощью ndb_restore. Вы можете проверить такие таблицы с помощью CHECK TABLE, а затем, при необходимости, обновить их до более нового формата временных столбцов с помощью REPAIR TABLE в клиенте mysql; это необходимо сделать до создания резервной копии. См. , для получения дополнительной информации.

    Вы также можете восстановить такие таблицы, используя дамп, созданный с помощью mysqldump.

  • Таблицы распределённых грантов, созданные в NDB 7.6 и более ранних версиях, не поддерживаются в NDB 8.0. Такие таблицы могут быть восстановлены в кластер NDB 8.0, но они не влияют на контроль доступа.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/ndb-restore-to-different-version.html

Spec-Zone.ru

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