Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  ndb_blob_tool — Check and Repair BLOB and TEXT columns of NDB Cluster Tables

25.5.6 ndb_blob_tool — 检查和修复 NDB 集群表中的 BLOB 和 TEXT 列

该工具可以用于检查和删除 NDB 集群表中的孤立 BLOB 列部分,也可以生成一个列出孤立部分的文件。它有时在诊断和修复损坏或损坏的 NDB 表时非常有用,其中包含 NDB 表,包括 BLOBTEXT 列。

基本语法为 ndb_blob_tool 如下所示:

ndb_blob_tool [options] table [column, ...]

除非您使用 --help 选项,否则您必须指定要执行的操作,包括一个或多个选项 --check-orphans--delete-orphans--dump-file。这些选项将导致 ndb_blob_tool 检查孤立 BLOB 部分、删除孤立 BLOB 部分和生成一个列出孤立 BLOB 部分的文件,分别。

您必须指定要检查的表名,并且可以选择性地指定一个或多个 BLOBTEXT 列的名称。如果不指定列名,则工具将检查表中的所有 BLOBTEXT 列。如果需要指定数据库,请使用 --database (-d) 选项。

使用 --verbose 选项可以在输出中提供关于工具进度的更多信息。

所有可以与 ndb_mgmd 一起使用的选项如下表所示。每个选项的详细描述在表后面。

表 25.27 与程序 ndb_blob_tool 一起使用的命令行选项

Format Description Added, Deprecated, or Removed

--add-missing

将虚拟 blob 部分写入以取代缺失的部分

(在所有基于 MySQL 8.3 的 NDB 发布版本中支持)

--check-missing

检查 blob 是否缺失一个或多个部分

(在所有基于 MySQL 8.3 的 NDB 发布版本中支持)

--check-orphans

检查没有对应内联部分的 blob 部分

(在所有基于 MySQL 8.3 的 NDB 发布版本中支持)

--connect-retries=#

在放弃之前尝试连接的次数

(在所有基于 MySQL 8.3 的 NDB 发布版本中支持)

--connect-retry-delay=#

在尝试联系管理服务器之间等待的秒数

(在所有基于 MySQL 8.3 的 NDB 发布版本中支持)

--连接字符串=connection_string,

-c connection_string

与--ndb-connectstring相同

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--数据库=name,

-d name

要在其中查找表的数据库

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--额外配置文件=path

在读取全局文件后读取给定的文件

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--配置文件=path

仅从给定的文件中读取默认选项

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--组后缀=string

还读取带有组后缀的组

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--删除孤立部分

删除没有对应内联部分的 blob 部分

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--转储文件=file

将孤立键写入指定文件

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--帮助,

-?

显示帮助文本并退出

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--登录路径=path

从登录文件中读取给定的路径

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--不使用登录路径

不从登录路径文件中读取登录路径

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--ndb 连接字符串=connection_string,

-c connection_string

设置连接到 ndb_mgmd 的连接字符串。语法:"[nodeid=id;][host=]hostname[:port]"。覆盖 NDB_CONNECTSTRING 和 my.cnf 中的条目

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--ndb-mgm-tls=level

ndb_mgm 客户端 TLS 要求级别

添加:8.3.0

--ndb-mgmd 主机=connection_string,

-c connection_string

与--ndb-connectstring相同

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--ndb 节点 ID=#

设置该节点的节点 ID,覆盖 --ndb-connectstring 中设置的 ID

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--ndb-tls 搜索路径=list

包含 TLS 密钥和证书的目录列表

添加:8.3.0

--不使用默认值

不从任何选项文件中读取默认选项,除了登录文件

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--打印默认值

打印程序参数列表并退出

(在所有基于 MySQL 8.3 的 NDB 发布版本中支持)

--使用帮助,

-?

显示帮助文本并退出;同 --help

(在所有基于 MySQL 8.3 的 NDB 发布版本中支持)

--详细输出,

-v

详细输出

(在所有基于 MySQL 8.3 的 NDB 发布版本中支持)

--版本信息,

-V

显示版本信息并退出

