mysql cluster ndb_desc_MySql 5.7 中文文档 - 21.4.10 ndb_desc —描述 NDBtable | Docs4dev

ndb_desc工具提供了NDB表的详细描述,包括表的版本、分片类型、属性、索引等信息。通过示例展示了如何使用ndb_desc获取单个表或多表信息,以及特定索引的详情。输出中包含表的内存和磁盘存储信息,以及表空间的使用情况。此外,还介绍了如何查看表的属性和选项,如READ_ONLY和FULLY_REPLICATED。
摘要由CSDN通过智能技术生成

ndb_desc提供了一个或多个NDBtable 的详细说明。

Usage

ndb_desc -c connection_string tbl_name -d db_name [options]

ndb_desc -c connection_string index_name -d db_name -t tbl_name

本节稍后列出了可以与ndb_desc一起使用的其他选项。

Sample Output

MySQLtable 的创建和填充语句:

USE test;

CREATE TABLE fish (

id INT(11) NOT NULL AUTO_INCREMENT,

name VARCHAR(20) NOT NULL,

length_mm INT(11) NOT NULL,

weight_gm INT(11) NOT NULL,

PRIMARY KEY pk (id),

UNIQUE KEY uk (name)

) ENGINE=NDB;

INSERT INTO fish VALUES

(NULL, 'guppy', 35, 2), (NULL, 'tuna', 2500, 150000),

(NULL, 'shark', 3000, 110000), (NULL, 'manta ray', 1500, 50000),

(NULL, 'grouper', 900, 125000), (NULL ,'puffer', 250, 2500);

shell> ./ndb_desc -c localhost fish -d test -p

-- fish --

Version: 2

Fragment type: HashMapPartition

K Value: 6

Min load factor: 78

Max load factor: 80

Temporary table: no

Number of attributes: 4

Number of primary keys: 1

Length of frm data: 337

Max Rows: 0

Row Checksum: 1

Row GCI: 1

SingleUserMode: 0

ForceVarPart: 1

PartitionCount: 2

FragmentCount: 2

PartitionBalance: FOR_RP_BY_LDM

ExtraRowGciBits: 0

ExtraRowAuthorBits: 0

TableStatus: Retrieved

Table options:

HashMap: DEFAULT-HASHMAP-3840-2

-- Attributes --

id Int PRIMARY KEY DISTRIBUTION KEY AT=FIXED ST=MEMORY AUTO_INCR

name Varchar(20;latin1_swedish_ci) NOT NULL AT=SHORT_VAR ST=MEMORY DYNAMIC

length_mm Int NOT NULL AT=FIXED ST=MEMORY DYNAMIC

weight_gm Int NOT NULL AT=FIXED ST=MEMORY DYNAMIC

-- Indexes --

PRIMARY KEY(id) - UniqueHashIndex

PRIMARY(id) - OrderedIndex

uk(name) - OrderedIndex

uk$unique(name) - UniqueHashIndex

-- Per partition info --

Partition Row count Commit count Frag fixed memory Frag varsized memory Extent_space Free extent_space

0 2 2 32768 32768 0 0

1 4 4 32768 32768 0 0

NDBT_ProgramExit: 0 - OK

可以通过使用ndb_desc的名称(以空格分隔)在一次调用中获得有关多个 table 的信息。所有 table 必须位于同一数据库中。

您可以使用--table(缩写为-t)选项并提供索引名称作为ndb_desc的第一个参数来获取有关特定索引的其他信息,如下所示:

shell> ./ndb_desc uk -d test -t fish

-- uk --

Version: 2

Base table: fish

Number of attributes: 1

Logging: 0

Index type: OrderedIndex

Index status: Retrieved

-- Attributes --

name Varchar(20;latin1_swedish_ci) NOT NULL AT=SHORT_VAR ST=MEMORY

-- IndexTable 10/uk --

Version: 2

Fragment type: FragUndefined

K Value: 6

Min load factor: 78

