Spec-Zone.ru › MySQL 5.7

21.5.24 ndb_restore — Восстановление резервной копии кластера NDB

  • 21.5.24.1 Восстановление резервной копии NDB в кластер другой версии
  • 21.5.24.2 Восстановление в кластер с другим количеством узлов данных

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

Примечание

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

ndb_restore необходимо выполнить один раз для каждого файла резервной копии, созданного командой START BACKUP (см. Раздел 21.6.8.2, «Использование клиента управления кластером NDB для создания резервной копии»). Это соответствует количеству узлов данных в кластере на момент создания резервной копии.

Примечание

Перед использованием ndb_restore рекомендуется запустить кластер в режиме одного пользователя, если вы не восстанавливаете несколько узлов данных параллельно. Дополнительную информацию см. в Разделе 21.6.6, «Режим одного пользователя для кластера NDB».

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

Таблица 21.38 Параметры командной строки, используемые с программой ndb_restore

Таблица 21.38 Параметры командной строки, используемые с программой ndb_restore
Формат Описание Добавлен, устарел или удален

--allow-pk-changes[=0|1]

Разрешить изменения набора столбцов, образующих первичный ключ таблицы

ДОБАВЛЕН: NDB 7.6.14

--append

Добавить данные в файл с табуляцией

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--backup-path=path

Путь к каталогу резервных файлов

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--backupid=#,

-b #

Восстановление из резервной копии с этим идентификатором

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--character-sets-dir=path

Каталог, содержащий наборы символов

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--connect=connection_string,

-c connection_string

Псевдоним для --connectstring

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--connect-retries=#

Количество попыток повторного подключения перед отказом

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--connect-retry-delay=#

Количество секунд ожидания между попытками связаться с сервером управления

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--connect-string=connection_string,

-c connection_string

То же, что и --ndb-connectstring

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--core-file

Создать файл core при ошибке; используется при отладке

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--defaults-extra-file=path

Прочитать указанный файл после чтения глобальных файлов

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--defaults-file=path

Прочитать параметры по умолчанию только из указанного файла

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--defaults-group-suffix=string

Также читать группы с concat(group, suffix)

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--disable-indexes

Игнорировать индексы из резервной копии; может сократить время, необходимое для восстановления данных

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--dont-ignore-systab-0,

-f

Не игнорировать системную таблицу во время восстановления; только экспериментально; не для использования в производстве

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--exclude-databases=list

Список одной или нескольких баз данных для исключения (включает те, которые не указаны)

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--exclude-intermediate-sql-tables[=TRUE|FALSE]

Не восстанавливать промежуточные таблицы (имеющие имена, начинающиеся с '#sql-'), оставшиеся от копирования операций ALTER TABLE; укажите FALSE для восстановления таких таблиц

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--exclude-missing-columns

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

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--exclude-missing-tables

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

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--exclude-tables=list

Список одной или нескольких таблиц для исключения (включает те, которые находятся в той же базе данных и не указаны); каждое имя таблицы должно включать имя базы данных

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--fields-enclosed-by=char

Поля заключены в этот символ

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--fields-optionally-enclosed-by

Поля необязательно заключены в этот символ

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--fields-terminated-by=char

Поля завершаются этим символом

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--help,

-?

Отобразить текст справки и выйти

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--hex

Выводить двоичные типы в шестнадцатеричном формате

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--ignore-extended-pk-updates[=0|1]

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

ДОБАВЛЕН: NDB 7.6.14

--include-databases=list

Список одной или нескольких баз данных для восстановления (исключает те, которые не указаны)

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--include-tables=list

Список одной или нескольких таблиц для восстановления (исключает те, которые находятся в той же базе данных и не указаны); каждое имя таблицы должно включать имя базы данных

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--lines-terminated-by=char

Строки завершаются этим символом

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--login-path=path

Прочитать указанный путь из файла входа

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--lossy-conversions,

-L

Разрешить убывающие преобразования значений столбцов (приведение типов или изменения знака) при восстановлении данных из резервной копии

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--no-binlog

Если mysqld подключен и использует двоичное протоколирование, не записывать восстановленные данные

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--no-defaults

Не читать параметры по умолчанию из любого файла параметров, кроме файла входа

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--no-restore-disk-objects,

-d

Не восстанавливать объекты, относящиеся к данным диска

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--no-upgrade,

-u

Не обновлять тип массива для атрибутов varsize, которые не изменяют размер данных VAR, и не изменять атрибуты столбцов

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--ndb-connectstring=connection_string,

-c connection_string

Установить строку подключения для подключения к ndb_mgmd. Синтаксис: "[nodeid=id;][host=]hostname[:port]". Перезаписывает записи в NDB_CONNECTSTRING и my.cnf

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--ndb-mgmd-host=connection_string,

-c connection_string

То же, что и --ndb-connectstring

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--ndb-nodegroup-map=map,

-z

Указать карту сопоставления групп узлов; не используется, не поддерживается

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--ndb-nodeid=#

Установить идентификатор узла для этого узла, переопределяя любой ID, заданный --ndb-connectstring

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--ndb-optimized-node-selection

Включить оптимизации для выбора узлов для транзакций. Включено по умолчанию; используйте --skip-ndb-optimized-node-selection для отключения

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--nodeid=#,

-n #

Идентификатор узла, на котором была сделана резервная копия

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--num-slices=#

Количество срезов для применения при восстановлении по срезам

ДОБАВЛЕН: NDB 7.6.13

--parallelism=#,

-p #

Количество параллельных транзакций, используемых при восстановлении данных

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--preserve-trailing-spaces,

-P

Разрешить сохранение хвостовых пробелов (включая заполнение) при продвижении типов строк с фиксированной шириной к типам переменной ширины

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--print

Вывести метаданные, данные и журнал в стандартный вывод (эквивалентно --print-meta --print-data --print-log)

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--print-data

Вывести данные в стандартный вывод

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--print-defaults

Вывести список аргументов программы и выйти

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--print-log

Вывести журнал в стандартный вывод

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--print-meta

Вывести метаданные в стандартный вывод

(Поддерживается во всех выпусках NDB, основанных на MySQL 5.7)

--print-sql-log

Запись SQL журнала в стандартный вывод

ДОБАВЛЕНО: NDB 7.5.4

--progress-frequency=#

Печать статуса восстановления через заданное количество секунд

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--promote-attributes,

