Spec-Zone.ru › MySQL 9.2

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 Cluster».

    Важно

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

    Например, чтобы восстановить резервную копию кластера, взятую из кластера, работающего под управлением 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 Cluster для создания резервной копии».)

    Важно

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

  • --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 восстанавливать такие таблицы, которые могли остаться от этих операций. Этот параметр выключен по умолчанию.

  • --exclude-missing-columns

    Формат командной строки --exclude-missing-columns

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

  • --exclude-missing-tables

    Формат командной строки --exclude-missing-tables

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

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

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

  • --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 Cluster, таких как табличные пространства и группы файлов журналов; см. Раздел 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 с репликацией кластера NDB».)

  • --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-9.2-en/mysql-cluster-programs-ndb-restore.html

Spec-Zone.ru

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