Max load factor: 80

Temporary table: yes

Number of attributes: 2

Number of primary keys: 1

Length of frm data: 0

Max Rows: 0

Row Checksum: 1

Row GCI: 1

SingleUserMode: 2

ForceVarPart: 0

PartitionCount: 2

FragmentCount: 2

FragmentCountType: ONE_PER_LDM_PER_NODE

ExtraRowGciBits: 0

ExtraRowAuthorBits: 0

TableStatus: Retrieved

Table options:

-- Attributes --

name Varchar(20;latin1_swedish_ci) NOT NULL AT=SHORT_VAR ST=MEMORY

NDB$TNODE Unsigned [64] PRIMARY KEY DISTRIBUTION KEY AT=FIXED ST=MEMORY

-- Indexes --

PRIMARY KEY(NDB$TNODE) - UniqueHashIndex

NDBT_ProgramExit: 0 - OK

输出中的Version列包含 table 的架构对象版本。有关解释此值的信息,请参见NDB 架构对象版本。

可以使用ndb_desc输出中可见的,可以使用嵌入在CREATE TABLE和ALTER TABLE语句中的NDB_TABLEComments 设置的 table 属性中的三个。table 格的FRAGMENT_COUNT_TYPE始终显示在FragmentCountType列中。 READ_ONLY和FULLY_REPLICATED(如果设置为 1)在Table options列中显示。在mysqlClient 端中执行以下ALTER TABLE语句后,您可以看到此信息:

mysql> ALTER TABLE fish COMMENT='NDB_TABLE=READ_ONLY=1,FULLY_REPLICATED=1';

1 row in set, 1 warning (0.00 sec)

mysql> SHOW WARNINGS\G

+---------+------+---------------------------------------------------------------------------------------------------------+

| Level | Code | Message |

+---------+------+---------------------------------------------------------------------------------------------------------+

| Warning | 1296 | Got error 4503 'Table property is FRAGMENT_COUNT_TYPE=ONE_PER_LDM_PER_NODE but not in comment' from NDB |

+---------+------+---------------------------------------------------------------------------------------------------------+

1 row in set (0.00 sec)

发出警告是因为READ_ONLY=1要求 table 的分片计数类型为ONE_PER_LDM_PER_NODE_GROUP(或设置为ONE_PER_LDM_PER_NODE_GROUP)。 NDB在这种情况下会自动设置。您可以使用显示创建 table检查ALTER TABLE语句是否具有所需的效果:

mysql> SHOW CREATE TABLE fish\G

*************************** 1. row ***************************

Table: fish

Create Table: CREATE TABLE `fish` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(20) NOT NULL,

`length_mm` int(11) NOT NULL,

`weight_gm` int(11) NOT NULL,

PRIMARY KEY (`id`),

UNIQUE KEY `uk` (`name`)

) ENGINE=ndbcluster DEFAULT CHARSET=latin1

COMMENT='NDB_TABLE=READ_BACKUP=1,FULLY_REPLICATED=1'

1 row in set (0.01 sec)

由于未明确设置FRAGMENT_COUNT_TYPE,因此SHOW CREATE TABLE打印的 Comments 文本中未显示其值。 ndb_desc但是显示此属性的更新值。 Table options列显示刚刚启用的二进制属性。您可以在此处显示的输出中看到这一点(强调文本):

shell> ./ndb_desc -c localhost fish -d test -p

-- fish --

Version: 4

Fragment type: HashMapPartition

K Value: 6

Min load factor: 78

Max load factor: 80

Temporary table: no

Number of attributes: 4

Number of primary keys: 1

Length of frm data: 380

Max Rows: 0

Row Checksum: 1

Row GCI: 1

SingleUserMode: 0

ForceVarPart: 1

PartitionCount: 1

FragmentCount: 1

FragmentCountType: ONE_PER_LDM_PER_NODE_GROUP

ExtraRowGciBits: 0

ExtraRowAuthorBits: 0

