21.5.24.1 Восстановление резервной копии 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.