25.5.6 ndb_blob_tool — Проверка и восстановление столбцов BLOB и TEXT таблиц NDB Cluster
Этот инструмент можно использовать для поиска и удаления фрагментов столбцов BLOB, оставшихся без владельца, в таблицах NDB, а также для создания файла, содержащего список этих фрагментов. Это иногда полезно при диагностике и восстановлении поврежденных таблиц, содержащих столбцы BLOB или TEXT.
Базовая синтаксическая конструкция для ndb_blob_tool приведена ниже:
ndb_blob_tool [options] table [column, ...]
Если не используется опция --help, необходимо указать действие, выполняя одну или несколько опций --check-orphans, --delete-orphans или --dump-file. Эти опции заставляют ndb_blob_tool соответственно проверять наличие фрагментов BLOB без владельца, удалять такие фрагменты и генерировать файл дампа с перечнем таких фрагментов BLOB; более подробное описание этих опций приведено ниже в этом разделе.
Необходимо также указать имя таблицы при вызове ndb_blob_tool. Кроме того, можно дополнительно указать (через запятую) имена одного или нескольких столбцов BLOB или TEXT из этой таблицы. Если имена столбцов не указаны, инструмент будет работать со всеми столбцами BLOB и TEXT указанной таблицы. Если необходимо указать базу данных, воспользуйтесь опцией --database (-d).
Опция --verbose предоставляет дополнительную информацию о ходе работы инструмента в выводе.
Все опции, которые можно использовать с ndb_mgmd, показаны в следующей таблице. Дополнительные описания следуют за таблицей.
-
Формат командной строки --add-missingДля каждой встроенной части в таблицах NDB Cluster, у которой нет соответствующей части BLOB, записывает фиктивную часть BLOB требуемой длины, состоящую из пробелов.
-
Формат командной строки --character-sets-dir=pathКаталог, содержащий кодировки символов.
-
Формат командной строки --check-missingПроверка встроенных частей в таблицах NDB Cluster, у которых нет соответствующих частей BLOB.
-
Формат командной строки --check-orphansПроверка частей BLOB в таблицах NDB Cluster, у которых нет соответствующих встроенных частей.
-
Формат командной строки --connect-retries=#Тип Integer Значение по умолчанию 12Минимальное значение 0Максимальное значение 12Количество попыток повторного подключения перед отказом.
-
Формат командной строки --connect-retry-delay=#Тип Integer Значение по умолчанию 5Минимальное значение 0Максимальное значение 5Количество секунд ожидания между попытками связаться с сервером управления.
-
Формат командной строки --connect-string=connection_stringТип String Значение по умолчанию [none]То же самое, что и
--ndb-connectstring. -
Формат командной строки --core-fileЗаписать файл дампа памяти при ошибке; используется для отладки.
-
Формат командной строки --database=nameТип String Значение по умолчанию [none]Укажите базу данных, в которой нужно найти таблицу.
-
Формат командной строки --defaults-extra-file=pathТип String Значение по умолчанию [none]Прочитать заданный файл после чтения глобальных файлов.
-
Формат командной строки --defaults-file=pathТип String Значение по умолчанию [none]Прочитать параметры по умолчанию только из заданного файла.
-
Формат командной строки --defaults-group-suffix=stringТип String Значение по умолчанию [none]Также прочитать группы с concat(group, suffix).
-
Формат командной строки --delete-orphansУдалить части BLOB из таблиц NDB Cluster, у которых нет соответствующих встроенных частей.
-
Формат командной строки --dump-file=fileТип File name Значение по умолчанию [none]Записывает список осиротевших частей столбцов BLOB в
file. Информация, записанная в файл, включает ключ таблицы и номер части BLOB для каждой осиротевшей части BLOB. -
Формат командной строки --helpОтобразить справку и выйти.
-
Формат командной строки --login-path=pathТип String Значение по умолчанию [none]Прочитать заданный путь из файла входа.
-
Формат командной строки --no-login-pathsПропускает чтение параметров из файла пути входа.
-
Формат командной строки --ndb-connectstring=connection_stringТип String Значение по умолчанию [none]Установить строку подключения для подключения к ndb_mgmd. Синтаксис:
[nodeid=. Переопределяет записи вid;][host=]hostname[:port]NDB_CONNECTSTRINGиmy.cnf. -
Формат командной строки --ndb-mgm-tls=levelТип Enumeration Значение по умолчанию relaxedДопустимые значения relaxedstrictЗадает уровень поддержки TLS, необходимый для подключения к серверу управления; один из
relaxedилиstrict.relaxed(по умолчанию) означает, что устанавливается TLS-соединение, но успех не требуется;strictозначает, что для подключения требуется TLS.
-
Формат командной строки --ndb-mgmd-host=connection_stringТип Строка Значение по умолчанию [none]То же, что и
--ndb-connectstring. -
Формат командной строки --ndb-nodeid=#Тип Целое число Значение по умолчанию [none]Устанавливает идентификатор узла для этого узла, переопределяя любой ID, установленный параметром --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Не читать параметры по умолчанию из любого файла параметров, кроме файла входа.
-
Формат командной строки --print-defaultsВывести список аргументов программы и завершить работу.
-
Формат командной строки --usageОтобразить текст справки и завершить работу; то же самое, что и --help.
-
Формат командной строки --verboseПредоставить дополнительную информацию в выводе инструмента о его прогрессе.
-
Формат командной строки --versionОтобразить информацию о версии и завершить работу.
Пример
Сначала мы создаем таблицу NDB в базе данных test, используя оператор CREATE TABLE, показанный здесь:
USE test;
CREATE TABLE btest (
c0 BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
c1 TEXT,
c2 BLOB
) ENGINE=NDB;
Затем мы вставляем несколько строк в эту таблицу, используя ряд операторов, подобных этому:
INSERT INTO btest VALUES (NULL, 'x', REPEAT('x', 1000));
При запуске с --check-orphans по этой таблице, ndb_blob_tool генерирует следующий вывод:
$> ndb_blob_tool --check-orphans --verbose -d test btest
connected
processing 2 blobs
processing blob #0 c1 NDB$BLOB_19_1
NDB$BLOB_19_1: nextResult: res=1
total parts: 0
orphan parts: 0
processing blob #1 c2 NDB$BLOB_19_2
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=1
total parts: 10
orphan parts: 0
disconnected
Инструмент сообщает, что нет NDB частей столбца BLOB, связанных со столбцом c1, хотя c1 является столбцом TEXT. Это связано с тем, что в таблице NDB только первые 256 байт значения столбца BLOB или TEXT хранятся в строке, и только избыток, если таковой имеется, хранится отдельно; таким образом, если нет значений, использующих более 256 байт в данном столбце одного из этих типов, BLOB частей столбца не создаются NDB для этого столбца. Подробнее см. Раздел 13.7, «Требования к хранению типов данных».
© 2025 Oracle
Licensed under the GPLv2 License.