TableStatus: Retrieved

Table options: readbackup, fullyreplicated

HashMap: DEFAULT-HASHMAP-3840-1

-- Attributes --

id Int PRIMARY KEY DISTRIBUTION KEY AT=FIXED ST=MEMORY AUTO_INCR

name Varchar(20;latin1_swedish_ci) NOT NULL AT=SHORT_VAR ST=MEMORY DYNAMIC

length_mm Int NOT NULL AT=FIXED ST=MEMORY DYNAMIC

weight_gm Int NOT NULL AT=FIXED ST=MEMORY DYNAMIC

-- Indexes --

PRIMARY KEY(id) - UniqueHashIndex

PRIMARY(id) - OrderedIndex

uk(name) - OrderedIndex

uk$unique(name) - UniqueHashIndex

-- Per partition info --

Partition Row count Commit count Frag fixed memory Frag varsized memory Extent_space Free extent_space

NDBT_ProgramExit: 0 - OK

Extent_space和Free extent_space列仅适用于磁盘上具有列的NDB个 table;对于仅具有内存列的 table,这些列始终包含值0。

为了说明它们的用法,我们修改了前面的示例。首先,我们必须创建必要的磁盘数据对象,如下所示:

CREATE LOGFILE GROUP lg_1

ADD UNDOFILE 'undo_1.log'

INITIAL_SIZE 16M

UNDO_BUFFER_SIZE 2M

ENGINE NDB;

ALTER LOGFILE GROUP lg_1

ADD UNDOFILE 'undo_2.log'

INITIAL_SIZE 12M

ENGINE NDB;

CREATE TABLESPACE ts_1

ADD DATAFILE 'data_1.dat'

USE LOGFILE GROUP lg_1

INITIAL_SIZE 32M

ENGINE NDB;

ALTER TABLESPACE ts_1

ADD DATAFILE 'data_2.dat'

INITIAL_SIZE 48M

ENGINE NDB;

现在,我们可以创建并填充fishtable 的版本,该 table 的 2 列存储在磁盘上(如果该 table 已经存在,则首先删除该 table 的先前版本):

CREATE TABLE fish (

id INT(11) NOT NULL AUTO_INCREMENT,

name VARCHAR(20) NOT NULL,

length_mm INT(11) NOT NULL,

weight_gm INT(11) NOT NULL,

PRIMARY KEY pk (id),

UNIQUE KEY uk (name)

) TABLESPACE ts_1 STORAGE DISK

ENGINE=NDB;

INSERT INTO fish VALUES

(NULL, 'guppy', 35, 2), (NULL, 'tuna', 2500, 150000),

(NULL, 'shark', 3000, 110000), (NULL, 'manta ray', 1500, 50000),

(NULL, 'grouper', 900, 125000), (NULL ,'puffer', 250, 2500);

当针对此版本的 table 运行时,ndb_desc将显示以下输出:

shell> ./ndb_desc -c localhost fish -d test -p

-- fish --

Version: 1

Fragment type: HashMapPartition

K Value: 6

Min load factor: 78

Max load factor: 80

Temporary table: no

Number of attributes: 4

Number of primary keys: 1

Length of frm data: 346

Max Rows: 0

Row Checksum: 1

Row GCI: 1

SingleUserMode: 0

ForceVarPart: 1

PartitionCount: 2

FragmentCount: 2

FragmentCountType: ONE_PER_LDM_PER_NODE

ExtraRowGciBits: 0

ExtraRowAuthorBits: 0

TableStatus: Retrieved

Table options:

HashMap: DEFAULT-HASHMAP-3840-2

-- Attributes --

id Int PRIMARY KEY DISTRIBUTION KEY AT=FIXED ST=MEMORY AUTO_INCR

name Varchar(20;latin1_swedish_ci) NOT NULL AT=SHORT_VAR ST=MEMORY

length_mm Int NOT NULL AT=FIXED ST=DISK

weight_gm Int NOT NULL AT=FIXED ST=DISK