-A

Разрешить продвижение атрибутов при восстановлении данных из резервной копии

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--rebuild-indexes

Вызывает многопоточное восстановление упорядоченных индексов, найденных в резервной копии; количество потоков определяется настройкой BuildIndexThreads

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--remap-column=string

Применить смещение к значению указанного столбца с использованием указанной функции и аргументов. Формат [db].[tbl].[col]:[fn]:[args]; см. документацию для получения подробностей

ДОБАВЛЕНО: NDB 7.6.14

--restore-data,

-r

Восстановление данных таблицы и журналов в NDB Cluster с использованием NDB API

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--restore-epoch,

-e

Восстановление информации о времени эпохи в таблицу состояния; полезно в кластере реплик для запуска репликации; обновляет или вставляет строку в mysql.ndb_apply_status с идентификатором 0

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--restore-meta,

-m

Восстановление метаданных в NDB Cluster с использованием NDB API

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--restore-privilege-tables

Восстановление таблиц привилегий MySQL, которые были ранее перемещены в NDB

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--rewrite-database=string

Восстановление в базу данных с другим именем; формат olddb,newdb

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--skip-broken-objects

Игнорирование отсутствующих таблиц BLOB в файле резервной копии

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--skip-table-check,

-s

Пропуск проверки структуры таблицы во время восстановления

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--skip-unknown-objects

Объекты схемы, не распознаваемые ndb_restore, будут пропущены при восстановлении резервной копии, созданной из более новой версии NDB в более старую версию

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--slice-id=#

Идентификатор раздела при восстановлении по разделам

ДОБАВЛЕНО: NDB 7.6.13

--tab=path,

-T path

Создание текстового файла с разделителем табуляция для каждой таблицы в предоставленном пути

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--timestamp-printouts{=true|false}

Добавление временных меток ко всем сообщениям журнала информации, ошибок и отладки

ДОБАВЛЕНО: NDB 7.5.30, 5.7.41-ndb-7.6.26

--usage,

-?

Отображение справки и выход; аналогично --help

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--verbose=#

Уровень подробности вывода

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--version,

-V

