Spec-Zone.ru › MySQL 8.4

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

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

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

Примечание

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

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

  • --allow-pk-changes

    Формат командной строки --allow-pk-changes[=0|1]
    Тип Целое число
    Значение по умолчанию 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. Дополнительные сведения см. в разделе 25.3.7, «Обновление и понижение версии кластера NDB».

    Важно

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

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

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

  • --backup-password=password

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

    Этот параметр указывает пароль, который будет использоваться при расшифровке зашифрованной резервной копии с помощью параметра --decrypt. Это должен быть тот же пароль, который использовался для шифрования резервной копии.

    Длина пароля должна составлять от 1 до 256 символов и должна быть заключена в одинарные или двойные кавычки. Он может содержать любые символы ASCII с кодами символов 32, 35, 38, 40–91, 93, 95 и 97–126; другими словами, он может использовать любые печатные символы ASCII, кроме !, ', ", $, %, \ и ^.

    Можно опустить пароль, в этом случае ndb_restore будет ожидать его получения из stdin, как при использовании --backup-password-from-stdin.

  • --backup-password-from-stdin[=TRUE|FALSE]

    Формат командной строки --backup-password-from-stdin

    При использовании вместо --backup-password этот параметр позволяет ввести пароль резервной копии из системной оболочки (stdin), аналогично тому, как это делается при интерактивном предоставлении пароля mysql при использовании --password без указания пароля в командной строке.

  • --backupid=#, -b

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

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

    Важно

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

  • --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

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

  • --decrypt

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

    Расшифровать зашифрованную резервную копию с использованием пароля, заданного параметром --backup-password.

  • --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

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

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

    MySQL может открыть таблицу NDB, для которой один или несколько индексов не найдены, при условии, что запрос не использует ни один из затронутых индексов; в противном случае запрос отклоняется с ошибкой. В последнем случае вы можете временно обойти проблему, выполнив оператор ALTER TABLE, например такой:

    ALTER TABLE tbl ALTER INDEX idx INVISIBLE;
    

    Это заставит MySQL игнорировать индекс idx в таблице tbl. Смотрите Первичные ключи и индексы для получения дополнительной информации, а также Раздел 10.3.12, «Невидимые индексы».

  • --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:

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

    Таблица 25.23 Несколько вызовов ndb_restore с использованием опций --exclude-* и влияние этих опций на восстановление из резервной копии кластера NDB.
    Опция Результат
    --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
    Тип Строка
    Значение по умолчанию

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

  • --fields-terminated-by=char

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

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

  • --help

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

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

  • --hex

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

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

