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[=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, требующие использования таблиц подготовленных данных.
Основные шаги в типичном сценарии с изменениями схемы первичного ключа приведены здесь:
Восстановить схемы таблиц с помощью ndb_restore
--restore-metaИзменить схему до желаемой или создать её
Создать резервную копию желаемой схемы
Запустить ndb_restore
--disable-indexesс использованием резервной копии из предыдущего шага, чтобы удалить индексы и ограниченияЗапустить ndb_restore
--allow-pk-changes(возможно, вместе с--ignore-extended-pk-updates,--disable-indexesи, возможно, другими необходимыми параметрами) для восстановления всех данныхЗапустить ndb_restore
--rebuild-indexesс использованием резервной копии, созданной с желаемой схемой, для восстановления индексов и ограничений
При расширении первичного ключа ndb_restore может использовать временный вторичный уникальный индекс во время операции восстановления для отображения от старого первичного ключа к новому. Такой индекс создаётся только при необходимости для применения событий из журнала резервной копии к таблице, у которой расширен первичный ключ. Этот индекс называется
NDB$RESTORE_PK_MAPPINGи создаётся для каждой таблицы, требующей его; он может быть общим, при необходимости, для нескольких экземпляров ndb_restore, работающих параллельно. (Запуск ndb_restore--rebuild-indexesв конце процесса восстановления приводит к удалению этого индекса.) -
-
Формат командной строки --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Тип Строка Значение по умолчанию [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, отображаемом по завершении резервного копирования. (См. раздел 25.6.8.2, «Использование клиента управления NDB Cluster для создания резервной копии».)backup_idcompletedВажноПри восстановлении резервных копий кластера необходимо убедиться, что все узлы данных восстановлены из резервных копий с одинаковым идентификатором резервной копии. Использование файлов из разных резервных копий приводит, в лучшем случае, к восстановлению кластера в несогласованном состоянии и, вероятно, к полному сбою.
-
Формат командной строки --character-sets-dir=pathКаталог, содержащий кодировки символов.
-
--connect,-cФормат командной строки --connect=connection_stringТип Строка Значение по умолчанию localhost:1186Псевдоним для
--ndb-connectstring. -
Формат командной строки --connect-retries=#Тип Целое число Значение по умолчанию 12Минимальное значение 0Максимальное значение 12Количество попыток повторного подключения перед отказом.
-
Формат командной строки --connect-retry-delay=#Тип Целое число Значение по умолчанию 5Минимальное значение 0Максимальное значение 5Количество секунд ожидания между попытками связаться с сервером управления.
-
Формат командной строки --connect-string=connection_stringТип Строка Значение по умолчанию [none]То же, что и
--ndb-connectstring. -
Формат командной строки --core-fileЗапись файла core при ошибке; используется для отладки.
-
Формат командной строки --decryptРасшифровка зашифрованного резервной копии с использованием пароля, предоставленного параметром
--backup-password. -
Формат командной строки --defaults-extra-file=pathТип Строка Значение по умолчанию [none]Чтение указанного файла после чтения глобальных файлов.
-
Формат командной строки --defaults-file=pathТип Строка Значение по умолчанию [none]Чтение параметров по умолчанию только из данного файла.
-
Формат командной строки --defaults-group-suffix=stringТип Строка Значение по умолчанию [none]Также читать группы с concat(group, suffix).
-
Формат командной строки --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Обычно при восстановлении данных и метаданных таблиц 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Можно восстановить только выбранные столбцы таблицы с помощью этого параметра, который заставляет ndb_restore игнорировать любые столбцы, отсутствующие в таблицах, восстанавливаемых по сравнению с версиями этих таблиц, найденными в резервной копии. Этот параметр применяется ко всем восстанавливаемым таблицам. Если вы хотите применить этот параметр только к выбранным таблицам или базам данных, вы можете использовать его в сочетании с одним или несколькими параметрами
--include-*или--exclude-*, описанными в другом месте данного раздела, чтобы сделать это, а затем восстановить данные в оставшиеся таблицы с помощью дополнительного набора этих параметров. -
Формат командной строки --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Тип Строка Значение по умолчанию \t (tab)Строка, переданная этому параметру, используется для разделения значений столбцов. Значение по умолчанию — символ табуляции (
\t). -
Формат командной строки --helpОтобразить текст справки и завершить работу.
-
Формат командной строки --hexЕсли этот параметр используется, все двоичные значения выводятся в шестнадцатеричном формате.
-
Командная строка --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По умолчанию 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_optionsdb_name,[db_name[,...] |tbl_name[,tbl_name][,...]]Другими словами, для восстановления можно указать следующее:
Все таблицы из одной или нескольких баз данных
Одна или несколько таблиц из одной базы данных
-
Командная строка --lines-terminated-by=charТип Строка Значение по умолчанию \n (linebreak)Указывает строку, используемую для завершения каждой строки вывода. По умолчанию используется символ конца строки (
\n). -
Командная строка --login-path=pathТип Строка Значение по умолчанию [none]Считывание указанного пути из файла входа.
-
Командная строка --no-login-pathsПропускает чтение параметров из файла пути входа.
-
Формат командной строки --lossy-conversionsЭтот параметр предназначен для дополнения параметра
--promote-attributes. Использование--lossy-conversionsдопускает потери при преобразовании значений столбцов (понижение типа или изменение знака) при восстановлении данных из резервной копии. За некоторыми исключениями, правила понижения типа такие же, как и для репликации MySQL; см. Раздел 19.5.1.9.2, «Репликация столбцов с различными типами данных», для получения информации о конкретных преобразованиях типов, которые в настоящее время поддерживаются понижением атрибутов.Этот параметр также позволяет восстановить столбец
NULLкакNOT NULL. Столбец не должен содержать записейNULL; в противном случае ndb_restore остановится с ошибкой.ndb_restore сообщает о любом усечении данных, которое он выполняет во время преобразований с потерями, один раз на атрибут и столбец.
-
Формат командной строки --no-binlogЭтот параметр предотвращает запись подключенными SQL-узлами данных, восстановленных с помощью ndb_restore, в их бинарные журналы.
-
Формат командной строки --no-restore-disk-objectsЭтот параметр останавливает ndb_restore от восстановления любых объектов данных на диске NDB Cluster, таких как табличные пространства и группы файлов журналов; см. Раздел 25.6.11, «Таблицы данных на диске кластера NDB», для получения дополнительной информации об этом.
-
--no-upgrade,-uФормат командной строки --no-upgradeПри использовании ndb_restore для восстановления резервной копии, столбцы
VARCHAR, созданные с использованием старого формата фиксированной длины, изменяются в размере и пересоздаются с использованием формата переменной длины, используемого сейчас. Это поведение может быть переопределено путем указания--no-upgrade. -
Формат командной строки --ndb-connectstring=connection_stringТип Строка Значение по умолчанию [none]Устанавливает строку подключения для подключения к ndb_mgmd. Синтаксис:
[nodeid=. Переопределяет записи вid;][host=]hostname[:port]NDB_CONNECTSTRINGиmy.cnf. -
Формат командной строки --ndb-mgm-tls=levelТип Перечисление Значение по умолчанию relaxedДопустимые значения relaxedstrictУстанавливает уровень поддержки TLS, необходимый для подключения к серверу управления; одно из
relaxedилиstrict.relaxed(по умолчанию) означает, что попытка подключения TLS выполняется, но успех не требуется;strictозначает, что для подключения требуется TLS. -
Формат командной строки --ndb-mgmd-host=connection_stringТип Строка Значение по умолчанию [none]То же, что и
--ndb-connectstring. -
--ndb-nodegroup-map=map,-zФормат командной строки --ndb-nodegroup-map=mapЛюбое значение, установленное для этого параметра, игнорируется, и сам параметр ничего не делает.
-
Формат командной строки --ndb-nodeid=#Тип Целое число Значение по умолчанию [none]Устанавливает идентификатор узла для этого узла, переопределяя любой идентификатор, установленный с помощью
--ndb-connectstring. -
--ndb-optimized-node-selectionФормат командной строки --ndb-optimized-node-selectionВключить оптимизацию для выбора узлов для транзакций. Включено по умолчанию; используйте
--skip-ndb-optimized-node-selectionдля отключения. -
Формат командной строки --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Не читать параметры по умолчанию из любого файла параметров, кроме файла входа в систему.
-
--nodeid=#,-nФормат командной строки --nodeid=#Тип Числовой Значение по умолчанию noneУкажите идентификатор узла узла данных, на котором был сделан резервный копирования; обязательно.
При восстановлении в кластере с разным количеством узлов данных, чем при создании резервной копии, эта информация помогает определить правильный набор или наборы файлов для восстановления на заданном узле. (В таких случаях обычно необходимо восстановить несколько файлов на один узел данных.) См. для дополнительной информации и примеров.
-
Формат командной строки --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. Для выполнения этой операции с пятью фрагментами выполните наборы команд, показанные в следующем списке:-
Восстановите метаданные кластера с помощью ndb_restore следующим образом:
$>
ndb_restore -b 1 -n 1 -m --disable-indexes --backup-path=/home/ndbuser/backups -
Восстановите данные кластера на узлах данных, вызвав 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). -
Восстановите индексы как обычно, как показано здесь:
$>
ndb_restore -b 1 -n 1 --rebuild-indexes --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1 -
Наконец, восстановите эпоху, используя команду, показанную здесь:
$>
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Максимальное значение 1024ndb_restore использует однострочные транзакции для одновременного применения многих строк. Этот параметр определяет количество параллельных транзакций (одновременных строк), которые экземпляр ndb_restore пытается использовать. По умолчанию это 128; минимум — 1, максимум — 1024.
Работа по выполнению вставок распараллеливается на потоках в задействованных узлах данных. Этот механизм используется для восстановления объёмных данных из файла
.Data— то есть, нечёткого моментального снимка данных; он не используется для построения или перестроения индексов. Журнал изменений применяется последовательно; действия по удалению и построению индексов — это DDL-операции и обрабатываются отдельно. Нет параллелизма на уровне потоков на стороне клиента при восстановлении.
-
--preserve-trailing-spaces,-PФормат командной строки --preserve-trailing-spacesОбеспечивает сохранение пробелов в конце при повышении типа данных с фиксированной шириной символов до эквивалентного типа с переменной шириной — то есть при повышении значения столбца
CHARдоVARCHARили значения столбцаBINARYдоVARBINARY. В противном случае любые пробелы в конце таких значений столбцов удаляются при их вставке в новые столбцы. -
Формат командной строки --printЗаставляет ndb_restore выводить все данные, метаданные и журналы в
stdout. Эквивалентно использованию параметров--print-data,--print-metaи--print-logвместе.ПримечаниеИспользование
--printили любого из параметров--print_*фактически выполняет пробный запуск. Включение одного или нескольких из этих параметров приводит к перенаправлению любого вывода вstdout; в таких случаях ndb_restore не пытается восстановить данные или метаданные в кластер NDB. -
Формат командной строки --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-logЗаставляет ndb_restore выводить свой журнал в
stdout. -
Формат командной строки --print-metaВывести все метаданные в
stdout. -
Формат командной строки --print-sql-logЗаписывать операторы SQL в
stdout. Используйте параметр для включения; обычно это поведение отключено. Параметр проверяет перед попыткой записи, определены ли все восстанавливаемые таблицы с явно определенными первичными ключами; запросы к таблице, имеющей только скрытый первичный ключ, реализованныйNDB, не могут быть преобразованы в допустимый SQL.Этот параметр не работает с таблицами, имеющими столбцы
BLOB. -
Формат командной строки --progress-frequency=#Тип Числовой Значение по умолчанию 0Минимальное значение 0Максимальное значение 65535Выводить отчет о состоянии каждые
Nсекунд во время выполнения резервного копирования. 0 (по умолчанию) приводит к тому, что отчеты о состоянии не выводятся. Максимальное значение — 65535.
-
Формат командной строки --promote-attributesndb_restore поддерживает ограниченное преобразование атрибутов аналогичным образом, как в репликации MySQL; т.е., данные, резервные копии которых взяты из столбца заданного типа, как правило, могут быть восстановлены в столбец с “большим, похожим” типом. Например, данные из столбца типа
CHAR(20)могут быть восстановлены в столбец, объявленный какVARCHAR(20),VARCHAR(30)илиCHAR(30); данные из столбца типаMEDIUMINTмогут быть восстановлены в столбец типаINTилиBIGINT. См. Раздел 19.5.1.9.2, «Репликация столбцов с различными типами данных», для таблицы преобразований типов, которые в настоящее время поддерживаются преобразованием атрибутов.Этот параметр также позволяет восстановить столбец типа
NOT NULLкакNULL.Преобразование атрибутов программой ndb_restore должно быть явно включено следующим образом:
Подготовьте таблицу, в которую будет восстановлена резервная копия. ndb_restore нельзя использовать для повторного создания таблицы с другим определением, отличным от исходного; это означает, что вы должны либо создать таблицу вручную, либо изменить столбцы, которые вы хотите преобразовать, используя
ALTER TABLEпосле восстановления метаданных таблицы, но до восстановления данных.Вызовите ndb_restore с параметром
--promote-attributes(короткая форма-A) при восстановлении данных таблицы. Преобразование атрибутов не происходит, если этот параметр не используется; вместо этого операция восстановления завершается с ошибкой.
При преобразовании между типами данных символьных данных и
TEXTилиBLOB, могут быть выполнены только преобразования между типами символьных данных (CHARиVARCHAR) и бинарных типов (BINARYиVARBINARY) одновременно. Например, вы не можете преобразовать столбец типаINTвBIGINT, одновременно преобразуя столбец типаVARCHARвTEXTв одном вызове ndb_restore.Преобразование между столбцами типа
TEXTс использованием различных кодировок символов не поддерживается и прямо запрещено.При выполнении преобразований символьных или бинарных типов в
TEXTилиBLOBс помощью ndb_restore, вы можете заметить, что он создает и использует одну или несколько промежуточных таблиц с именем. Эти таблицы не нужны после этого и обычно удаляются ndb_restore после успешного восстановления.table_name$STnode_id -
Формат командной строки --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Устарело Да Больше не используется.
-
--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Эта опция заставляет ndb_restore игнорировать поврежденные таблицы при чтении собственной резервной копии
NDBи продолжать восстановление оставшихся таблиц (которые также не повреждены). В настоящее время опция--skip-broken-objectsработает только в случае отсутствия таблиц частей blob. -
Формат командной строки --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Эта опция заставляет ndb_restore игнорировать любые объекты схемы, которые он не распознает при чтении собственной резервной копии
NDB. Это можно использовать для восстановления резервной копии, созданной из кластера, работающего (например) на NDB 7.6, в кластер, работающий на NDB Cluster 7.5. -
Формат командной строки --slice-id=#Тип Integer Значение по умолчанию 0Минимальное значение 0Максимальное значение 1023При восстановлении по срезам это ID восстанавливаемого среза. Эта опция всегда используется вместе с
--num-slices, и ее значение всегда должно быть меньше значения--num-slices.Для получения дополнительной информации см. описание
--num-slicesв другом месте этого раздела. -
--tab=dir_name,-Tdir_nameФормат командной строки --tab=pathТип Directory name Заставляет
--print-dataсоздавать файлы дампа, по одному на таблицу, каждый с именем. В качестве аргумента требуется путь к каталогу, куда следует сохранять файлы; используйтеtbl_name.txt.для текущего каталога. -
--timestamp-printoutsФормат командной строки --timestamp-printouts{=true|false}Тип Boolean Значение по умолчанию trueЗаставляет сообщения журнала информации, ошибок и отладки снабжаться метками времени.
Эта опция включена по умолчанию. Отключите её с помощью
--timestamp-printouts=false. -
Формат командной строки --usageОтобразить справку и завершить работу; то же самое, что и
--help. -
Формат командной строки --verbose=#Тип Numeric Значение по умолчанию 1Минимальное значение 0Максимальное значение 255Устанавливает уровень подробности вывода. Минимум 0; максимум 255. Значение по умолчанию — 1.
-
Формат командной строки --versionОтобразить информацию о версии и завершить работу.
-
Формат командной строки --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.