本节讨论了几条在管理和监控连接到 NDB Cluster 的 MySQL 服务器时可能有用的 SQL 语句,并且在某些情况下提供关于集群本身的信息。This section discusses several SQL statements that can prove useful in managing and monitoring a MySQL server that is connected to an NDB Cluster, and in some cases provide information about the cluster itself.
SHOW ENGINE NDB STATUS,SHOW ENGINE NDBCLUSTER STATUSSHOW ENGINE NDB STATUS,SHOW ENGINE NDBCLUSTER STATUS该语句的输出包含有关服务器与集群连接的信息、NDB Cluster 对象的创建与使用,以及 NDB Cluster 复制的二进制日志情况。The output of this statement contains information about the server's connection to the cluster, creation and usage of NDB Cluster objects, and binary logging for NDB Cluster replication.
参见 第 15.7.7.16 节,“SHOW ENGINE 语句”,获取使用示例及更详细的信息。See Section 15.7.7.16, “SHOW ENGINE Statement”, for a usage example and more detailed information.
此语句可用于确定 MySQL 服务器中是否启用了集群支持,如果启用,还可以检查其是否处于活动状态。This statement can be used to determine whether or not clustering support is enabled in the MySQL server, and if so, whether it is active.
有关更详细的信息,请参阅 第 15.7.7.17 节,“SHOW ENGINES 语句”。See Section 15.7.7.17, “SHOW ENGINES Statement”, for more detailed information.
SELECT * FROM INFORMATION_SCHEMA.ENGINES [WHERE ENGINE LIKE 'NDB%']这相当于
SHOW ENGINES,但使用的是INFORMATION_SCHEMA数据库中的ENGINES表。与SHOW ENGINES语句不同,可以使用LIKE子句过滤结果,并选择特定列以获取可能在脚本中有用的信息。例如,以下查询显示服务器是否构建时支持NDB,如果支持,是否已启用:This is the equivalent ofSHOW ENGINES, but uses theENGINEStable of theINFORMATION_SCHEMAdatabase. Unlike the case with theSHOW ENGINESstatement, it is possible to filter the results using aLIKEclause, and to select specific columns to obtain information that may be of use in scripts. For example, the following query shows whether the server was built withNDBsupport and, if so, whether it is enabled:mysql>
SELECT ENGINE, SUPPORT FROM INFORMATION_SCHEMA.ENGINES->WHERE ENGINE LIKE 'NDB%';+------------+---------+ | ENGINE | SUPPORT | +------------+---------+ | ndbcluster | YES | | ndbinfo | YES | +------------+---------+如果未启用
NDB支持,上述查询将返回空集。有关更多信息,请参见 第 28.3.13 节,“INFORMATION_SCHEMA ENGINES 表”。IfNDBsupport is not enabled, the preceding query returns an empty set. See Section 28.3.13, “The INFORMATION_SCHEMA ENGINES Table”, for more information.此语句提供了与
NDB存储引擎相关的大多数服务器系统变量及其值,如下所示:This statement provides a list of most server system variables relating to theNDBstorage engine, and their values, as shown here:mysql>
SHOW VARIABLES LIKE 'NDB%';+--------------------------------------------+----------------------------------+ | Variable_name | Value | +--------------------------------------------+----------------------------------+ | ndb_allow_copying_alter_table | ON | | ndb_applier_allow_skip_epoch | OFF | | ndb_applier_conflict_role | NONE | | ndb_autoincrement_prefetch_sz | 512 | | ndb_batch_size | 32768 | | ndb_blob_read_batch_bytes | 65536 | | ndb_blob_write_batch_bytes | 65536 | | ndb_clear_apply_status | ON | | ndb_cluster_connection_pool | 1 | | ndb_cluster_connection_pool_nodeids | | | ndb_connectstring | 127.0.0.1 | | ndb_data_node_neighbour | 0 | | ndb_default_column_format | FIXED | | ndb_deferred_constraints | 0 | | ndb_distribution | KEYHASH | | ndb_eventbuffer_free_percent | 20 | | ndb_eventbuffer_max_alloc | 0 | | ndb_extra_logging | 1 | | ndb_force_send | ON | | ndb_fully_replicated | OFF | | ndb_index_stat_enable | ON | | ndb_index_stat_option | loop_enable=1000ms, loop_idle=1000ms,loop_busy=100ms,update_batch=1,read_batch=4,idle_batch=32, check_batch=8,check_delay=10m,delete_batch=8,clean_delay=1m,error_batch=4, error_delay=1m,evict_batch=8,evict_delay=1m,cache_limit=32M,cache_lowpct=90, zero_total=0 | | ndb_join_pushdown | ON | | ndb_log_apply_status | OFF | | ndb_log_bin | OFF | | ndb_log_binlog_index | ON | | ndb_log_empty_epochs | OFF | | ndb_log_empty_update | OFF | | ndb_log_exclusive_reads | OFF | | ndb_log_fail_terminate | OFF | | ndb_log_orig | OFF | | ndb_log_transaction_compression | OFF | | ndb_log_transaction_compression_level_zstd | 3 | | ndb_log_transaction_dependency | OFF | | ndb_log_transaction_id | OFF | | ndb_log_update_as_write | ON | | ndb_log_update_minimal | OFF | | ndb_log_updated_only | ON | | ndb_metadata_check | ON | | ndb_metadata_check_interval | 60 | | ndb_metadata_sync | OFF | | ndb_mgm_tls | relaxed | | ndb_mgmd_host | 127.0.0.1 | | ndb_nodeid | 0 | | ndb_optimization_delay | 10 | | ndb_optimized_node_selection | 3 | | ndb_read_backup | ON | | ndb_recv_thread_activation_threshold | 8 | | ndb_recv_thread_cpu_mask | | | ndb_replica_batch_size | 2097152 | | ndb_replica_blob_write_batch_bytes | 2097152 | | ndb_report_thresh_binlog_epoch_slip | 10 | | ndb_report_thresh_binlog_mem_usage | 10 | | ndb_row_checksum | 1 | | ndb_schema_dist_lock_wait_timeout | 30 | | ndb_schema_dist_timeout | 120 | | ndb_schema_dist_upgrade_allowed | ON | | ndb_show_foreign_key_mock_tables | OFF | | ndb_slave_conflict_role | NONE | | ndb_table_no_logging | OFF | | ndb_table_temporary | OFF | | ndb_tls_search_path | $HOME/ndb-tls | | ndb_use_copying_alter_table | OFF | | ndb_use_exact_count | OFF | | ndb_use_transactions | ON | | ndb_version | 524544 | | ndb_version_string | ndb-8.4.0 | | ndb_wait_connected | 120 | | ndb_wait_setup | 120 | | ndbinfo_database | ndbinfo | | ndbinfo_max_bytes | 0 | | ndbinfo_max_rows | 10 | | ndbinfo_offline | OFF | | ndbinfo_show_hidden | OFF | | ndbinfo_table_prefix | ndb$ | | ndbinfo_version | 524544 | +--------------------------------------------+----------------------------------+ 74 rows in set (0.01 sec)有关更多信息,请参见 第 7.1.8 节,“服务器系统变量”。See Section 7.1.8, “Server System Variables”, for more information.
SELECT * FROM performance_schema.global_variables WHERE VARIABLE_NAME LIKE 'NDB%'此语句等同于前一节中描述的
SHOW VARIABLES语句,并提供几乎相同的输出,如下所示:This statement is the equivalent of theSHOW VARIABLESstatement described in the previous item, and provides almost identical output, as shown here:mysql>
SELECT * FROM performance_schema.global_variables->WHERE VARIABLE_NAME LIKE 'NDB%';+--------------------------------------+---------------------------------------+ | VARIABLE_NAME | VARIABLE_VALUE | +--------------------------------------+---------------------------------------+ | ndb_allow_copying_alter_table | ON | | ndb_autoincrement_prefetch_sz | 512 | | ndb_batch_size | 32768 | | ndb_blob_read_batch_bytes | 65536 | | ndb_blob_write_batch_bytes | 65536 | | ndb_clear_apply_status | ON | | ndb_cluster_connection_pool | 1 | | ndb_cluster_connection_pool_nodeids | | | ndb_connectstring | 127.0.0.1 | | ndb_data_node_neighbour | 0 | | ndb_default_column_format | FIXED | | ndb_deferred_constraints | 0 | | ndb_distribution | KEYHASH | | ndb_eventbuffer_free_percent | 20 | | ndb_eventbuffer_max_alloc | 0 | | ndb_extra_logging | 1 | | ndb_force_send | ON | | ndb_fully_replicated | OFF | | ndb_index_stat_enable | ON | | ndb_index_stat_option | loop_enable=1000ms,loop_idle=1000ms, loop_busy=100ms,update_batch=1,read_batch=4,idle_batch=32,check_batch=8, check_delay=10m,delete_batch=8,clean_delay=1m,error_batch=4,error_delay=1m, evict_batch=8,evict_delay=1m,cache_limit=32M,cache_lowpct=90,zero_total=0 | | ndb_join_pushdown | ON | | ndb_log_apply_status | OFF | | ndb_log_bin | OFF | | ndb_log_binlog_index | ON | | ndb_log_empty_epochs | OFF | | ndb_log_empty_update | OFF | | ndb_log_exclusive_reads | OFF | | ndb_log_orig | OFF | | ndb_log_transaction_id | OFF | | ndb_log_update_as_write | ON | | ndb_log_update_minimal | OFF | | ndb_log_updated_only | ON | | ndb_metadata_check | ON | | ndb_metadata_check_interval | 60 | | ndb_metadata_sync | OFF | | ndb_mgmd_host | 127.0.0.1 | | ndb_nodeid | 0 | | ndb_optimization_delay | 10 | | ndb_optimized_node_selection | 3 | | ndb_read_backup | ON | | ndb_recv_thread_activation_threshold | 8 | | ndb_recv_thread_cpu_mask | | | ndb_report_thresh_binlog_epoch_slip | 10 | | ndb_report_thresh_binlog_mem_usage | 10 | | ndb_row_checksum | 1 | | ndb_schema_dist_lock_wait_timeout | 30 | | ndb_schema_dist_timeout | 120 | | ndb_schema_dist_upgrade_allowed | ON | | ndb_show_foreign_key_mock_tables | OFF | | ndb_slave_conflict_role | NONE | | ndb_table_no_logging | OFF | | ndb_table_temporary | OFF | | ndb_use_copying_alter_table | OFF | | ndb_use_exact_count | OFF | | ndb_use_transactions | ON | | ndb_version | 524308 | | ndb_version_string | ndb-8.4.7 | | ndb_wait_connected | 30 | | ndb_wait_setup | 30 | | ndbinfo_database | ndbinfo | | ndbinfo_max_bytes | 0 | | ndbinfo_max_rows | 10 | | ndbinfo_offline | OFF | | ndbinfo_show_hidden | OFF | | ndbinfo_table_prefix | ndb$ | | ndbinfo_version | 524308 | +--------------------------------------+---------------------------------------+与
SHOW VARIABLES语句不同,可以选择单独的列。例如:Unlike the case with theSHOW VARIABLESstatement, it is possible to select individual columns. For example:mysql>
SELECT VARIABLE_VALUE->FROM performance_schema.global_variables->WHERE VARIABLE_NAME = 'ndb_force_send';+----------------+ | VARIABLE_VALUE | +----------------+ | ON | +----------------+更有用的查询如下所示:A more useful query is shown here:
mysql>
SELECT VARIABLE_NAME AS Name, VARIABLE_VALUE AS Value>FROM performance_schema.global_variables>WHERE VARIABLE_NAME>IN ('version', 'ndb_version',>'ndb_version_string', 'ndbinfo_version');+--------------------+---------------+ | Name | Value | +--------------------+---------------+ | ndb_version | 524544 | | ndb_version_string | ndb-8.4.0 | | ndbinfo_version | 524544 | | version | 8.4.0-cluster | +--------------------+---------------+ 4 rows in set (0.00 sec)欲了解更多信息,请参见 第 29.12.15 节,“性能模式状态变量表”,以及 第 7.1.8 节,“服务器系统变量”。For more information, see Section 29.12.15, “Performance Schema Status Variable Tables”, and Section 7.1.8, “Server System Variables”.
该语句可以一目了然地显示 MySQL 服务器是否作为集群 SQL 节点运行,如果是,它将提供 MySQL 服务器的集群节点 ID、所连接的集群管理服务器的主机名和端口,以及集群中的数据节点数量,如下所示:This statement shows at a glance whether or not the MySQL server is acting as a cluster SQL node, and if so, it provides the MySQL server's cluster node ID, the host name and port for the cluster management server to which it is connected, and the number of data nodes in the cluster, as shown here:
mysql>
SHOW STATUS LIKE 'NDB%';+----------------------------------------------+-------------------------------+ | Variable_name | Value | +----------------------------------------------+-------------------------------+ | Ndb_metadata_detected_count | 0 | | Ndb_cluster_node_id | 100 | | Ndb_config_from_host | 127.0.0.1 | | Ndb_config_from_port | 1186 | | Ndb_number_of_data_nodes | 2 | | Ndb_number_of_ready_data_nodes | 2 | | Ndb_connect_count | 0 | | Ndb_execute_count | 0 | | Ndb_scan_count | 0 | | Ndb_pruned_scan_count | 0 | | Ndb_schema_locks_count | 0 | | Ndb_api_wait_exec_complete_count_session | 0 | | Ndb_api_wait_scan_result_count_session | 0 | | Ndb_api_wait_meta_request_count_session | 1 | | Ndb_api_wait_nanos_count_session | 163446 | | Ndb_api_bytes_sent_count_session | 60 | | Ndb_api_bytes_received_count_session | 28 | | Ndb_api_trans_start_count_session | 0 | | Ndb_api_trans_commit_count_session | 0 | | Ndb_api_trans_abort_count_session | 0 | | Ndb_api_trans_close_count_session | 0 | | Ndb_api_pk_op_count_session | 0 | | Ndb_api_uk_op_count_session | 0 | | Ndb_api_table_scan_count_session | 0 | | Ndb_api_range_scan_count_session | 0 | | Ndb_api_pruned_scan_count_session | 0 | | Ndb_api_scan_batch_count_session | 0 | | Ndb_api_read_row_count_session | 0 | | Ndb_api_trans_local_read_row_count_session | 0 | | Ndb_api_adaptive_send_forced_count_session | 0 | | Ndb_api_adaptive_send_unforced_count_session | 0 | | Ndb_api_adaptive_send_deferred_count_session | 0 | | Ndb_trans_hint_count_session | 0 | | Ndb_sorted_scan_count | 0 | | Ndb_pushed_queries_defined | 0 | | Ndb_pushed_queries_dropped | 0 | | Ndb_pushed_queries_executed | 0 | | Ndb_pushed_reads | 0 | | Ndb_last_commit_epoch_server | 37632503447571 | | Ndb_last_commit_epoch_session | 0 | | Ndb_system_name | MC_20191126162038 | | Ndb_api_event_data_count_injector | 0 | | Ndb_api_event_nondata_count_injector | 0 | | Ndb_api_event_bytes_count_injector | 0 | | Ndb_api_wait_exec_complete_count_slave | 0 | | Ndb_api_wait_scan_result_count_slave | 0 | | Ndb_api_wait_meta_request_count_slave | 0 | | Ndb_api_wait_nanos_count_slave | 0 | | Ndb_api_bytes_sent_count_slave | 0 | | Ndb_api_bytes_received_count_slave | 0 | | Ndb_api_trans_start_count_slave | 0 | | Ndb_api_trans_commit_count_slave | 0 | | Ndb_api_trans_abort_count_slave | 0 | | Ndb_api_trans_close_count_slave | 0 | | Ndb_api_pk_op_count_slave | 0 | | Ndb_api_uk_op_count_slave | 0 | | Ndb_api_table_scan_count_slave | 0 | | Ndb_api_range_scan_count_slave | 0 | | Ndb_api_pruned_scan_count_slave | 0 | | Ndb_api_scan_batch_count_slave | 0 | | Ndb_api_read_row_count_slave | 0 | | Ndb_api_trans_local_read_row_count_slave | 0 | | Ndb_api_adaptive_send_forced_count_slave | 0 | | Ndb_api_adaptive_send_unforced_count_slave | 0 | | Ndb_api_adaptive_send_deferred_count_slave | 0 | | Ndb_slave_max_replicated_epoch | 0 | | Ndb_api_wait_exec_complete_count | 4 | | Ndb_api_wait_scan_result_count | 7 | | Ndb_api_wait_meta_request_count | 172 | | Ndb_api_wait_nanos_count | 1083548094028 | | Ndb_api_bytes_sent_count | 4640 | | Ndb_api_bytes_received_count | 109356 | | Ndb_api_trans_start_count | 4 | | Ndb_api_trans_commit_count | 1 | | Ndb_api_trans_abort_count | 1 | | Ndb_api_trans_close_count | 4 | | Ndb_api_pk_op_count | 2 | | Ndb_api_uk_op_count | 0 | | Ndb_api_table_scan_count | 1 | | Ndb_api_range_scan_count | 1 | | Ndb_api_pruned_scan_count | 0 | | Ndb_api_scan_batch_count | 1 | | Ndb_api_read_row_count | 3 | | Ndb_api_trans_local_read_row_count | 2 | | Ndb_api_adaptive_send_forced_count | 1 | | Ndb_api_adaptive_send_unforced_count | 5 | | Ndb_api_adaptive_send_deferred_count | 0 | | Ndb_api_event_data_count | 0 | | Ndb_api_event_nondata_count | 0 | | Ndb_api_event_bytes_count | 0 | | Ndb_metadata_excluded_count | 0 | | Ndb_metadata_synced_count | 0 | | Ndb_conflict_fn_max | 0 | | Ndb_conflict_fn_old | 0 | | Ndb_conflict_fn_max_del_win | 0 | | Ndb_conflict_fn_epoch | 0 | | Ndb_conflict_fn_epoch_trans | 0 | | Ndb_conflict_fn_epoch2 | 0 | | Ndb_conflict_fn_epoch2_trans | 0 | | Ndb_conflict_trans_row_conflict_count | 0 | | Ndb_conflict_trans_row_reject_count | 0 | | Ndb_conflict_trans_reject_count | 0 | | Ndb_conflict_trans_detect_iter_count | 0 | | Ndb_conflict_trans_conflict_commit_count | 0 | | Ndb_conflict_epoch_delete_delete_count | 0 | | Ndb_conflict_reflected_op_prepare_count | 0 | | Ndb_conflict_reflected_op_discard_count | 0 | | Ndb_conflict_refresh_op_count | 0 | | Ndb_conflict_last_conflict_epoch | 0 | | Ndb_conflict_last_stable_epoch | 0 | | Ndb_index_stat_status | allow:1,enable:1,busy:0, loop:1000,list:(new:0,update:0,read:0,idle:0,check:0,delete:0,error:0,total:0), analyze:(queue:0,wait:0),stats:(nostats:0,wait:0),total:(analyze:(all:0,error:0), query:(all:0,nostats:0,error:0),event:(act:0,skip:0,miss:0),cache:(refresh:0, clean:0,pinned:0,drop:0,evict:0)),cache:(query:0,clean:0,drop:0,evict:0, usedpct:0.00,highpct:0.00) | | Ndb_index_stat_cache_query | 0 | | Ndb_index_stat_cache_clean | 0 | +----------------------------------------------+-------------------------------+如果 MySQL 服务器是以
NDB支持构建的,但当前未连接到集群,则此语句输出的每一行在Value列中都包含零或空字符串。If the MySQL server was built withNDBsupport, but it is not currently connected to a cluster, every row in the output of this statement contains a zero or an empty string for theValuecolumn.另请参见 第 15.7.7.37 节,“SHOW STATUS 语句”。See also Section 15.7.7.37, “SHOW STATUS Statement”.
SELECT * FROM performance_schema.global_status WHERE VARIABLE_NAME LIKE 'NDB%'此语句提供的输出与前一项中讨论的
SHOW STATUS语句类似。与SHOW STATUS不同的是,可以使用SELECT语句在 SQL 中提取数值,以在脚本中用于监控和自动化目的。This statement provides similar output to theSHOW STATUSstatement discussed in the previous item. Unlike the case withSHOW STATUS, it is possible usingSELECTstatements to extract values in SQL for use in scripts for monitoring and automation purposes.更多信息,请参见 第 29.12.15 节,“Performance Schema 状态变量表”。For more information, see Section 29.12.15, “Performance Schema Status Variable Tables”.
SELECT * FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE 'NDB%'该语句显示来自信息模式
PLUGINS表的关于与 NDB Cluster 关联的插件的信息,例如版本、作者和许可证,如下所示:This statement displays information from the Information SchemaPLUGINStable about plugins associated with NDB Cluster, such as version, author, and license, as shown here:mysql>
SELECT * FROM INFORMATION_SCHEMA.PLUGINS>WHERE PLUGIN_NAME LIKE 'NDB%'\G*************************** 1. row *************************** PLUGIN_NAME: ndbcluster PLUGIN_VERSION: 1.0 PLUGIN_STATUS: ACTIVE PLUGIN_TYPE: STORAGE ENGINE PLUGIN_TYPE_VERSION: 80409.0 PLUGIN_LIBRARY: NULL PLUGIN_LIBRARY_VERSION: NULL PLUGIN_AUTHOR: Oracle Corporation PLUGIN_DESCRIPTION: Clustered, fault-tolerant tables PLUGIN_LICENSE: GPL LOAD_OPTION: ON *************************** 2. row *************************** PLUGIN_NAME: ndbinfo PLUGIN_VERSION: 0.1 PLUGIN_STATUS: ACTIVE PLUGIN_TYPE: STORAGE ENGINE PLUGIN_TYPE_VERSION: 80409.0 PLUGIN_LIBRARY: NULL PLUGIN_LIBRARY_VERSION: NULL PLUGIN_AUTHOR: Oracle Corporation PLUGIN_DESCRIPTION: MySQL Cluster system information storage engine PLUGIN_LICENSE: GPL LOAD_OPTION: ON *************************** 3. row *************************** PLUGIN_NAME: ndb_transid_mysql_connection_map PLUGIN_VERSION: 0.1 PLUGIN_STATUS: ACTIVE PLUGIN_TYPE: INFORMATION SCHEMA PLUGIN_TYPE_VERSION: 80409.0 PLUGIN_LIBRARY: NULL PLUGIN_LIBRARY_VERSION: NULL PLUGIN_AUTHOR: Oracle Corporation PLUGIN_DESCRIPTION: Map between MySQL connection ID and NDB transaction ID PLUGIN_LICENSE: GPL LOAD_OPTION: ON您也可以使用
SHOW PLUGINS语句来显示此信息,但该语句的输出不易筛选。另请参见 MySQL 插件 API,该文档描述了PLUGINS表中的信息是如何获取的及其位置。You can also use theSHOW PLUGINSstatement to display this information, but the output from that statement cannot easily be filtered. See also The MySQL Plugin API, which describes where and how the information in thePLUGINStable is obtained.
您还可以查询 ndbinfo 信息数据库中的表,以获取有关许多 NDB 集群操作的实时数据。参见 第 25.6.15 节,“ndbinfo:NDB 集群信息数据库”。You can also query the tables in the
ndbinfo information database for
real-time data about many NDB Cluster operations. See
Section 25.6.15, “ndbinfo: The NDB Cluster Information Database”.