MariaDB 10.1.2:Galera 集群成员和状态相关的 INFORMATION_SCHEMA 表
MariaDB Galera 服务器将所有与集群相关的信息,如节点状态、集群状态、成员身份等,都记录在错误日志中。MariaDB 10.1.2 引入了一个新的 INFORMATION SCHEMA 插件 WSREP_INFO,可以通过 INFORMATION SCHEMA 表查询这些信息。WSREP_INFO 插件向 Information Schema 添加了两个新表:WSREP_MEMBERSHIP
和 WSREP_STATUS
。该插件默认不启用,因此要使用它,需要先安装
MariaDB [test]> INSTALL SONAME 'wsrep_status'; Query OK, 0 rows affected (0.04 sec) MariaDB [test]> SHOW PLUGINS; +-----------------------------+----------+--------------------+-----------------+---------+ | Name | Status | Type | Library | License | +-----------------------------+----------+--------------------+-----------------+---------+ ... | WSREP_MEMBERSHIP | ACTIVE | INFORMATION SCHEMA | wsrep_status.so | GPL | | WSREP_STATUS | ACTIVE | INFORMATION SCHEMA | wsrep_status.so | GPL | +-----------------------------+----------+--------------------+-----------------+---------+ 52 rows in set (0.01 sec) MariaDB [test]> SHOW CREATE TABLE INFORMATION_SCHEMA.WSREP_MEMBERSHIPG *************************** 1. row *************************** Table: WSREP_MEMBERSHIP Create Table: CREATE TEMPORARY TABLE `WSREP_MEMBERSHIP` ( `INDEX` int(11) NOT NULL DEFAULT '0', `UUID` varchar(36) NOT NULL DEFAULT '', `NAME` varchar(32) NOT NULL DEFAULT '', `ADDRESS` varchar(256) NOT NULL DEFAULT '' ) ENGINE=MEMORY DEFAULT CHARSET=utf8 1 row in set (0.00 sec) MariaDB [test]> SHOW CREATE TABLE INFORMATION_SCHEMA.WSREP_STATUSG *************************** 1. row *************************** Table: WSREP_STATUS Create Table: CREATE TEMPORARY TABLE `WSREP_STATUS` ( `NODE_INDEX` int(11) NOT NULL DEFAULT '0', `NODE_STATUS` varchar(16) NOT NULL DEFAULT '', `CLUSTER_STATUS` varchar(16) NOT NULL DEFAULT '', `CLUSTER_SIZE` int(11) NOT NULL DEFAULT '0', `CLUSTER_STATE_UUID` varchar(36) NOT NULL DEFAULT '', `CLUSTER_STATE_SEQNO` bigint(21) NOT NULL DEFAULT '0', `CLUSTER_CONF_ID` bigint(21) NOT NULL DEFAULT '0', `GAP` varchar(10) NOT NULL DEFAULT '', `PROTOCOL_VERSION` int(11) NOT NULL DEFAULT '0' ) ENGINE=MEMORY DEFAULT CHARSET=utf8 1 row in set (0.00 sec) MariaDB [test]> SELECT @@wsrep_provider; +----------------------------------+ | @@wsrep_provider | +----------------------------------+ | /usr/lib/galera/libgalera_smm.so | +----------------------------------+ 1 row in set (0.00 sec)
安装 WSREP_INFO 插件后,让我们来看看这些表在 3 节点集群中的内容。
MariaDB [test]> SELECT * FROM INFORMATION_SCHEMA.WSREP_MEMBERSHIP; +-------+--------------------------------------+----------+-----------------+ | INDEX | UUID | NAME | ADDRESS | +-------+--------------------------------------+----------+-----------------+ | 0 | 19058073-8940-11e4-8570-16af7bf8fced | my_node1 | 10.0.2.15:16001 | | 1 | 19f2b0e0-8942-11e4-9cb8-b39e8ee0b5dd | my_node3 | 10.0.2.15:16003 | | 2 | d85e62db-8941-11e4-b1ef-4bc9980e476d | my_node2 | 10.0.2.15:16002 | +-------+--------------------------------------+----------+-----------------+ 3 rows in set (0.00 sec) MariaDB [test]> SELECT * FROM INFORMATION_SCHEMA.WSREP_STATUSG *************************** 1. row *************************** NODE_INDEX: 0 NODE_STATUS: Synced CLUSTER_STATUS: Primary CLUSTER_SIZE: 3 CLUSTER_STATE_UUID: 190604d7-8940-11e4-a084-ebee5211c190 CLUSTER_STATE_SEQNO: 2 CLUSTER_CONF_ID: 3 GAP: NO PROTOCOL_VERSION: 3 1 row in set (0.00 sec)
如上所示,WSREP_MEMBERSHIP 表显示了集群中当前成员的信息,包括节点的名称和入站地址。另一方面,WSREP_STATUS 表显示了关于节点和整个集群的状态信息。
SHOW 命令也可以用来查询这些表。它速度很快,并且减少了 WSREP_STATUS 的列数以便适应屏幕显示。
MariaDB [test]> SHOW WSREP_MEMBERSHIP; +-------+--------------------------------------+----------+-----------------+ | Index | Uuid | Name | Address | +-------+--------------------------------------+----------+-----------------+ | 0 | 19058073-8940-11e4-8570-16af7bf8fced | my_node1 | 10.0.2.15:16001 | | 1 | 19f2b0e0-8942-11e4-9cb8-b39e8ee0b5dd | my_node3 | 10.0.2.15:16003 | | 2 | d85e62db-8941-11e4-b1ef-4bc9980e476d | my_node2 | 10.0.2.15:16002 | +-------+--------------------------------------+----------+-----------------+ 3 rows in set (0.00 sec) MariaDB [test]> SHOW WSREP_STATUS; +------------+-------------+----------------+--------------+ | Node_Index | Node_Status | Cluster_Status | Cluster_Size | +------------+-------------+----------------+--------------+ | 0 | Synced | Primary | 3 | +------------+-------------+----------------+--------------+ 1 row in set (0.00 sec)