Spec-Zone.ru › MySQL 8.4

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

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

    Для каждой встроенной части в таблицах NDB Cluster, у которой нет соответствующей части BLOB, записывает фиктивную часть BLOB требуемой длины, состоящую из пробелов.

  • --character-sets-dir

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

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

  • --check-missing

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

    Проверка встроенных частей в таблицах NDB Cluster, у которых нет соответствующих частей BLOB.

  • --check-orphans

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

    Проверка частей BLOB в таблицах NDB Cluster, у которых нет соответствующих встроенных частей.

  • --connect-retries

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

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

  • --connect-retry-delay

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

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

  • --connect-string

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

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

  • --core-file

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

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

  • --database=db_name, -d

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

    Укажите базу данных, в которой нужно найти таблицу.

  • --defaults-extra-file

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

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

  • --defaults-file

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

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

  • --defaults-group-suffix

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

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

  • --delete-orphans

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

    Удалить части BLOB из таблиц NDB Cluster, у которых нет соответствующих встроенных частей.

  • --dump-file=file

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

    Записывает список осиротевших частей столбцов BLOB в file. Информация, записанная в файл, включает ключ таблицы и номер части BLOB для каждой осиротевшей части BLOB.

  • --help

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

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

  • --login-path

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

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

  • --no-login-paths

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

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

  • --ndb-connectstring

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

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

  • --ndb-mgm-tls

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

    relaxed

    strict

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

  • --ndb-mgmd-host

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

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

  • --ndb-nodeid

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

    Устанавливает идентификатор узла для этого узла, переопределяя любой ID, установленный параметром --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

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

  • --print-defaults

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

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

  • --usage

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

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

  • --verbose

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

    Предоставить дополнительную информацию в выводе инструмента о его прогрессе.

  • --version

    Формат командной строки --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.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/mysql-cluster-programs-ndb-blob-tool.html

Spec-Zone.ru

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