END_OF_DOCUMENT_MARKER
  • --ignore-extended-pk-updates

    Командная строка --ignore-extended-pk-updates[=0|1]
    Тип Целое число
    Значение по умолчанию 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
    Тип Строка
    Значение по умолчанию

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

  • --include-stored-grants

    Командная строка --include-stored-grants

    По умолчанию ndb_restore не восстанавливает общих пользователей и разрешений (см. Раздел 25.6.13, “Синхронизация привилегий и NDB_STORED_USER”) в таблицу ndb_sql_metadata. Указание этого параметра приводит к его выполнению.

  • --include-tables=table-list

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

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

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

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

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

    Таблица 25.24 Несколько вызовов ndb_restore с параметрами --include-* и их влияние на восстановление из резервной копии NDB Cluster.
    Параметр Результат
    --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
    Тип Строка
    Значение по умолчанию \n (linebreak)

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

  • --login-path

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

    Считывание указанного пути из файла входа.

  • --no-login-paths

    Командная строка --no-login-paths

    Пропускает чтение параметров из файла пути входа.

  • --lossy-conversions, -L

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

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

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

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

  • --no-binlog

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

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

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

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

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

  • --no-upgrade, -u

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

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

  • --ndb-connectstring

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

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

  • --ndb-mgm-tls

    Формат командной строки --ndb-mgm-tls=level
    Тип Перечисление
    Значение по умолчанию relaxed
    Допустимые значения

    relaxed

    strict

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

  • --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 для отключения.

  • --ndb-tls-search-path

    Формат командной строки --ndb-tls-search-path=list
    Тип Имя пути
    Значение по умолчанию (Unix) $HOME/ndb-tls
    Значение по умолчанию (Windows) $HOMEDIR/ndb-tls

    Указывает список каталогов для поиска файла CA. На платформах Unix имена каталогов разделяются двоеточиями (:); в системах Windows в качестве разделителя используется точка с запятой (;). Ссылка на каталог может быть относительной или абсолютной; она может содержать одну или несколько переменных среды, каждая из которых обозначается предшествующим знаком доллара ($) и расширяется перед использованием.

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

    Если путь поиска не указан, используется встроенное значение по умолчанию. Это значение зависит от используемой платформы: в Windows это \ndb-tls; на других платформах (включая Linux) это $HOME/ndb-tls. Это можно переопределить, скомпилировав NDB Cluster с использованием -DWITH_NDB_TLS_SEARCH_PATH.

  • --no-defaults

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

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

  • --nodeid=#, -n

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

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

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

  • --num-slices=#

    Формат командной строки --num-slices=#
    Тип Целое число
    Значение по умолчанию 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 со всеми необходимыми параметрами и с одним экземпляром для каждого с --slice-id=1, --slice-id=2, --slice-id=3 и так далее до slice-id=N-1.

    Пример. Предположим, что вы хотите восстановить резервную копию под названием BACKUP-1, расположенную в стандартном каталоге /var/lib/mysql-cluster/BACKUP/BACKUP-3 на файловой системе каждого узла данных, в кластере с четырьмя узлами данных с идентификаторами узлов 1, 2, 3 и 4. Для выполнения этой операции с пятью фрагментами выполните наборы команд, показанные в следующем списке:

    1. Восстановите метаданные кластера с помощью ndb_restore следующим образом:

      $> ndb_restore -b 1 -n 1 -m --disable-indexes --backup-path=/home/ndbuser/backups
      
    2. Восстановите данные кластера на узлах данных, вызвав ndb_restore следующим образом:

      $> ndb_restore -b 1 -n 1 -r --num-slices=5 --slice-id=0 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 1 -r --num-slices=5 --slice-id=1 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 1 -r --num-slices=5 --slice-id=2 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 1 -r --num-slices=5 --slice-id=3 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 1 -r --num-slices=5 --slice-id=4 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      
      $> ndb_restore -b 1 -n 2 -r --num-slices=5 --slice-id=0 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 2 -r --num-slices=5 --slice-id=1 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 2 -r --num-slices=5 --slice-id=2 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 2 -r --num-slices=5 --slice-id=3 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 2 -r --num-slices=5 --slice-id=4 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      
      $> ndb_restore -b 1 -n 3 -r --num-slices=5 --slice-id=0 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 3 -r --num-slices=5 --slice-id=1 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 3 -r --num-slices=5 --slice-id=2 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 3 -r --num-slices=5 --slice-id=3 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 3 -r --num-slices=5 --slice-id=4 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      
      $> ndb_restore -b 1 -n 4 -r --num-slices=5 --slice-id=0 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 4 -r --num-slices=5 --slice-id=1 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 4 -r --num-slices=5 --slice-id=2 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 4 -r --num-slices=5 --slice-id=3 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 4 -r --num-slices=5 --slice-id=4 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      

      Все команды, только что показанные в этом шаге, могут быть выполнены параллельно, при условии, что есть достаточно мест для подключений к кластеру (см. описание параметра --backup-path).

    3. Восстановите индексы как обычно, как показано здесь:

      $> ndb_restore -b 1 -n 1 --rebuild-indexes --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      
    4. Наконец, восстановите эпоху, используя команду, показанную здесь:

      $> ndb_restore -b 1 -n 1 --restore-epoch --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      

    Вы должны использовать фрагментацию для восстановления данных кластера только; нет необходимости использовать --num-slices или --slice-id при восстановлении метаданных, индексов или информации об эпохе. Если один или оба из этих параметров используются с параметрами ndb_restore, контролирующими восстановление этих данных, программа их игнорирует.

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

    Значение --num-slices не зависит непосредственно от значений, связанных с аппаратным обеспечением, таких как количество процессоров или ядер процессора, объём ОЗУ и т. д., а также не зависит от количества LDMs.

    Возможны разные значения этого параметра на разных узлах данных в рамках одного восстановления; это само по себе не должно вызывать никаких проблем.

  • --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-data

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

    Заставляет ndb_restore перенаправлять свой вывод в stdout. Часто используется вместе с одним или несколькими параметрами --tab, --fields-enclosed-by, --fields-optionally-enclosed-by, --fields-terminated-by, --hex и --append.

    Значения столбцов TEXT и BLOB всегда усекаются. Такие значения усекаются до первых 256 байтов в выводе. Это в настоящее время невозможно переопределить при использовании --print-data.

  • --print-defaults

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

    Вывести список аргументов программы и завершить работу.

  • --print-log

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

    Заставляет ndb_restore выводить свой журнал в stdout.

  • --print-meta

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

    Вывести все метаданные в stdout.

  • print-sql-log

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

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

    Этот параметр не работает с таблицами, имеющими столбцы BLOB.

  • --progress-frequency=N

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

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

  • --promote-attributes, -A

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

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

    Этот параметр также позволяет восстановить столбец типа 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 параметр конфигурации узла) или увеличить скорость выполнения контрольно-пропускных пунктов (MaxDiskWriteSpeed и связанные параметры), чтобы быстрее освободить место.

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

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

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

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

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

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

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

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

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

    Этот параметр может быть полезен, когда вы хотите объединить данные, хранящиеся в нескольких исходных экземплярах NDB Cluster (все с одной и той же схемой), в один целевой NDB Cluster, используя резервное копирование NDB (см. Раздел 25.6.8.2, «Использование клиента управления кластером NDB для создания резервной копии») и 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 Cluster. При использовании этого параметра строка в mysql.ndb_apply_status, содержащая 0 в столбце id, обновляется, если она уже существует; такая строка вставляется, если она еще не существует. (См. Раздел 25.7.9, «Резервные копии NDB Cluster с репликацией NDB Cluster».)

  • --restore-meta, -m

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

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

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

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

    При использовании этого параметра рекомендуется отключить автоматическую синхронизацию, установив ndb_metadata_check=OFF, до тех пор, пока ndb_restore не завершит восстановление метаданных, после чего её можно снова включить, чтобы синхронизировать объекты, недавно созданные в словаре NDB.

    Примечание

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

  • --restore-privilege-tables

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

    Не используется.

  • --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=#
    Тип 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}
    Тип Boolean
    Значение по умолчанию true

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

    Эта опция включена по умолчанию. Отключите её с помощью --timestamp-printouts=false.

  • --usage

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

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

  • --verbose=#

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

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

  • --version

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

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

  • --with-apply-status

    Формат командной строки --with-apply-status

    Восстановить все строки из таблицы бэкапа ndb_apply_status (кроме строки с server_id = 0, которая генерируется с помощью --restore-epoch). Для этого параметра необходимо также использовать --restore-data.

    Если таблица ndb_apply_status из бэкапа уже содержит строку с server_id = 0, ndb_restore --with-apply-status её удаляет. По этой причине рекомендуется использовать ndb_restore --restore-epoch после вызова ndb_restore с параметром --with-apply-status. Вы также можете использовать --restore-epoch параллельно с последним вызовом ndb_restore --with-apply-status для восстановления кластера.

    Дополнительную информацию см. в таблице ndb_apply_status.

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

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

Обычно для восстановления из бэкапа NDB Cluster, ndb_restore требует как минимум параметров --nodeid (сокращенно: -n), --backupid (сокращенно: -b) и --backup-path.

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

ndb_restore может расшифровать зашифрованный бэкап с помощью --decrypt и --backup-password. Для выполнения расшифровки должны быть указаны оба параметра. См. документацию для команды управления клиентом START BACKUP для получения информации о создании зашифрованных бэкапов.

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

$> ndb_mgm -e "SHOW"

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

Важно

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

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

Spec-Zone.ru

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