25.6.17 NDB 集群信息数据库:ndbinfo
- 25.6.17.1 NDB 信息表:arbitrator_validity_detail 表
- 25.6.17.2 NDB 信息表:arbitrator_validity_summary 表
- 25.6.17.3 NDB 信息表:backup_id 表
- 25.6.17.4 NDB 信息表:blobs 表
- 25.6.17.5 NDB 信息表:blocks 表
- 25.6.17.6 NDB 信息表:certificates 表
- 25.6.17.7 NDB 信息表:cluster_locks 表
- 25.6.17.8 NDB 信息表:cluster_operations 表
- 25.6.17.9 NDB 信息表:cluster_transactions 表
- 25.6.17.10 NDB 信息表:config_nodes 表
- 25.6.17.11 NDB 信息表:config_params 表
- 25.6.17.12 NDB 信息表:config_values 表
- 25.6.17.13 NDB 信息表:counters 表
- 25.6.17.14 NDB 信息表:cpudata 表
- 25.6.17.15 NDBInfo cpudata_1sec 表
- 25.6.17.16 NDBInfo cpudata_20sec 表
- 25.6.17.17 NDBInfo cpudata_50ms 表
- 25.6.17.18 NDBInfo cpuinfo 表
- 25.6.17.19 NDBInfo cpustat 表
- 25.6.17.20 NDBInfo cpustat_50ms 表
- 25.6.17.21 NDBInfo cpustat_1sec 表
- 25.6.17.22 NDBInfo cpustat_20sec 表
- 25.6.17.23 NDBInfo dictionary_columns 表
- 25.6.17.24 NDBInfo dictionary_tables 表
- 25.6.17.25 NDBInfo dict_obj_info 表
- 25.6.17.26 NDBInfo dict_obj_tree 表
- 25.6.17.27 NDBInfo dict_obj_types 表
- 25.6.17.28 NDBInfo disk_write_speed_base 表
- 25.6.17.29 NDBINFO disk_write_speed_aggregate 表
- 25.6.17.30 NDBINFO disk_write_speed_aggregate_node 表
- 25.6.17.31 NDBINFO diskpagebuffer 表
- 25.6.17.32 NDBINFO diskstat 表
- 25.6.17.33 NDBINFO diskstats_1sec 表
- 25.6.17.34 NDBINFO error_messages 表
- 25.6.17.35 NDBINFO events 表
- 25.6.17.36 NDBINFO files 表
- 25.6.17.37 NDBINFO foreign_keys 表
- 25.6.17.38 NDBINFO hash_maps 表
- 25.6.17.39 NDBINFO hwinfo 表
- 25.6.17.40 NDBINFO index_columns 表
- 25.6.17.41 NDBINFO index_stats 表
- 25.6.17.42 NDBINFO locks_per_fragment 表
- 25.6.17.43 NDB 信息日志缓冲表
- 25.6.17.44 NDB 信息日志空间表
- 25.6.17.45 NDB 信息成员表
- 25.6.17.46 NDB 信息内存使用表
- 25.6.17.47 NDB 信息每个碎片的内存使用表
- 25.6.17.48 NDB 信息节点表
- 25.6.17.49 NDB 信息每个碎片的操作表
- 25.6.17.50 NDB 信息PGMAN时间跟踪统计表
- 25.6.17.51 NDB 信息进程表
- 25.6.17.52 NDB 信息资源表
- 25.6.17.53 NDB 信息重启信息表
- 25.6.17.54 NDB 信息服务器锁定表
- 25.6.17.55 NDB 信息服务器操作表
- 25.6.17.56 NDB 信息服务器事务表
- 25.6.17.57 NDBInfo 表:distribution_status 表
- 25.6.17.58 NDBInfo 表:table_fragments 表
- 25.6.17.59 NDBInfo 表:table_info 表
- 25.6.17.60 NDBInfo 表:table_replicas 表
- 25.6.17.61 NDBInfo 表:tc_time_track_stats 表
- 25.6.17.62 NDBInfo 表:threadblocks 表
- 25.6.17.63 NDBInfo 表:threads 表
- 25.6.17.64 NDBInfo 表:threadstat 表
- 25.6.17.65 NDBInfo 表:transporter_details 表
- 25.6.17.66 NDBInfo 表:transporters 表
ndbinfo
是一个包含 NDB 集群特定信息的数据库。
这个数据库中包含了多个表,每个表提供了不同类型的数据关于 NDB 集群节点状态、资源使用情况和操作。您可以在下一几个节中找到每个这些表的详细信息。
ndbinfo
是 MySQL 服务器的一部分,NDB 集群支持;不需要特殊编译或配置步骤;MySQL 服务器连接到集群时将创建这些表。您可以使用 SHOW PLUGINS
来验证 ndbinfo
支持是否已启用;如果 ndbinfo
支持已启用,您应该在 Name
列中看到 ndbinfo
和在 Status
列中看到 ACTIVE
,如下所示(强调文本):
mysql> SHOW PLUGINS;
+----------------------------------+--------+--------------------+---------+---------+
| Name | Status | Type | Library | License |
+----------------------------------+--------+--------------------+---------+---------+
| binlog | ACTIVE | STORAGE ENGINE | NULL | GPL |
| sha256_password | ACTIVE | AUTHENTICATION | NULL | GPL |
| caching_sha2_password | ACTIVE | AUTHENTICATION | NULL | GPL |
| sha2_cache_cleaner | ACTIVE | AUDIT | NULL | GPL |
| daemon_keyring_proxy_plugin | ACTIVE | DAEMON | NULL | GPL |
| CSV | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MEMORY | ACTIVE | STORAGE ENGINE | NULL | GPL |
| InnoDB | ACTIVE | STORAGE ENGINE | NULL | GPL |
| INNODB_TRX | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_CMP | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_CMP_RESET | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_CMPMEM | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_CMPMEM_RESET | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_CMP_PER_INDEX | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_CMP_PER_INDEX_RESET | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_BUFFER_PAGE | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_BUFFER_PAGE_LRU | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_BUFFER_POOL_STATS | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_TEMP_TABLE_INFO | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_METRICS | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_FT_DEFAULT_STOPWORD | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_FT_DELETED | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_FT_BEING_DELETED | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_FT_CONFIG | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_FT_INDEX_CACHE | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_FT_INDEX_TABLE | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_TABLES | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_TABLESTATS | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_INDEXES | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_TABLESPACES | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_COLUMNS | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_VIRTUAL | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_CACHED_INDEXES | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_SESSION_TEMP_TABLESPACES | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| MyISAM | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL | GPL |
| PERFORMANCE_SCHEMA | ACTIVE | STORAGE ENGINE | NULL | GPL |
| TempTable | ACTIVE | STORAGE ENGINE | NULL | GPL |
| ARCHIVE | ACTIVE | STORAGE ENGINE | NULL | GPL |
| BLACKHOLE | ACTIVE | STORAGE ENGINE | NULL | GPL |
| ndbcluster | ACTIVE | STORAGE ENGINE | NULL | GPL |
| ndbinfo | ACTIVE | STORAGE ENGINE | NULL | GPL |
| ndb_transid_mysql_connection_map | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| ngram | ACTIVE | FTPARSER | NULL | GPL |
| mysqlx_cache_cleaner | ACTIVE | AUDIT | NULL | GPL |
| mysqlx | ACTIVE | DAEMON | NULL | GPL |
| mysql_native_password | ACTIVE | AUTHENTICATION | NULL | GPL |
+----------------------------------+--------+--------------------+---------+---------+
47 rows in set (0.00 sec)
您也可以通过检查 SHOW ENGINES
的输出来验证,查找包含 ndbinfo
在 Engine
列中和 YES
在 Support
列中的行,如下所示(强调文本):
mysql> SHOW ENGINES\G
*************************** 1. row ***************************
Engine: MEMORY
Support: YES
Comment: Hash based, stored in memory, useful for temporary tables
Transactions: NO
XA: NO
Savepoints: NO
*************************** 2. row ***************************
Engine: InnoDB
Support: DEFAULT
Comment: Supports transactions, row-level locking, and foreign keys
Transactions: YES
XA: YES
Savepoints: YES
*************************** 3. row ***************************
Engine: PERFORMANCE_SCHEMA
Support: YES
Comment: Performance Schema
Transactions: NO
XA: NO
Savepoints: NO
*************************** 4. row ***************************
Engine: MyISAM
Support: YES
Comment: MyISAM storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 5. row ***************************
Engine: ndbinfo
Support: YES
Comment: MySQL Cluster system information storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 6. row ***************************
Engine: MRG_MYISAM
Support: YES
Comment: Collection of identical MyISAM tables
Transactions: NO
XA: NO
Savepoints: NO
*************************** 7. row ***************************
Engine: BLACKHOLE
Support: YES
Comment: /dev/null storage engine (anything you write to it disappears)
Transactions: NO
XA: NO
Savepoints: NO
*************************** 8. row ***************************
Engine: CSV
Support: YES
Comment: CSV storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 9. row ***************************
Engine: ARCHIVE
Support: YES
Comment: Archive storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 10. row ***************************
Engine: ndbcluster
Support: YES
Comment: Clustered, fault-tolerant tables
Transactions: YES
XA: NO
Savepoints: NO
10 rows in set (0.01 sec)
如果启用了ndbinfo
支持,那么可以使用SQL语句在mysql或其他MySQL客户端中访问ndbinfo
。例如,可以在SHOW DATABASES
的输出结果中看到ndbinfo
,如下所示(强调文本):
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| ndbinfo |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.04 sec)
如果mysqld进程没有使用--ndbcluster
选项启动,那么ndbinfo
不可用,并且不会在SHOW DATABASES
中显示。如果mysqld曾经连接到NDB集群,但集群变得不可用(例如由于集群关闭、网络连接丢失等事件),那么ndbinfo
和其表仍然可见,但是尝试访问任何其他表(除了blocks
或config_params
)将失败,并显示Got error 157 'Connection to NDB failed' from NDBINFO错误信息。
除了blocks
和config_params
表外,所谓的ndbinfo
“表”实际上是由内部NDB
表生成的视图,不通常可见于 MySQL 服务器。你可以通过将ndbinfo_ show_hidden
系统变量设置为ON
(或1
),使这些表可见,但这通常不必要。
所有ndbinfo
表都是只读的,并且在查询时生成。由于许多它们是在数据节点并行生成,而其他的是特定于给定的 SQL 节点,因此它们不能保证提供一致的快照。
此外,推送下降连接操作不支持在ndbinfo
表上;因此,在查询中使用WHERE子句时,连接大型ndbinfo
表可能需要将大量数据传输到请求 API 节点。
ndbinfo
表不包括在查询缓存中。 (Bug #59831)
您可以使用USE
语句选择ndbinfo
数据库,然后使用SHOW TABLES
语句获取表的列表,正如对任何其他数据库一样,如下所示:
mysql> USE ndbinfo;
Database changed
mysql> SHOW TABLES;
+---------------------------------+
| Tables_in_ndbinfo |
+---------------------------------+
| arbitrator_validity_detail |
| arbitrator_validity_summary |
| backup_id |
| blobs |
| blocks |
| certificates |
| cluster_locks |
| cluster_operations |
| cluster_transactions |
| config_nodes |
| config_params |
| config_values |
| counters |
| cpudata |
| cpudata_1sec |
| cpudata_20sec |
| cpudata_50ms |
| cpuinfo |
| cpustat |
| cpustat_1sec |
| cpustat_20sec |
| cpustat_50ms |
| dict_obj_info |
| dict_obj_tree |
| dict_obj_types |
| dictionary_columns |
| dictionary_tables |
| disk_write_speed_aggregate |
| disk_write_speed_aggregate_node |
| disk_write_speed_base |
| diskpagebuffer |
| diskstat |
| diskstats_1sec |
| error_messages |
| events |
| files |
| foreign_keys |
| hash_maps |
| hwinfo |
| index_columns |
| index_stats |
| locks_per_fragment |
| logbuffers |
| logspaces |
| membership |
| memory_per_fragment |
| memoryusage |
| nodes |
| operations_per_fragment |
| pgman_time_track_stats |
| processes |
| resources |
| restart_info |
| server_locks |
| server_operations |
| server_transactions |
| table_distribution_status |
| table_fragments |
| table_info |
| table_replicas |
| tc_time_track_stats |
| threadblocks |
| threads |
| threadstat |
| transporter_details |
| transporters |
+---------------------------------+
66 rows in set (0.00 sec)
所有ndbinfo
表都使用NDB
存储引擎;然而,在SHOW ENGINES
和SHOW PLUGINS
的输出中,ndbinfo
仍然会出现,如前所述。
您可以对这些表执行SELECT
语句,就像通常期望的那样:
mysql> SELECT * FROM memoryusage;
+---------+---------------------+--------+------------+------------+-------------+
| node_id | memory_type | used | used_pages | total | total_pages |
+---------+---------------------+--------+------------+------------+-------------+
| 5 | Data memory | 425984 | 13 | 2147483648 | 65536 |
| 5 | Long message buffer | 393216 | 1536 | 67108864 | 262144 |
| 6 | Data memory | 425984 | 13 | 2147483648 | 65536 |
| 6 | Long message buffer | 393216 | 1536 | 67108864 | 262144 |
| 7 | Data memory | 425984 | 13 | 2147483648 | 65536 |
| 7 | Long message buffer | 393216 | 1536 | 67108864 | 262144 |
| 8 | Data memory | 425984 | 13 | 2147483648 | 65536 |
| 8 | Long message buffer | 393216 | 1536 | 67108864 | 262144 |
+---------+---------------------+--------+------------+------------+-------------+
8 rows in set (0.09 sec)
更复杂的查询,例如以下两个使用memoryusage
表的SELECT
语句,是可能的:
mysql> SELECT SUM(used) as 'Data Memory Used, All Nodes'
> FROM memoryusage
> WHERE memory_type = 'Data memory';
+-----------------------------+
| Data Memory Used, All Nodes |
+-----------------------------+
| 6460 |
+-----------------------------+
1 row in set (0.09 sec)
mysql> SELECT SUM(used) as 'Long Message Buffer, All Nodes'
> FROM memoryusage
> WHERE memory_type = 'Long message buffer';
+-------------------------------------+
| Long Message Buffer Used, All Nodes |
+-------------------------------------+
| 1179648 |
+-------------------------------------+
1 row in set (0.08 sec)
ndbinfo
表和列名是大小写敏感的(正如ndbinfo
数据库本身的名称一样)。这些标识符都是小写字母。尝试使用错误的字母大小写将导致错误,如下所示:
mysql> SELECT * FROM nodes;
+---------+--------+---------+-------------+-------------------+
| node_id | uptime | status | start_phase | config_generation |
+---------+--------+---------+-------------+-------------------+
| 5 | 17707 | STARTED | 0 | 1 |
| 6 | 17706 | STARTED | 0 | 1 |
| 7 | 17705 | STARTED | 0 | 1 |
| 8 | 17704 | STARTED | 0 | 1 |
+---------+--------+---------+-------------+-------------------+
4 rows in set (0.06 sec)
mysql> SELECT * FROM Nodes;
ERROR 1146 (42S02): Table 'ndbinfo.Nodes' doesn't exist
mysqldump 完全忽略 ndbinfo
数据库,并将其排除在任何输出中。这是使用--databases
或--all- databases
选项时也一样的。
NDB 集群还维护了 INFORMATION_ SCHEMA
信息数据库中的表,包括FILES
表,该表包含 NDB 集群磁盘数据存储所用的文件信息,以及ndb_ transid_mysql_connection_map
表,该表显示事务、事务协调器和 NDB 集群 API 节点之间的关系。更多信息,请参阅表的描述或第25.6.18节,“NDB 集群 INFORMATION_SCHEMA 表”。