(在所有基于 MySQL 8.3 的 NDB 发布版本中支持)


  • --添加缺失的

    Command-Line Format --添加缺失的

    对于 NDB 集群表中的每个内联部分,如果没有对应的 BLOB 部分,则写入一个 dummy BLOB 部分,长度为所需的长度,全部由空格组成。

  • --字符集目录

    Command-Line Format --字符集目录=path

    包含字符集的目录。

  • --检查缺失的

    Command-Line Format --检查缺失的

    检查 NDB 集群表中的内联部分是否有对应的 BLOB 部分。

  • --检查孤立的

    Command-Line Format --检查孤立的

    检查 NDB 集群表中的 BLOB 部分是否有对应的内联部分。

  • --连接重试次数

    Command-Line Format --连接重试次数=#
    Type 整数
    Default Value 12
    Minimum Value 0
    Maximum Value 12

    在放弃之前重试连接的次数。

  • --连接重试延迟

    Command-Line Format --连接重试延迟=#
    Type 整数
    Default Value 5
    Minimum Value 0
    Maximum Value 5

    在尝试联系管理服务器之间等待的秒数。

  • --连接字符串

    Command-Line Format --连接字符串=connection_string
    Type 字符串
    Default Value [none]

    --ndb-connectstring

  • --核心文件

    Command-Line Format --核心文件

    在错误时写入核心文件;用于调试。

  • --数据库, -d

    Command-Line Format --数据库=name
    Type 字符串
    Default Value [none]

    指定要在其中查找表的数据库。

  • --额外默认文件

    Command-Line Format --额外默认文件=path
    Type 字符串
    Default Value [none]

    在全局文件读取后读取给定的文件。

  • --defaults-file

    Command-Line Format --defaults-file=path
    Type 字符串
    Default Value [none]

    仅从给定的文件中读取默认选项。

  • --defaults-group-suffix

    Command-Line Format --defaults-group-suffix=string
    Type 字符串
    Default Value [none]

    还读取带有后缀的组。

  • --delete-orphans

    Command-Line Format --delete-orphans

    从 NDB 集群表中删除没有对应内联部分的 BLOB 部分。

  • --dump-file=file

    Command-Line Format --dump-file=file
    Type 文件名
    Default Value [none]

    将孤立的 BLOB 列部分的列表写入 file。写入文件的信息包括每个孤立 BLOB 部分的表键和 BLOB 部分号。

  • --help

    Command-Line Format --help

    显示帮助文本并退出。

  • --login-path

    Command-Line Format --login-path=path
    Type 字符串
    Default Value [none]

    从登录文件中读取给定的路径。

  • --no-login-paths

    Command-Line Format --no-login-paths

    跳过从登录路径文件中读取选项。

  • --ndb-connectstring

    Command-Line Format --ndb-connectstring=connection_string
    Type 字符串
    Default Value [none]

    设置连接到 ndb_mgmd 的连接字符串。语法:[nodeid=id;][host=]hostname[:port]。覆盖 NDB_CONNECTSTRINGmy.cnf 中的条目。

  • --ndb-mgm-tls

    Command-Line Format --ndb-mgm-tls=level
    Type 枚举
    Default Value relaxed
    Valid Values

    relaxed

    strict

    设置连接到管理服务器所需的 TLS 支持级别;可以是 relaxedstrictrelaxed(默认) 表示尝试 TLS 连接,但不要求成功:strict 表示需要 TLS 连接。

  • --ndb-mgmd-host

    Command-Line Format --ndb-mgmd-host=connection_string
    Type 字符串
    Default Value [none]

    --ndb-connectstring 相同。

  • --ndb-nodeid

    Command-Line Format --ndb-nodeid=#
    Type 整数
    Default Value [none]

    设置该节点的节点 ID,覆盖 --ndb-connectstring 中设置的 ID。

  • --启用优化的节点选择

    Command-Line Format --启用优化的节点选择

    启用事务的节点选择优化。默认启用;使用 --skip-ndb-optimized-node-selection 禁用。

  • --ndb-tls-search-path

    Command-Line Format --ndb-tls-search-path=列表
    Type 路径名称
    Default Value (Unix) $HOME/ndb-tls
    Default Value (Windows) $HOMEDIR/ndb-tls

    指定要搜索CA文件的目录列表。在 Unix 平台上,目录名称以冒号 (:) 分隔;在 Windows 系统上,分号字符 (;) 用作分隔符。目录引用可以是相对的或绝对的,可以包含一个或多个环境变量,每个以美元符号 ($) 开头,并在使用前展开。

    搜索从左到右进行,直到找到文件。空字符串表示空搜索路径,导致所有搜索失败。点 (.) 表示搜索路径仅限于当前工作目录。

    如果没有提供搜索路径,将使用编译时的默认值。该值取决于平台:在 Windows 上是 \ndb-tls;在其他平台(包括 Linux)上是 $HOME/ndb-tls。这可以通过使用 -DWITH_NDB_TLS_SEARCH_PATH 编译 NDB Cluster 来覆盖。

  • --不使用默认值

    Command-Line Format --不使用默认值

    不从任何选项文件中读取默认值,除了登录文件。

  • --打印默认值

    Command-Line Format --打印默认值

    打印程序参数列表并退出。

  • --使用帮助

    Command-Line Format --使用帮助

    显示帮助文本并退出;与 --help 相同。

  • --详细信息

    Command-Line Format --详细信息

    在工具的输出中提供关于其进度的额外信息。

  • --版本信息

    Command-Line Format --版本信息

    显示版本信息并退出。

示例

首先,我们在 test 数据库中创建一个 NDB 表,使用以下 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));

当使用 --检查孤儿 对该表时,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

NDBT_ProgramExit: 0 - OK

工具报告说没有与列 c1 相关的 NDB BLOB 列部分,即使 c1 是一个 TEXT 列。这是因为,在 NDB 表中,只有 BLOBTEXT 列值的前 256 字节存储在线上,只有超出部分(如果有)才存储单独;因此,如果某一列的值都不超过 256 字节,那么 NDB 就不会为该列创建 BLOB 列部分。请参阅 第 13.7 节,“数据类型存储要求”,以获取更多信息。