- 25.6.17.1 The ndbinfo arbitrator_validity_detail Table
- 25.6.17.2 The ndbinfo arbitrator_validity_summary Table
- 25.6.17.3 The ndbinfo backup_id Table
- 25.6.17.4 The ndbinfo blobs Table
- 25.6.17.5 The ndbinfo blocks Table
- 25.6.17.6 The ndbinfo certificates Table
- 25.6.17.7 The ndbinfo cluster_locks Table
- 25.6.17.8 The ndbinfo cluster_operations Table
- 25.6.17.9 The ndbinfo cluster_transactions Table
- 25.6.17.10 The ndbinfo config_nodes Table
- 25.6.17.11 The ndbinfo config_params Table
- 25.6.17.12 The ndbinfo config_values Table
- 25.6.17.13 The ndbinfo counters Table
- 25.6.17.14 The ndbinfo cpudata Table
- 25.6.17.15 The ndbinfo cpudata_1sec Table
- 25.6.17.16 The ndbinfo cpudata_20sec Table
- 25.6.17.17 The ndbinfo cpudata_50ms Table
- 25.6.17.18 The ndbinfo cpuinfo Table
- 25.6.17.19 The ndbinfo cpustat Table
- 25.6.17.20 The ndbinfo cpustat_50ms Table
- 25.6.17.21 The ndbinfo cpustat_1sec Table
- 25.6.17.22 The ndbinfo cpustat_20sec Table
- 25.6.17.23 The ndbinfo dictionary_columns Table
- 25.6.17.24 The ndbinfo dictionary_tables Table
- 25.6.17.25 The ndbinfo dict_obj_info Table
- 25.6.17.26 The ndbinfo dict_obj_tree Table
- 25.6.17.27 The ndbinfo dict_obj_types Table
- 25.6.17.28 The ndbinfo disk_write_speed_base Table
- 25.6.17.29 The ndbinfo disk_write_speed_aggregate Table
- 25.6.17.30 The ndbinfo disk_write_speed_aggregate_node Table
- 25.6.17.31 The ndbinfo diskpagebuffer Table
- 25.6.17.32 The ndbinfo diskstat Table
- 25.6.17.33 The ndbinfo diskstats_1sec Table
- 25.6.17.34 The ndbinfo error_messages Table
- 25.6.17.35 The ndbinfo events Table
- 25.6.17.36 The ndbinfo files Table
- 25.6.17.37 The ndbinfo foreign_keys Table
- 25.6.17.38 The ndbinfo hash_maps Table
- 25.6.17.39 The ndbinfo hwinfo Table
- 25.6.17.40 The ndbinfo index_columns Table
- 25.6.17.41 The ndbinfo index_stats Table
- 25.6.17.42 The ndbinfo locks_per_fragment Table
- 25.6.17.43 The ndbinfo logbuffers Table
- 25.6.17.44 The ndbinfo logspaces Table
- 25.6.17.45 The ndbinfo membership Table
- 25.6.17.46 The ndbinfo memoryusage Table
- 25.6.17.47 The ndbinfo memory_per_fragment Table
- 25.6.17.48 The ndbinfo nodes Table
- 25.6.17.49 The ndbinfo operations_per_fragment Table
- 25.6.17.50 The ndbinfo pgman_time_track_stats Table
- 25.6.17.51 The ndbinfo processes Table
- 25.6.17.52 The ndbinfo resources Table
- 25.6.17.53 The ndbinfo restart_info Table
- 25.6.17.54 The ndbinfo server_locks Table
- 25.6.17.55 The ndbinfo server_operations Table
- 25.6.17.56 The ndbinfo server_transactions Table
- 25.6.17.57 The ndbinfo table_distribution_status Table
- 25.6.17.58 The ndbinfo table_fragments Table
- 25.6.17.59 The ndbinfo table_info Table
- 25.6.17.60 The ndbinfo table_replicas Table
- 25.6.17.61 The ndbinfo tc_time_track_stats Table
- 25.6.17.62 The ndbinfo threadblocks Table
- 25.6.17.63 The ndbinfo threads Table
- 25.6.17.64 The ndbinfo threadstat Table
- 25.6.17.65 The ndbinfo transporters Table
ndbinfo
is a database containing information specific to NDB Cluster.
This database contains a number of tables, each providing a different sort of data about NDB Cluster node status, resource usage, and operations. You can find more detailed information about each of these tables in the next several sections.
ndbinfo
is included with NDB Cluster support in the MySQL Server; no special compilation or configuration steps are required; the tables are created by the MySQL Server when it connects to the cluster. You can verify that ndbinfo
support is active in a given MySQL Server instance using SHOW PLUGINS
; if ndbinfo
support is enabled, you should see a row containing ndbinfo
in the Name
column and ACTIVE
in the Status
column, as shown here (emphasized text):
mysql> SHOW PLUGINS;
+----------------------------------+--------+--------------------+---------+---------+
| Name | Status | Type | Library | License |
+----------------------------------+--------+--------------------+---------+---------+
| binlog | ACTIVE | STORAGE ENGINE | NULL | GPL |
| mysql_native_password | ACTIVE | AUTHENTICATION | 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 |
+----------------------------------+--------+--------------------+---------+---------+
47 rows in set (0.00 sec)
You can also do this by checking the output of SHOW ENGINES
for a line including ndbinfo
in the Engine
column and YES
in the Support
column, as shown here (emphasized text):
mysql> SHOW ENGINES\G
*************************** 1. row ***************************
Engine: ndbcluster
Support: YES
Comment: Clustered, fault-tolerant tables
Transactions: YES
XA: NO
Savepoints: NO
*************************** 2. row ***************************
Engine: CSV
Support: YES
Comment: CSV storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 3. row ***************************
Engine: InnoDB
Support: DEFAULT
Comment: Supports transactions, row-level locking, and foreign keys
Transactions: YES
XA: YES
Savepoints: YES
*************************** 4. row ***************************
Engine: BLACKHOLE
Support: YES
Comment: /dev/null storage engine (anything you write to it disappears)
Transactions: NO
XA: NO
Savepoints: NO
*************************** 5. row ***************************
Engine: MyISAM
Support: YES
Comment: MyISAM 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: ARCHIVE
Support: YES
Comment: Archive storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 8. row ***************************
Engine: ndbinfo
Support: YES
Comment: NDB Cluster system information storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 9. row ***************************
Engine: PERFORMANCE_SCHEMA
Support: YES
Comment: Performance Schema
Transactions: NO
XA: NO
Savepoints: NO
*************************** 10. row ***************************
Engine: MEMORY
Support: YES
Comment: Hash based, stored in memory, useful for temporary tables
Transactions: NO
XA: NO
Savepoints: NO
10 rows in set (0.00 sec)
If ndbinfo
support is enabled, then you can access ndbinfo
using SQL statements in mysql or another MySQL client. For example, you can see ndbinfo
listed in the output of SHOW DATABASES
, as shown here (emphasized text):
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| ndbinfo |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.04 sec)
If the mysqld process was not started with the --ndbcluster
option, ndbinfo
is not available and is not displayed by SHOW DATABASES
. If mysqld was formerly connected to an NDB Cluster but the cluster becomes unavailable (due to events such as cluster shutdown, loss of network connectivity, and so forth), ndbinfo
and its tables remain visible, but an attempt to access any tables (other than blocks
or config_params
) fails with Got error 157 'Connection to NDB failed' from NDBINFO.
With the exception of the blocks
and config_params
tables, what we refer to as ndbinfo
“tables” are actually views generated from internal NDB
tables not normally visible to the MySQL Server. You can make these tables visible by setting the ndbinfo_show_hidden
system variable to ON
(or 1
), but this is normally not necessary.
All ndbinfo
tables are read-only, and are generated on demand when queried. Because many of them are generated in parallel by the data nodes while other are specific to a given SQL node, they are not guaranteed to provide a consistent snapshot.
In addition, pushing down of joins is not supported on ndbinfo
tables; so joining large ndbinfo
tables can require transfer of a large amount of data to the requesting API node, even when the query makes use of a WHERE
clause.
ndbinfo
tables are not included in the query cache. (Bug #59831)
You can select the ndbinfo
database with a USE
statement, and then issue a SHOW TABLES
statement to obtain a list of tables, just as for any other database, like this:
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)
All ndbinfo
tables use the NDB
storage engine; however, an ndbinfo
entry still appears in the output of SHOW ENGINES
and SHOW PLUGINS
as described previously.
You can execute SELECT
statements against these tables, just as you would normally expect:
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)
More complex queries, such as the two following SELECT
statements using the memoryusage
table, are possible:
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
table and column names are case-sensitive (as is the name of the ndbinfo
database itself). These identifiers are in lowercase. Trying to use the wrong lettercase results in an error, as shown in this example:
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 ignores the ndbinfo
database entirely, and excludes it from any output. This is true even when using the --databases
or --all-databases
option.
NDB Cluster also maintains tables in the INFORMATION_SCHEMA
information database, including the FILES
table which contains information about files used for NDB Cluster Disk Data storage, and the ndb_transid_mysql_connection_map
table, which shows the relationships between transactions, transaction coordinators, and NDB Cluster API nodes. For more information, see the descriptions of the tables or Section 25.6.18, “INFORMATION_SCHEMA Tables for NDB Cluster”.