Отображение информации о версии и выход

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)


  • --allow-pk-changes

    Формат командной строки --allow-pk-changes[=0|1]
    Введено 5.7.29-ndb-7.6.14
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 1

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

    Следующие изменения в определениях первичных ключей поддерживаются --allow-pk-changes:

    • Расширение первичного ключа: Столбец без значения NULL, который существует в схеме таблицы в резервной копии, становится частью первичного ключа таблицы в базе данных.

      Важно

      При расширении первичного ключа таблицы, все столбцы, которые становятся частью первичного ключа, не должны обновляться во время создания резервной копии; любые такие обновления, обнаруженные ndb_restore, приводят к сбою операции восстановления, даже если изменение значения не происходит. В некоторых случаях, возможно, можно переопределить это поведение, используя параметр --ignore-extended-pk-updates; см. описание этого параметра для получения дополнительной информации.

    • Сокращение первичного ключа (1): Столбец, который уже является частью первичного ключа таблицы в схеме резервной копии, больше не является частью первичного ключа, но остается в таблице.

    • Сокращение первичного ключа (2): Столбец, который уже является частью первичного ключа таблицы в схеме резервной копии, полностью удаляется из таблицы.

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

    Основные шаги в типичном сценарии с изменениями схемы первичного ключа перечислены здесь:

    1. Восстановить схемы таблиц с помощью ndb_restore --restore-meta

    2. Изменить схему до желаемой или создать её

    3. Создать резервную копию желаемой схемы

    4. Запустить ndb_restore --disable-indexes с резервной копией из предыдущего шага, чтобы удалить индексы и ограничения

    5. Запустить ndb_restore --allow-pk-changes (возможно, вместе с --ignore-extended-pk-updates, --disable-indexes, и, возможно, другими необходимыми параметрами) для восстановления всех данных

    6. Запустить ndb_restore --rebuild-indexes с резервной копией, созданной с желаемой схемой, чтобы перестроить индексы и ограничения

    При расширении первичного ключа ndb_restore может использовать временный уникальный вторичный индекс во время операции восстановления для сопоставления старого первичного ключа с новым. Такой индекс создается только при необходимости для применения событий из журнала резервной копии к таблице, у которой расширен первичный ключ. Этот индекс называется NDB$RESTORE_PK_MAPPING и создается для каждой требующей этого таблицы; он может быть, при необходимости, совмещен несколькими экземплярами ndb_restore, работающими параллельно. (Запуск ndb_restore --rebuild-indexes в конце процесса восстановления приводит к удалению этого индекса.)

  • --append

    Формат командной строки --append

    При использовании с параметрами --tab и --print-data, это приводит к добавлению данных в любые существующие файлы с теми же именами.

  • --backup-path=dir_name

    Формат командной строки --backup-path=path
    Тип Имя каталога
    Значение по умолчанию ./

    Путь к каталогу резервной копии обязателен; он передается в ndb_restore с помощью параметра --backup-path и должен включать подкаталог, соответствующий идентификатору резервной копии, которую необходимо восстановить. Например, если DataDir узла данных равен /var/lib/mysql-cluster, то каталог резервной копии — /var/lib/mysql-cluster/BACKUP, а файлы резервной копии с идентификатором 3 находятся в /var/lib/mysql-cluster/BACKUP/BACKUP-3. Путь может быть абсолютным или относительным к каталогу, в котором находится исполняемый файл ndb_restore, и может дополнительно начинаться с backup-path=.

    Можно восстановить резервную копию в базе данных с конфигурацией, отличной от той, из которой она была создана. Например, предположим, что резервная копия с идентификатором 12, созданная в кластере с двумя узлами хранения данных с идентификаторами узлов 2 и 3, должна быть восстановлена в кластере с четырьмя узлами. Тогда ndb_restore необходимо запустить дважды — один раз для каждого узла хранения данных в кластере, где была создана резервная копия. Однако ndb_restore не всегда может восстанавливать резервные копии, созданные в кластере, работающем на одной версии MySQL, в кластере, работающем на другой версии MySQL. Дополнительные сведения см. в разделе 21.3.7, «Обновление и понижение версии кластера NDB».

    Важно

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

    Например, чтобы восстановить резервную копию кластера, созданную в кластере, работающем под управлением NDB Cluster 7.5.36, в кластере, работающем под управлением NDB Cluster 7.4.39, необходимо использовать ndb_restore, который поставляется с дистрибутивом NDB Cluster 7.5.36.

    Для более быстрого восстановления данные могут восстанавливаться параллельно, при условии, что доступно достаточное количество подключений к кластеру. То есть при восстановлении на нескольких узлах параллельно, для каждого параллельного процесса ndb_restore должен быть доступен раздел [api] или [mysqld] в файле конфигурации кластера config.ini. Однако файлы данных всегда должны применяться до журналов.

  • --backupid=#, -b

    Формат командной строки --backupid=#
    Тип Числовой
    Значение по умолчанию none

    Этот параметр используется для указания идентификатора или порядкового номера резервной копии и совпадает с номером, отображаемым клиентом управления в сообщении Backup backup_id completed, отображаемом по завершении резервного копирования. (См. раздел 21.6.8.2, «Использование клиента управления кластером NDB для создания резервной копии».)

    Важно

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

    В NDB 7.5.13 и более поздних версиях, а также в NDB 7.6.9 и более поздних версиях этот параметр является обязательным.

  • --character-sets-dir

    Формат командной строки --character-sets-dir=path

    Каталог, содержащий кодировки символов.

  • --connect, -c

    Формат командной строки --connect=connection_string
    Тип Строка
    Значение по умолчанию localhost:1186

    Псевдоним для --ndb-connectstring.

  • --connect-retries

    Формат командной строки --connect-retries=#
    Тип Целое число
    Значение по умолчанию 12
    Минимальное значение 0
    Максимальное значение 12

    Количество попыток повторного подключения перед отказом.

  • --connect-retry-delay

    Формат командной строки --connect-retry-delay=#
    Тип Целое число
    Значение по умолчанию 5
    Минимальное значение 0
    Максимальное значение 5

    Количество секунд ожидания между попытками связаться с сервером управления.

  • --connect-string

    Формат командной строки --connect-string=connection_string
    Тип Строка
    Значение по умолчанию [none]

    То же, что и --ndb-connectstring.

  • --core-file

    Формат командной строки --core-file

    Записать файл дампа памяти при ошибке; используется при отладке.

  • --defaults-extra-file

    Формат командной строки --defaults-extra-file=path
    Тип Строка
    Значение по умолчанию [none]

    Прочитать данный файл после того, как будут прочитаны глобальные файлы.

  • --defaults-file

    Формат командной строки --defaults-file=path
    Тип Строка
    Значение по умолчанию [none]

    Прочитать параметры по умолчанию только из данного файла.

  • --defaults-group-suffix

    Формат командной строки --defaults-group-suffix=string
    Тип Строка
    Значение по умолчанию [none]

    Также читать группы с concat(group, suffix).

  • --disable-indexes

    Формат командной строки --disable-indexes

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

    Начиная с NDB 7.5.24 и NDB 7.6.20, этот параметр также удаляет все внешние ключи, указанные в резервной копии.

  • --dont-ignore-systab-0, -f

    Командная строка --dont-ignore-systab-0

    Обычно, при восстановлении данных и метаданных таблицы, ndb_restore игнорирует копию системной таблицы NDB, которая присутствует в резервной копии. Параметр --dont-ignore-systab-0 заставляет восстановить системную таблицу. Этот параметр предназначен только для экспериментального и исследовательского использования и не рекомендуется в рабочей среде.

  • --exclude-databases=db-list

    Командная строка --exclude-databases=list
    Тип Строка
    Значение по умолчанию

    Список баз данных, разделенных запятыми, которые не должны быть восстановлены.

    Этот параметр часто используется в сочетании с --exclude-tables; для получения дополнительной информации и примеров см. описание этого параметра.

  • --exclude-intermediate-sql-tables[=TRUE|FALSE]

    Командная строка --exclude-intermediate-sql-tables[=TRUE|FALSE]
    Тип Булево
    Значение по умолчанию TRUE

    При выполнении операций копирования ALTER TABLE, mysqld создаёт промежуточные таблицы (с именами, начинающимися с #sql-). При установке TRUE параметр --exclude-intermediate-sql-tables предотвращает ndb_restore от восстановления таких таблиц, которые могли остаться после этих операций. По умолчанию этот параметр TRUE.

  • --exclude-missing-columns

    Командная строка --exclude-missing-columns

    Используя этот параметр, можно восстановить только выбранные столбцы таблицы, что заставляет ndb_restore игнорировать любые отсутствующие столбцы в восстанавливаемых таблицах по сравнению с версиями этих таблиц в резервной копии. Этот параметр применяется ко всем восстанавливаемым таблицам. Если вы хотите применить этот параметр только к выбранным таблицам или базам данных, вы можете использовать его в сочетании с одним или несколькими параметрами --include-* или --exclude-*, описанными в другом месте этого раздела, для этого, а затем восстановить данные в оставшихся таблицах с помощью дополнительного набора этих параметров.

  • --exclude-missing-tables

    Командная строка --exclude-missing-tables

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

  • --exclude-tables=table-list

    Командная строка --exclude-tables=list
    Тип Строка
    Значение по умолчанию

    Список одной или нескольких таблиц для исключения; каждая ссылка на таблицу должна включать имя базы данных. Часто используется вместе с --exclude-databases.

    Когда используются --exclude-databases или --exclude-tables, исключаются только те базы данных или таблицы, которые указаны в параметре; все остальные базы данных и таблицы восстанавливаются командой ndb_restore.

    Эта таблица показывает несколько вызовов ndb_restore с использованием параметров --exclude-* (другие необходимые параметры опущены для ясности), и как эти параметры влияют на восстановление из резервной копии NDB Cluster:

    Таблица 21.39 Несколько вызовов ndb_restore с использованием параметров --exclude-*, и их влияние на восстановление из резервной копии NDB Cluster.

    Таблица 21.39 Несколько вызовов ndb_restore с использованием параметров --exclude-* и их влияние на восстановление из резервной копии NDB Cluster.
    Параметр Результат
    --exclude-databases=db1 Восстанавливаются все таблицы во всех базах данных, кроме db1; никакие таблицы в db1 не восстанавливаются
    --exclude-databases=db1,db2 (или --exclude-databases=db1 --exclude-databases=db2) Восстанавливаются все таблицы во всех базах данных, кроме db1 и db2; никакие таблицы в db1 или db2 не восстанавливаются
    --exclude-tables=db1.t1 Восстанавливаются все таблицы, кроме t1 в базе данных db1; все остальные таблицы в db1 восстанавливаются; все таблицы во всех остальных базах данных восстанавливаются
    --exclude-tables=db1.t2,db2.t1 (или --exclude-tables=db1.t2 --exclude-tables=db2.t1) Восстанавливаются все таблицы в базе данных db1, кроме t2, и все таблицы в базе данных db2, кроме таблицы t1; никакие другие таблицы в db1 или db2 не восстанавливаются; все таблицы во всех остальных базах данных восстанавливаются

    Вы можете использовать эти два параметра вместе. Например, следующее приводит к восстановлению всех таблиц во всех базах данных кроме баз данных db1 и db2, и таблиц t1 и t2 в базе данных db3:

    $> ndb_restore [...] --exclude-databases=db1,db2 --exclude-tables=db3.t1,db3.t2
    

    (Опять же, мы опустили другие, возможно, необходимые параметры для ясности и краткости в приведенном примере.)

    Вы можете использовать параметры --include-* и --exclude-* вместе, соблюдая следующие правила:

    • Действия всех параметров --include-* и --exclude-* накапливаются.

    • Все параметры --include-* и --exclude-* оцениваются в порядке, переданном в ndb_restore, справа налево.

    • В случае конфликтующих параметров, приоритет имеет первый (самый правый) параметр. Иными словами, первый параметр (справа налево), который соответствует заданной базе данных или таблице, «побеждает».

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

    --include-databases=db1 --exclude-tables=db1.t1
    

    Однако, изменение порядка этих параметров просто заставит восстановить все таблицы из базы данных db1 (включая db1.t1), но не таблицы из других баз данных, потому что параметр --include-databases, будучи самым правым, является первым совпадением с базой данных db1 и, таким образом, имеет приоритет над любым другим параметром, который соответствует db1 или любым таблицам в db1:

    --exclude-tables=db1.t1 --include-databases=db1
    
  • --fields-enclosed-by=char

    Командная строка --fields-enclosed-by=char
    Тип Строка
    Значение по умолчанию

    Каждое значение столбца заключено в строку, переданную в этот параметр (независимо от типа данных; см. описание --fields-optionally-enclosed-by).

  • --fields-optionally-enclosed-by

    Формат командной строки --fields-optionally-enclosed-by
    Тип String
    Значение по умолчанию

    Строка, переданная этому параметру, используется для заключения значений столбцов, содержащих символьные данные (такие как CHAR, VARCHAR, BINARY, TEXT или ENUM).

  • --fields-terminated-by=char

    Формат командной строки --fields-terminated-by=char
    Тип String
    Значение по умолчанию \t (tab)

    Строка, переданная этому параметру, используется для разделения значений столбцов. Значение по умолчанию — символ табуляции (\t).

  • --help

    Формат командной строки --help

    Отобразить справку и выйти.

  • --hex

    Формат командной строки --hex

    Если используется этот параметр, все двоичные значения выводятся в шестнадцатеричном формате.

  • --ignore-extended-pk-updates

    Формат командной строки --ignore-extended-pk-updates[=0|1]
    Введено 5.7.29-ndb-7.6.14
    Тип Integer
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 1

    При использовании параметра --allow-pk-changes столбцы, которые становятся частью первичного ключа таблицы, не должны обновляться во время создания резервной копии; такие столбцы должны сохранять те же значения с момента вставки значений в них до тех пор, пока строки, содержащие эти значения, не будут удалены. Если ndb_restore обнаруживает обновления этих столбцов при восстановлении резервной копии, восстановление завершается неудачей. Поскольку некоторые приложения могут устанавливать значения для всех столбцов при обновлении строки, даже если некоторые значения столбцов не изменяются, резервная копия может содержать события журнала, которые, как представляется, обновляют столбцы, которые на самом деле не изменяются. В таких случаях можно установить --ignore-extended-pk-updates в 1, заставив ndb_restore игнорировать такие обновления.

    Важно

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

    Для получения дополнительной информации см. описание --allow-pk-changes.

  • --include-databases=db-list

    Формат командной строки --include-databases=list
    Тип String
    Значение по умолчанию

    Список баз данных, разделенных запятыми, для восстановления. Часто используется вместе с --include-tables; см. описание этого параметра для получения дополнительной информации и примеров.

  • --include-tables=table-list

    Формат командной строки --include-tables=list
    Тип String
    Значение по умолчанию

    Список таблиц, разделенных запятыми, для восстановления; каждая ссылка на таблицу должна содержать имя базы данных.

    При использовании --include-databases или --include-tables восстанавливаются только те базы данных или таблицы, которые указаны в параметре; все остальные базы данных и таблицы исключаются ndb_restore и не восстанавливаются.

    В следующей таблице показаны несколько вызовов ndb_restore с использованием параметров --include-* (другие параметры, которые могут потребоваться, опущены для ясности), и их влияние на восстановление из резервной копии кластера NDB:

    Таблица 21.40 Несколько вызовов ndb_restore с использованием параметров --include-*, и их влияние на восстановление из резервной копии кластера NDB.

    Таблица 21.40 Несколько вызовов ndb_restore с использованием параметров --include-*, и их влияние на восстановление из резервной копии кластера NDB.
    Параметр Результат
    --include-databases=db1 Восстанавливаются только таблицы в базе данных db1; все таблицы во всех остальных базах данных игнорируются
    --include-databases=db1,db2 (или --include-databases=db1 --include-databases=db2) Восстанавливаются только таблицы в базах данных db1 и db2; все таблицы во всех остальных базах данных игнорируются
    --include-tables=db1.t1 Восстанавливается только таблица t1 в базе данных db1; другие таблицы в db1 или в любой другой базе данных не восстанавливаются
    --include-tables=db1.t2,db2.t1 (или --include-tables=db1.t2 --include-tables=db2.t1) Восстанавливаются только таблица t2 в базе данных db1 и таблица t1 в базе данных db2; другие таблицы в db1, db2 или в любой другой базе данных не восстанавливаются

    Эти два параметра также можно использовать вместе. Например, следующий вызов приводит к восстановлению всех таблиц в базах данных db1 и db2, а также таблиц t1 и t2 в базе данных db3 (и никаких других баз данных или таблиц):

    $> ndb_restore [...] --include-databases=db1,db2 --include-tables=db3.t1,db3.t2
    

    (Опять же, мы опустили другие, возможно, необходимые параметры в приведенном выше примере.)

    Также можно восстановить только выбранные базы данных или выбранные таблицы из одной базы данных без каких-либо параметров --include-* (или --exclude-*), используя синтаксис, показанный здесь:

    ndb_restore other_options db_name,[db_name[,...] | tbl_name[,tbl_name][,...]]
    

    Другими словами, можно указать для восстановления следующее:

    • Все таблицы из одной или нескольких баз данных

    • Одна или несколько таблиц из одной базы данных

  • --lines-terminated-by=char

    Формат командной строки --lines-terminated-by=char
    Тип String
    Значение по умолчанию \n (linebreak)

    Указывает строку, используемую для завершения каждой строки вывода. Значение по умолчанию — символ перевода строки (\n).

  • --login-path

    Формат командной строки --login-path=path
    Тип String
    Значение по умолчанию [none]

    Прочитать заданный путь из файла входа.

  • --lossy-conversions, -L

    Формат командной строки --lossy-conversions

    Этот параметр предназначен для дополнения параметра --promote-attributes. Использование --lossy-conversions позволяет выполнять потери при преобразованиях значений столбцов (снижение типа или изменения знака) при восстановлении данных из резервной копии. В некоторых исключениях правила, определяющие понижение, такие же, как для репликации MySQL; см. Раздел 16.4.1.10.2, «Репликация столбцов с различными типами данных» для получения информации о конкретных преобразованиях типов, в настоящее время поддерживаемых понижением атрибутов.

    Начиная с NDB 7.5.23 и NDB 7.6.19, этот параметр также позволяет восстановить столбец NULL в качестве NOT NULL. Столбец не должен содержать никаких NULL записей; в противном случае ndb_restore завершится с ошибкой.

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

  • --ndb-connectstring

    Формат командной строки --ndb-connectstring=connection_string
    Тип Строка
    Значение по умолчанию [none]

    Установите строку подключения для подключения к ndb_mgmd. Синтаксис: "[nodeid=id;][host=]hostname[:port]". Перезаписывает записи в NDB_CONNECTSTRING и my.cnf.

  • --ndb-mgmd-host

    Формат командной строки --ndb-mgmd-host=connection_string
    Тип Строка
    Значение по умолчанию [none]

    То же самое, что и --ndb-connectstring.

  • --ndb-nodegroup-map=map, -z

    Формат командной строки --ndb-nodegroup-map=map

    Предназначен для восстановления резервной копии, взятой из одной группы узлов в другую группу узлов, но никогда полностью не реализован; не поддерживается.

  • --ndb-nodeid

    Формат командной строки --ndb-nodeid=#
    Тип Целое число
    Значение по умолчанию [none]

    Установите идентификатор узла для этого узла, переопределяя любой идентификатор, установленный с помощью --ndb-connectstring.

  • --ndb-optimized-node-selection

    Формат командной строки --ndb-optimized-node-selection

    Включить оптимизации для выбора узлов для транзакций. Включено по умолчанию; используйте --skip-ndb-optimized-node-selection для отключения.

  • --no-binlog

    Формат командной строки --no-binlog

    Этот параметр предотвращает запись подключенных узлов SQL восстановленных данных ndb_restore в их двоичные журналы.

  • --no-defaults

    Формат командной строки --no-defaults

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

  • --no-restore-disk-objects, -d

    Формат командной строки --no-restore-disk-objects

    Этот параметр останавливает ndb_restore от восстановления каких-либо объектов данных NDB Cluster Disk, таких как табличные пространства и группы файлов журнала; см. Раздел 21.6.11, «Таблицы данных NDB Cluster Disk» для получения дополнительной информации об этих объектах.

  • --no-upgrade, -u

    Формат командной строки --no-upgrade

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

  • --nodeid=#, -n

    Формат командной строки --nodeid=#
    Тип Числовой
    Значение по умолчанию none

    Укажите идентификатор узла узла данных, на котором была взята резервная копия.

    При восстановлении в кластере с другим количеством узлов данных, чем тот, на котором была взята резервная копия, эта информация помогает определить правильный набор или наборы файлов, которые нужно восстановить на данный узел. (В таких случаях обычно необходимо восстановить несколько файлов на один узел данных.) См. Раздел 21.5.24.2, «Восстановление в разном количестве узлов данных» для получения дополнительной информации и примеров.

    В NDB 7.5.13 и более поздних версиях, а также в NDB 7.6.9 и более поздних версиях, этот параметр требуется.

  • --num-slices=#

    Формат командной строки --num-slices=#
    Введено 5.7.29-ndb-7.6.13
    Тип Целое число
    Значение по умолчанию 1
    Минимальное значение 1
    Максимальное значение 1024

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

    Часть — это подмножество данных в данной резервной копии; другими словами, это набор фрагментов с одинаковым идентификатором части, указанным с помощью параметра --slice-id. Оба параметра всегда должны использоваться вместе, и значение, заданное --slice-id, всегда должно быть меньше количества частей.

    ndb_restore сталкивается с фрагментами и присваивает каждому из них счётчик фрагментов. При восстановлении по частям каждому фрагменту присваивается идентификатор части; этот идентификатор находится в диапазоне от 0 до значения, на единицу меньшего, чем количество частей. Для таблицы, которая не является таблицей BLOB, часть, к которой принадлежит данный фрагмент, определяется с помощью показанной здесь формулы:

    [slice_ID] = [fragment_counter] % [number_of_slices]
    

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

    [slice_ID] =
    ([main_table_ID] + [fragment_ID]) % [number_of_slices]
    

    Таким образом, восстановление по N частям означает запуск N экземпляров ndb_restore, все с --num-slices=N (вместе со всеми другими необходимыми параметрами) и по одному каждому с --slice-id=1, --slice-id=2, --slice-id=3 и так далее до slice-id=N-1.

  • --parallelism=#, -p

    Формат командной строки --parallelism=#
    Тип Числовой
    Значение по умолчанию 128
    Минимальное значение 1
    Максимальное значение 1024

    ndb_restore использует транзакции с одной строкой для одновременного применения многих строк. Этот параметр определяет количество параллельных транзакций (одновременных строк), которые экземпляр ndb_restore пытается использовать. По умолчанию это 128; минимум — 1, максимум — 1024.

    Работа по выполнению вставок параллелизуется по потокам в узлах данных, которые участвуют. Этот механизм используется для восстановления объёмных данных из файла .Data — то есть, размытого моментального снимка данных; он не используется для создания или перестройки индексов. Журнал изменений применяется последовательно; операции удаления и создания индексов (DDL) обрабатываются отдельно. На стороне клиента при восстановлении нет параллелизма на уровне потоков.

  • --preserve-trailing-spaces, -P

    Формат командной строки --preserve-trailing-spaces

    Приводить к сохранению пробелов в конце при продвижении типа данных с фиксированной шириной к его типу переменной ширины — то есть, при продвижении значения столбца CHAR к VARCHAR или значения столбца BINARY к VARBINARY. В противном случае любые пробелы в конце таких значений столбцов удаляются при их вставке в новые столбцы.

    Примечание

    Несмотря на то, что вы можете продвигать столбцы CHAR к VARCHAR и столбцы BINARY к VARBINARY, вы не можете продвигать столбцы VARCHAR к CHAR или столбцы VARBINARY к BINARY.

  • --print

    Формат командной строки --print

    Приводит к тому, что ndb_restore выводит все данные, метаданные и журналы в stdout. Эквивалентно одновременное использование параметров --print-data, --print-meta и --print-log.

    Примечание

    Использование --print или любого из --print_* параметров фактически выполняет пробную операцию. Включение одного или нескольких из этих параметров приводит к перенаправлению всего вывода в stdout; в таких случаях ndb_restore не пытается восстановить данные или метаданные в кластере NDB.

  • print-sql-log

    Формат командной строки --print-sql-log
    Введено 5.7.16-ndb-7.5.4

    Ведёт протокол SQL-запросов в stdout. Используйте этот параметр для включения; обычно данное поведение отключено. Параметр проверяет, прежде чем пытаться выполнить протоколирование, все ли таблицы, которые восстанавливаются, имеют явно определённые первичные ключи; запросы к таблице, имеющей только скрытый первичный ключ, реализованный NDB, не могут быть преобразованы в допустимые SQL-запросы.

    Этот параметр не работает с таблицами, содержащими колонки BLOB.

    Параметр --print-sql-log был добавлен в NDB 7.5.4. (Ошибка #13511949)

  • --progress-frequency=N

    Формат командной строки --progress-frequency=#
    Тип Числовой
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 65535

    Выводит отчёт о статусе каждые N секунд во время проведения резервного копирования. 0 (значение по умолчанию) приводит к отсутствию отчётов о статусе. Максимальное значение равно 65535.

  • --promote-attributes, -A

    Формат командной строки --promote-attributes

    ndb_restore поддерживает ограниченное повышение атрибутов аналогично поддержке MySQL replication; другими словами, данные, резервную копию которых выполнили из колонки заданного типа, в целом можно восстановить в колонку, используя тип “больше, схожий”. Например, данные из колонки CHAR(20) можно восстановить в колонку, объявленную как VARCHAR(20), VARCHAR(30) или CHAR(30); данные из колонки MEDIUMINT можно восстановить в колонку типа INT или BIGINT. Смотрите Раздел 16.4.1.10.2, «Репликация колонок с различными типами данных» для таблицы преобразований типов, которые в настоящее время поддерживаются повышением атрибутов.

    Начиная с NDB 7.5.23 и NDB 7.6.19, этот параметр также позволяет восстановить колонку NOT NULL как NULL.

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

    1. Подготовьте таблицу, в которую будет произведено восстановление резервной копии. ndb_restore нельзя использовать для повторного создания таблицы с другим определением, чем исходное; это означает, что вам необходимо либо создать таблицу вручную, либо изменить колонки, которые требуется повысить, используя ALTER TABLE после восстановления метаданных таблицы, но до восстановления данных.

    2. Вызовите ndb_restore с параметром --promote-attributes (короткая форма -A) при восстановлении данных таблицы. Повышение атрибутов не происходит, если этот параметр не используется; вместо этого операция восстановления завершается с ошибкой.

    При преобразовании между типами символьных данных и TEXT или BLOB, можно выполнять только преобразования между типами символов (CHAR и VARCHAR) и двоичных типов (BINARY и VARBINARY) одновременно. Например, нельзя повысить колонку INT до BIGINT, одновременно повышая колонку VARCHAR до TEXT в одном вызове ndb_restore.

    Преобразование между колонками TEXT с использованием различных кодировок символов не поддерживается и прямо запрещено.

    При выполнении преобразований типов символов или двоичных типов в TEXT или BLOB с помощью ndb_restore, вы можете заметить, что она создаёт и использует одну или несколько таблиц подготовки с именами table_name$STnode_id. Эти таблицы не нужны после этого и обычно удаляются ndb_restore после успешного восстановления.

  • --rebuild-indexes

    Формат командной строки --rebuild-indexes

    Включить многопоточное перестроение упорядоченных индексов при восстановлении резервной копии NDB. Количество потоков, используемых для построения упорядоченных индексов ndb_restore с этим параметром, контролируется параметром конфигурации узла данных BuildIndexThreads и количеством LDMs.

    Этот параметр необходимо использовать только для первого запуска ndb_restore; это приводит к перестроению всех упорядоченных индексов без использования --rebuild-indexes при восстановлении последующих узлов. Вы должны использовать этот параметр перед вставкой новых строк в базу данных; в противном случае возможно вставка строки, которая впоследствии приводит к нарушению уникального ограничения при попытке перестроить индексы.

    По умолчанию построение упорядоченных индексов распараллеливается с количеством LDMs. Время построения оффлайн индексов при перезагрузках узла и системы можно ускорить, используя параметр конфигурации узла данных BuildIndexThreads; этот параметр не влияет на удаление и перестройку индексов ndb_restore, которое выполняется онлайн.

    Перестройка уникальных индексов использует пропускную способность записи на диск для ведения журнала redo и локального контрольного пункта. Недостаточное количество этой пропускной способности может привести к переполнению буфера redo или ошибкам переполнения журнала. В таких случаях можно повторно запустить ndb_restore --rebuild-indexes; процесс возобновляется в точке, где произошла ошибка. Вы также можете сделать это, когда у вас возникли временные ошибки. Вы можете повторять выполнение ndb_restore --rebuild-indexes неограниченное количество раз; вы можете остановить такие ошибки, уменьшив значение --parallelism. Если проблема заключается в недостатке места, вы можете увеличить размер журнала redo (FragmentLogFileSize параметр конфигурации узла), или вы можете увеличить скорость выполнения LCP (MaxDiskWriteSpeed и связанные параметры), чтобы освободить место быстрее.

  • --remap-column=db.tbl.col:fn:args

    Формат командной строки --remap-column=string
    Введено 5.7.29-ndb-7.6.14
    Тип Строка
    Значение по умолчанию [none]

    При совместном использовании с --restore-data, этот параметр применяет функцию к значению указанного столбца. Значения в строке аргументов перечислены здесь:

    • db: Имя базы данных после всех переименований, выполненных с помощью --rewrite-database.

    • tbl: Имя таблицы.

    • col: Имя столбца, который нужно обновить. Этот столбец должен иметь тип INT или BIGINT. Столбец также может, но не обязательно, быть UNSIGNED.

    • fn: Имя функции; в настоящее время поддерживается только имя offset.

    • args: Аргументы, передаваемые функции. В настоящее время поддерживается только один аргумент — размер смещения, которое необходимо добавить функцией offset. Поддерживаются отрицательные значения. Размер аргумента не может превышать размер знакового варианта типа столбца; например, если col — столбец типа INT, то допустимый диапазон аргумента, передаваемого функции offset, составляет -2147483648 до 2147483647 (см. Раздел 11.1.2, «Целочисленные типы (точное значение) — INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT»).

      Если применение смещения к столбцу приведет к переполнению или недополнению, операция восстановления завершится ошибкой. Это может произойти, например, если столбец является BIGINT, а параметр пытается применить смещение 8 к строке, в которой значение столбца равно 4294967291, так как 4294967291 + 8 = 4294967299 > 4294967295.

    Этот параметр может быть полезен, когда вы хотите объединить данные, хранящиеся в нескольких источниках NDB Cluster (все с использованием одной и той же схемы) в один целевой NDB Cluster, используя резервное копирование NDB (см. Раздел 21.6.8.2, «Использование клиента управления NDB Cluster для создания резервной копии») и ndb_restore для объединения данных, где первичные и уникальные ключи перекрываются между источниками кластеров, и в процессе необходимо переназначить эти значения в диапазоны, которые не перекрываются. Возможно, также потребуется сохранить другие отношения между таблицами. Для выполнения таких требований можно использовать параметр несколько раз в одном вызове ndb_restore для переназначения столбцов разных таблиц, как показано здесь:

    $> ndb_restore --restore-data --remap-column=hr.employee.id:offset:1000 \
        --remap-column=hr.manager.id:offset:1000 --remap-column=hr.firstaiders.id:offset:1000
    

    (Здесь могут использоваться и другие параметры.)

    --remap-column также можно использовать для обновления нескольких столбцов одной и той же таблицы. Возможны комбинации нескольких таблиц и столбцов. Для разных столбцов одной и той же таблицы также можно использовать разные значения смещения, например, так:

    $> ndb_restore --restore-data --remap-column=hr.employee.salary:offset:10000 \
        --remap-column=hr.employee.hours:offset:-10
    

    Если исходные резервные копии содержат дублируемые таблицы, которые не следует объединять, вы можете обработать это с помощью --exclude-tables, --exclude-databases или другими средствами вашего приложения.

    Информацию о структуре и других характеристиках таблиц, которые будут объединяться, можно получить с помощью SHOW CREATE TABLE; инструмента ndb_desc; и MAX(), MIN(), LAST_INSERT_ID() и других функций MySQL.

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

  • --restore-data, -r

    Формат командной строки --restore-data

    Вывод данных и журналов таблицы NDB.

  • --restore-epoch, -e

    Формат командной строки --restore-epoch

    Добавление (или восстановление) информации об эпохе в таблицу состояния репликации кластера. Это полезно для запуска репликации в кластере репликации NDB. При использовании этого параметра строка в таблице mysql.ndb_apply_status, содержащая 0 в столбце id, обновляется, если она уже существует; такая строка вставляется, если она еще не существует. (См. Раздел 21.7.9, «Резервные копии NDB Cluster с репликацией NDB Cluster».)

  • --restore-meta, -m

    Формат командной строки --restore-meta

    Этот параметр заставляет ndb_restore выводить метаданные таблицы NDB.

    При первом запуске программы восстановления ndb_restore, необходимо также восстановить метаданные. Другими словами, необходимо повторно создать таблицы базы данных — это можно сделать, запустив ее с параметром --restore-meta (-m). Восстановление метаданных нужно выполнить только на одном узле данных; этого достаточно для восстановления их в весь кластер.

    В более старых версиях NDB Cluster таблицы, схемы которых были восстановлены с помощью этого параметра, использовали то же количество разделов, что и в исходном кластере, даже если у него было разное количество узлов данных по сравнению с новым кластером. В NDB 7.5.2 и более поздних версиях при восстановлении метаданных эта проблема больше не возникает; ndb_restore теперь использует стандартное количество разделов для целевого кластера, если только количество локальных потоков диспетчера данных также не изменено по сравнению с тем, что было для узлов данных в исходном кластере.

    Примечание

    Кластер должен быть пустым при запуске восстановления резервной копии. (Другими словами, вы должны запустить узлы данных с помощью --initial перед выполнением восстановления.)

  • --restore-privilege-tables

    Формат командной строки --restore-privilege-tables

    ndb_restore по умолчанию не восстанавливает распределённые таблицы привилегий MySQL. Этот параметр заставляет ndb_restore восстановить таблицы привилегий.

    Это работает только в том случае, если таблицы привилегий были преобразованы в NDB перед созданием резервной копии. Дополнительную информацию см. в Разделе 21.6.13, «Распределённые привилегии с помощью общих таблиц предоставления».

  • --rewrite-database=olddb,newdb

    Формат командной строки --rewrite-database=string
    Тип String
    Значение по умолчанию none

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

    $> ndb_restore --rewrite-database=product,inventory
    

    Опция может использоваться несколько раз в одном вызове ndb_restore. Таким образом, можно одновременно восстановить из базы данных с именем db1 в базу данных с именем db2 и из базы данных с именем db3 в базу данных с именем db4, используя --rewrite-database=db1,db2 --rewrite-database=db3,db4. Другие опции ndb_restore могут использоваться между несколькими вхождениями --rewrite-database.

    В случае конфликтов между несколькими опциями --rewrite-database, последняя использованная опция --rewrite-database (считывание слева направо) является той, которая вступает в силу. Например, если используется --rewrite-database=db1,db2 --rewrite-database=db1,db3, учитывается только --rewrite-database=db1,db3, а --rewrite-database=db1,db2 игнорируется. Также можно восстановить из нескольких баз данных в одну базу данных, так что --rewrite-database=db1,db3 --rewrite-database=db2,db3 восстанавливает все таблицы и данные из баз данных db1 и db2 в базу данных db3.

    Важно

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

  • --skip-broken-objects

    Формат командной строки --skip-broken-objects

    Эта опция заставляет ndb_restore игнорировать поврежденные таблицы при чтении собственной резервной копии NDB и продолжать восстановление любых оставшихся таблиц (которые также не повреждены). В настоящее время опция --skip-broken-objects работает только в случае отсутствия таблиц частей blob.

  • --skip-table-check, -s

    Формат командной строки --skip-table-check

    Можно восстановить данные без восстановления метаданных таблицы. По умолчанию при этом ndb_restore завершается с ошибкой, если обнаружено несоответствие между данными таблицы и схемой таблицы; эта опция переопределяет это поведение.

    Некоторые ограничения на несоответствия в определениях столбцов при восстановлении данных с помощью ndb_restore ослаблены; когда встречается один из таких типов несоответствий, ndb_restore не останавливается с ошибкой, как это было раньше, а скорее принимает данные и вставляет их в целевую таблицу, вынося предупреждение пользователю о том, что это делается. Это поведение происходит независимо от того, используется ли какая-либо из опций --skip-table-check или --promote-attributes. Эти различия в определениях столбцов относятся к следующим типам:

    • Различные параметры COLUMN_FORMAT (FIXED, DYNAMIC, DEFAULT)

    • Различные параметры STORAGE (MEMORY, DISK)

    • Различные значения по умолчанию

    • Различные настройки ключа распределения

  • --skip-unknown-objects

    Формат командной строки --skip-unknown-objects

    Эта опция заставляет ndb_restore игнорировать любые объекты схемы, которые он не распознает при чтении собственной резервной копии NDB. Это можно использовать для восстановления резервной копии, созданной из кластера, работающего (например) под управлением NDB 7.6, в кластер, работающий под управлением NDB Cluster 7.5.

  • --slice-id=#

    Формат командной строки --slice-id=#
    Введено 5.7.29-ndb-7.6.13
    Тип Integer
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 1023

    При восстановлении по фрагментам, это ID фрагмента для восстановления. Эта опция всегда используется вместе с --num-slices, и её значение должно быть всегда меньше, чем значение --num-slices.

    Для получения дополнительной информации см. описание --num-slices в другом месте этого раздела.

  • --tab=dir_name, -T dir_name

    Формат командной строки --tab=path
    Тип Directory name

    Заставляет --print-data создавать файлы дампа, по одному на таблицу, каждый с именем tbl_name.txt. В качестве аргумента требуется путь к каталогу, куда следует сохранить файлы; используйте . для текущего каталога.

  • --timestamp-printouts

    Формат командной строки --timestamp-printouts{=true|false}
    Введено 5.7.41-ndb-7.5.30, 5.7.41-ndb-7.6.26
    Тип Boolean
    Значение по умолчанию false

    Заставляет сообщения журнала информации, ошибок и отладки начинаться с меток времени.

    Эта опция отключена по умолчанию в NDB 7.5 и NDB 7.6. Установите её явно в true, чтобы включить.

  • --usage

    Формат командной строки --usage

    Отобразить справку и завершить работу; то же самое, что и --help.

  • --verbose=#

    Формат командной строки --verbose=#
    Тип Numeric
    Значение по умолчанию 1
    Минимальное значение 0
    Максимальное значение 255

    Устанавливает уровень подробности вывода. Минимальное значение — 0; максимальное — 255. Значение по умолчанию — 1.

  • --version

    Формат командной строки --version

    Отобразить информацию о версии и завершить работу.

Типичные параметры для этой утилиты показаны здесь:

ndb_restore [-c connection_string] -n node_id -b backup_id \
      [-m] -r --backup-path=/path/to/backup/files

Обычно, при восстановлении из резервной копии кластера NDB, ndb_restore требует как минимум опции --nodeid (короткая форма: -n), --backupid (короткая форма: -b) и --backup-path. Кроме того, при использовании ndb_restore для восстановления таблиц с уникальными индексами, необходимо включить опцию --disable-indexes или --rebuild-indexes. (Ошибка #57782, Ошибка #11764893)

Опция -c используется для указания строки подключения, которая сообщает ndb_restore, где находится сервер управления кластером (см. Раздел 21.4.3.3, «Строки подключения к кластеру NDB»). Если эта опция не используется, ndb_restore пытается подключиться к серверу управления на localhost:1186. Эта утилита действует как узел API кластера, поэтому требует свободного подключения “слота” для подключения к серверу управления кластером. Это означает, что в файле config.ini должен быть хотя бы один раздел [api] или [mysqld]. По этой причине рекомендуется оставлять по крайней мере один пустой раздел [api] или [mysqld] в файле config.ini, который не используется сервером MySQL или другим приложением (см. Раздел 21.4.3.7, «Определение узлов SQL и других узлов API в кластере NDB»).

Вы можете проверить, подключен ли ndb_restore к кластеру, используя команду SHOW в клиенте управления ndb_mgm. Это также можно сделать из системной оболочки, как показано ниже:

$> ndb_mgm -e "SHOW"

Отчёт об ошибках. ndb_restore сообщает об ошибках временного и постоянного характера. В случае временных ошибок, он может восстановиться от них, и в таких случаях сообщает Restore successful, but encountered temporary error, please look at configuration.

Важно

После использования ndb_restore для инициализации кластера NDB для использования в циклической репликации, бинарные логи на узле SQL, действующем как репликация, не создаются автоматически, и их необходимо создать вручную. Для создания бинарных логов выполните оператор SHOW TABLES на этом узле SQL перед запуском START SLAVE. Это известная проблема в NDB Cluster.

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

Spec-Zone.ru

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