-- Indexes --

PRIMARY KEY(id) - UniqueHashIndex

PRIMARY(id) - OrderedIndex

uk(name) - OrderedIndex

uk$unique(name) - UniqueHashIndex

-- Per partition info --

Partition Row count Commit count Frag fixed memory Frag varsized memory Extent_space Free extent_space

0 2 2 32768 32768 1048576 1044440

1 4 4 32768 32768 1048576 1044400

NDBT_ProgramExit: 0 - OK

这意味着在每个分区上从该 table 的 table 空间分配了 1048576 个字节,其中 1044440 个字节保持空闲状态以用于其他存储。换句话说,当前每个分区使用 1048576-1044440 = 4136 字节来存储该 table 的基于磁盘的列中的数据。显示为Free extent_space的字节数仅可用于存储fishtable 中的磁盘列数据。因此,从INFORMATION_SCHEMA.FILEStable 中选择时看不到它。

对于完全复制的 table,ndb_desc仅显示持有主分区片段副本的节点;具有复制片段副本的节点(仅)将被忽略。从 NDB 7.5.4 开始,您可以使用mysqlClient 端从ndbinfo数据库中的table_distribution_status,table_fragments,table_info和table_replicastable 中获取此类信息。

下 table 包含特定于ndb_desc的选项。附加说明如下 table 所示。有关大多数 NDB 群集程序(包括ndb_desc)共有的选项,请参见第 21.4.32 节“ NDB 群集程序的公用选项-NDB 群集程序的公用选项”。

table21.246 ndb_desc 程序的命令行选项

FormatDescription添加,不建议使用或删除

--auto-inc ,

-a如果 table 具有一个ADDED,则显示 AUTO_INCREMENT 整体的下一个值NDB 7.6.14

--blob-info ,

-b在输出中包括 BLOBtable 的分区信息。要求还使用-p 选项(在所有基于 MySQL 5.7 的发行版中受支持)

--context ,

-x显示 table 的其他信息,例如数据库,架构,名称,内部 ID添加:NDB 7.6.14

--database=dbname ,

-d包含 table 的数据库名称(在所有基于 MySQL 5.7 的版本中受支持)

--extra-node-info ,

-n在输出中包括分区到数据节点的 Map。要求还使用-p 选项(在所有基于 MySQL 5.7 的发行版中受支持)

--extra-partition-info ,

-p显示有关分区的信息(在所有基于 MySQL 5.7 的版本中受支持)

--retries=# ,

-r重试连接的次数(每秒一次)(所有基于 MySQL 5.7 的版本均支持)

--table=tbl_name ,

-t指定要在其中查找索引的 table。使用此选项时,-p 和-n 无效,将被忽略(在所有基于 MySQL 5.7 的发行版中受支持)

--unqualified ,

-u使用非限定的 table 名(所有基于 MySQL 5.7 的版本均支持)

--auto-inc , -a

显示 table 的AUTO_INCREMENT列的下一个值(如果有)。

--blob-info , -b

包括有关下级BLOB和TEXT列的信息。

--context , -x

显示 table 的其他上下文信息,例如架构,数据库名称,table 名称和 table 的内部 ID。

--database=db_name , -d

指定应在其中找到 table 的数据库。

--extra-node-info , -n

包括有关 table 分区和它们所驻留的数据节点之间的 Map 的信息。此信息对于验证分发感知机制和支持更有效的应用程序访问 NDB 群集中存储的数据非常有用。

--extra-partition-info , -p

打印有关 table 分区的其他信息。

--retries=# , -r

放弃之前,请尝试多次连接。每秒进行一次连接尝试。

--table=tbl_name , -t

指定要在其中查找索引的 table。

--unqualified , -u

使用不合格的 table 名。

在 NDB 7.5.3 和更高版本中,输出中列出的 table 索引按 ID 排序。以前,这不是确定性的,并且可能因平台而异。 (缺陷#81763,错误#23547742)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值