+———–+————————-+————————————–+

1.1.1. show  master status

作用:查询master的Binary Log状态。

mysql> show master status

    -> ;

+——————+———-+————–+——————+——————-+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
Executed_Gtid_Set |

+——————+———-+————–+——————+——————-+

| mysql-bin.000007 |     2246 |              |                  |
                  |

+——————+———-+————–+——————+——————-+

1 row in set (0.00 sec)

 

这个命令需要super或者replication client权限,否则出现下面的拒绝访问错误。

 

mysql> show master status;

ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER,
REPLICATION CLIENT privilege(s) for this operation

 

Coordinator stopped because there were error(s) in the worker(s). The
most recent failure being: Worker 2 failed executing transaction
‘ANONYMOUS’ at master log mysql-bin.005656, end_log_pos 4529152. See
error log and/or
performance_schema.replication_applier_status_by_worker table for
more details about this failure or others, if any.

CHANNEL _NAME: group_replication_recovery

1.1.8. 连接状态

 

使用性能数据库中的复制相关数据表,可以查看复制相关的性能数据。

 

mysql> use performance_schema;

Database changed

 

复制连接配置表:

mysql> select * from replication_connection_configuration\G

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

                 CHANNEL_NAME: master111

                         HOST: 192.168.197.111

                         PORT: 3306

                         USER: repl

            NETWORK_INTERFACE:

                AUTO_POSITION: 1

                  SSL_ALLOWED: NO

                  SSL_CA_FILE:

                  SSL_CA_PATH:

              SSL_CERTIFICATE:

                   SSL_CIPHER:

                      SSL_KEY:

SSL_VERIFY_SERVER_CERTIFICATE: NO

                 SSL_CRL_FILE:

                 SSL_CRL_PATH:

    CONNECTION_RETRY_INTERVAL: 60

       CONNECTION_RETRY_COUNT: 86400

           HEARTBEAT_INTERVAL: 30.000

                  TLS_VERSION:

*************************** 2. row
***************************

                 CHANNEL_NAME: master110

                         HOST: 192.168.197.110

                         PORT: 3306

                         USER: repl

            NETWORK_INTERFACE:

                AUTO_POSITION: 1

                  SSL_ALLOWED: NO

                  SSL_CA_FILE:

                  SSL_CA_PATH:

              SSL_CERTIFICATE:

                   SSL_CIPHER:

                      SSL_KEY:

SSL_VERIFY_SERVER_CERTIFICATE: NO

                 SSL_CRL_FILE:

                 SSL_CRL_PATH:

    CONNECTION_RETRY_INTERVAL: 60

       CONNECTION_RETRY_COUNT: 86400

           HEARTBEAT_INTERVAL: 30.000

                  TLS_VERSION:

2 rows in set (0.00 sec)

 

 

 

 

复制连接状态表:

 

mysql> select * from replication_connection_status\G

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

             CHANNEL_NAME: master111

               GROUP_NAME:

              SOURCE_UUID: a2392929-6dfb-11e7-b294-000c29b1c111

                THREAD_ID: 35

            SERVICE_STATE: ON

COUNT_RECEIVED_HEARTBEATS: 36

 LAST_HEARTBEAT_TIMESTAMP: 2017-08-18 12:54:09

 RECEIVED_TRANSACTION_SET: a2392929-6dfb-11e7-b294-000c29b1c111:1-11

        LAST_ERROR_NUMBER: 0

       LAST_ERROR_MESSAGE:

     LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00

*************************** 2. row
***************************

             CHANNEL_NAME: master110

               GROUP_NAME:

              SOURCE_UUID: a2392929-6dfb-11e7-b294-000c29b1c110

                THREAD_ID: 33

            SERVICE_STATE: ON

COUNT_RECEIVED_HEARTBEATS: 35

 LAST_HEARTBEAT_TIMESTAMP: 2017-08-18 12:54:03

 RECEIVED_TRANSACTION_SET: a2392929-6dfb-11e7-b294-000c29b1c110:1-6

        LAST_ERROR_NUMBER: 0

       LAST_ERROR_MESSAGE:

     LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00

2 rows in set (0.00 sec)

 

查看这个ID为332的这张表,发现这张表是自动创建的,创建的时候没有指定存储引擎,所以主从都出错了

# session_status表(记录内容与global_status 表类似)

1.1.7. reset master

reset master命令将删除在mysql-bin.index文件中列出的所有的Binary Log文件;同时还会清空gtid_purged这个只读的系统变量;同时还会清空mysql.gtid_executed数据表。这个操作使得slave将从开始位置重新进行与master的同步。

 

mysql> reset master;

Query OK, 0 rows affected, 1 warning (0.04 sec)

 

 

去主库查找binlog日志,看看发生了什么事情(日志定位方式有点挫)
mysqlbinlog –start-position=4529152 –stop-position=4539152
mysql-bin.005656 | more
这条命令是从4529152位置开始,但是我们出错的位置(end_log_pos)是这个位置结束,所以刚好错过,再往前一点就好
了。
通过这条命令看到日志时间是2017-12-01 01:47:41,所以我用了另外一条命令
mysqlbinlog –start-datetime=2017-12-01 01:47:41
–stop-datetime=2017-12-01 01:47:50 mysql-bin.005656 | more
找到日志:

我们先来看看表中记录的统计信息是什么样子的。

1.1.2. show  slave hosts

作用:查询已经注册到master上的slave的信息。

mysql> show slave hosts;

+———–+——+——+———–+————————————–+

| Server_id | Host | Port | Master_id | Slave_UUID
                          |

+———–+——+——+———–+————————————–+

|       103 |      | 3306 |       101 |
a2392929-6dfb-11e7-b294-000c29b1c103 |

|       102 |      | 3306 |       101 |
a2392929-6dfb-11e7-b294-000c29b1c102 |

+———–+——+——+———–+————————————–+

2 rows in set (0.00 sec)

 

Server_id:slave上的MySQL的server_id。

Host:slave的主机名。

Port:slave上的MySQL的端口号。

Master_id:master上的MySQL的server_id。

Slave_UUID:slave上的MySQL的UUID。

 

在从库中查看表performance_schema.replication_applier_status_by_worker
select * from
performance_schema.replication_applier_status_by_worker\G

PS2:对于组复制架构,组复制的监控信息散布在如下几张表中

1.1.3. show  slave  status

作用:查询slave的状态。

mysql> show slave status\G

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

               Slave_IO_State: Waiting for master to send event
                

  Master_Host: mysql101.coe2coe.me

                  Master_User: repl

                  Master_Port: 3306

                Connect_Retry: 60

              Master_Log_File: mysql-bin.000007

          Read_Master_Log_Pos: 2781

               Relay_Log_File: mysql102-relay-bin.000016

                Relay_Log_Pos: 2994

        Relay_Master_Log_File: mysql-bin.000007

             Slave_IO_Running: Yes

            Slave_SQL_Running: Yes

              Replicate_Do_DB:

          Replicate_Ignore_DB:

           Replicate_Do_Table:

       Replicate_Ignore_Table:

      Replicate_Wild_Do_Table:

  Replicate_Wild_Ignore_Table:
mysql.%,information_schema.%,performance_schema.%,sys.%

                   Last_Errno: 0

                   Last_Error:

                 Skip_Counter: 0

          Exec_Master_Log_Pos: 2781

              Relay_Log_Space: 3370

              Until_Condition: None

               Until_Log_File:

                Until_Log_Pos: 0

           Master_SSL_Allowed: No

           Master_SSL_CA_File:

           Master_SSL_CA_Path:

              Master_SSL_Cert:

            Master_SSL_Cipher:

               Master_SSL_Key:

        Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

                Last_IO_Errno: 0

                Last_IO_Error:

               Last_SQL_Errno: 0

               Last_SQL_Error:

  Replicate_Ignore_Server_Ids:

             Master_Server_Id: 101

                  Master_UUID: a2392929-6dfb-11e7-b294-000c29b1c101

             Master_Info_File: /opt/mysql/data/master.info

                    SQL_Delay: 0

          SQL_Remaining_Delay: NULL

      Slave_SQL_Running_State: Slave has read all relay log; waiting
for more updates

           Master_Retry_Count: 86400

                  Master_Bind:

      Last_IO_Error_Timestamp:

     Last_SQL_Error_Timestamp:

               Master_SSL_Crl:

           Master_SSL_Crlpath:

           Retrieved_Gtid_Set:

            Executed_Gtid_Set:

                Auto_Position: 0

         Replicate_Rewrite_DB:

                 Channel_Name:

           Master_TLS_Version:

1 row in set (0.00 sec)

 

 

几个重要的条目的含义如下:

Slave_IO_Running: slave上的和master的用于复制的网络连接的IO线程是否在运行中,用于接收来自master的Binary Log,并保存到slave本地的Relay Log中。

Master_Log_File: mysql-bin.000007 读取master上的这个Binary Log文件。

Read_Master_Log_Pos: 2781 读取的master上的Binary Log的位置。

Relay_Log_File: mysql102-relay-bin.000016 本地保存的Relay Log文件。

Relay_Log_Pos: 2994  本地保存的Relay Log的位置。

 

Slave_SQL_Running: slave上的SQL线程是否在运行中,用于读取slave本地的Relay Log,并执行其中的数据库操作,然后保存到slave本地的Binary Log中。

Relay_Master_Log_File: mysql-bin.000007 正在同步master上的Binary Log文件。

Exec_Master_Log_Pos: 2781 正在同步的位置。

 

Seconds_Behind_Master:slave的SQL线程执行的事件的时间戳和IO线程已保存的事件的时间戳的差值。此值为0表示复制性能良好。此值用于描述slave相对于master的延迟的秒数,但是实际上在特殊情况下只能反映出slave的IO线程和SQL线程之间的延迟。在slave和master之间的网络通讯情况不佳时,此值为0,但是slave和master之间可能早已不同步了。

 

 

image.png

……

1.1. 复制的监控

 

*************************** 2. row
***************************
CHANNEL_NAME:
WORKER_ID: 2
THREAD_ID: NULL
SERVICE_STATE: OFF
LAST_SEEN_TRANSACTION: ANONYMOUS
LAST_ERROR_NUMBER: 1168
LAST_ERROR_MESSAGE: Worker 2 failed executing transaction ‘ANONYMOUS’
at master log mysql-bin.005656, end_log_pos 4529152; Error executing
row event: ‘Uerlying table which is differently defined or of non-MyISAM
type or doesn’t exist’
LAST_ERROR_TIMESTAMP: 2017-12-01 08:57:55

HOST: <NULL>

1.1.4. start slave

作用:启动slave复制相关线程,包括IO线程和SQL线程,也可以单独启动IO线程或者单独启动SQL线程。

语法:

START SLAVE [thread_types] [until_option] [connection_options]
[channel_option]

 

thread_types:指定要启动的线程类型。

    [thread_type [, thread_type] … ]

 

线程类型包括IO_THREAD和SQL_THREAD。

 

until_option:指定复制结束位置。

    UNTIL {   {SQL_BEFORE_GTIDS | SQL_AFTER_GTIDS} = gtid_set

          |   MASTER_LOG_FILE = ‘log_name’, MASTER_LOG_POS =
log_pos

          |   RELAY_LOG_FILE = ‘log_name’, RELAY_LOG_POS = log_pos

          |   SQL_AFTER_MTS_GAPS  }

 

使用Binary Log方式的复制时,指定MASTER_LOG_FILE和MASTER_LOG_POS参数,使用GTID方式的复制时,指定SQL_BEFORE_GTIDS和SQL_AFTER_GTIDS参数。

 

mysql> start slave;

Query OK, 0 rows affected (0.02 sec)

 

金沙国际平台 1

LAST _ERROR_TIMESTAMP: 0000-00-00 00:00:00

1.1.5. stop slave

作用:停止slave上的复制相关线程。

语法:

STOP SLAVE [thread_types]

thread_types:

    [thread_type [, thread_type] … ]

 

thread_type: IO_THREAD | SQL_THREAD

 

 

mysql>   stop slave;

Query OK, 0 rows affected (0.00 sec)

 

 

+————–+———–+———–+—————+———————–+——————-+——————–+———————-+

1.1.6. reset  slave

作用:清除slave上设置的复制关系。

语法:RESET SLAVE [ALL]

 

reset slave命令将清除slave上的关于master的复制信息,比如slave保存在master.info文件中的master上的Binary Log文件的位置;还会删除slave本地的Relay Log文件。

reset slave命令并不会清除mysql.gtid_executed数据表或gtid_purged系统变量;reset slave命令也不会清除关于slave和master的连接参数,比如master的IP地址和端口。

reset slave all除了清除reset slave清除掉的内容之外,还会清除slave和master的连接参数。

 

mysql> stop slave;

Query OK, 0 rows affected (0.01 sec)

 

mysql> reset slave all;

Query OK, 0 rows affected (0.00 sec)

 

MySQL
server维护着许多系统变量,在performance_schema中提供了对全局、当前会话、以及按照线程分组的系统变量信息记录表:

| group_replication_recovery |0| NULL |OFF | |0| |0000- 00-
0000:00:00|

COUNT_ADDRINFO_PERMANENT_ERRORS: 0

#
单线程复制和多线程复制时表中的记录相同,如果是多主复制,则每个复制通道记录一行信息

  • global_status:执行truncate会重置线程、帐户、主机、用户相关的全局状态变量值,但不会重置一些从不重置的全局状态变量值,同时会影响到status_by_account表中的状态变量值
  • session_status:不支持执行truncate语句
  • status_by_thread:将所有线程的状态变量值聚合到全局状态变量表(global_status)和帐户状态变量表(status_by_account),然后重置线程状态变量表。如果不收集帐户相关的统计信息,则会在status_by_user和status_by_host中单独收集主机和用户的状态变量值,是否收集host,user,account的状态变量值,可以使用系统变量performance_schema_accounts_size,performance_schema_hosts_size和performance_schema_users_size在server启动之前分别进行设置,设置为0,则表示不收集,大于0则表示要收集(注意,这些系统变量原本是用于控制accounts、hosts、users表中的行数,但是status_by_account,status_by_user,status_by_host中的account,user,host值是来自于accounts、hosts、users表,so…你懂的)

# 如果是MGR集群,则该表中会记录类似如下MGR集群信息

  • VARIABLE_NAME:状态变量名称
  • VARIABLE_VALUE:状态变量值。对于global_status,此列包含全局状态变量值。对于session_status,此列包含当前会话的状态变量值(同时包含无会话级别的全局状态变量值,且只包含活跃会话的状态变量值)。

金沙国际平台 2

| VARIABLE_NAME |VARIABLE_VALUE |

COUNT_NAMEINFO_PERMANENT_ERRORS: 1

3. replication_applier_status_by_coordinator表

global_status和session_status表字段含义如下:

HOST: NULL

表中各字段含义以及与change master
to语句的选项对应关系如下:

表中各字段含义及与show slave
status输出字段对应关系如下:

SSL_KEY:

FIRST_SEEN: 2017 -12-3022 :34:51

LAST_SEEN: 2017 -12-3022 :35:29

# 如果是MGR集群,则该表中会记录类似如下MGR集群信息

|| 43 |ON | 0 || 0000-00-00 00:00:00 |

|THREAD_ID | VARIABLE_NAME |VARIABLE_VALUE |

对于replication_applier_status_by_worker表,不允许执行TRUNCATE
TABLE语句。

3rows inset ( 0. 01sec)

通常,DBA或相关数据库运维人员在查看从库的复制相关的信息,都习惯性的使用show
slave
status语句查看。也许你会说,我也会用performance_schema下的表查看一些复制报错信息什么的。但是,你知道show
slave
status语句、mysql系统库下的复制信息记录表、performance_schema系统库下的复制信息记录表之间有什么区别吗?不知道?别急,本文即将为你详细介绍show
slave
status语句与performance_schema系统库下的复制信息记录表的区别(mysql系统库下的复制表区别详见后续
“mysql系统库全方位介绍”系列)。

admin@localhost : performance_schema 02:49:50> select * from
replication_applier_status_by_coordinator;

5 rows inset (0.00 sec)

HEARTBEAT_INTERVAL: 5.000

admin@localhost : performance_schema 04:08:58> select * from
status_by_user where USER is notnull limit 5;

| CHANNEL_NAME |SERVICE_STATE | REMAINING_DELAY
|COUNT_TRANSACTIONS_RETRIES |

COUNT _TRANSACTIONS_CHECKED: 0

+———–+————————-+—————-+

admin@localhost : performance_schema 11:02:21> select * from
session_status limit 5;

金沙国际平台 3

| |2| 45 |ON | |0| |0000- 00- 0000:00:00|

root@localhost : performance_schema 10:56:49> select * from
replication_applier_configuration;

# variables_by_thread表

COUNT_DEFAULT_DATABASE_ERRORS: 0

root@localhost : performance_schema 12:46:10> select * from
replication_applier_status_by_worker;

+—————————+———–+—————+——————-+——————–+———————-+

| admin |localhost | Bytes_sent |305705|

VIEW_ID: 15287289928409067:1

+————–+———–+———–+—————+———————–+——————-+——————–+———————-+

我们先来看看表中记录的统计信息是什么样子的。

| 45 |slave_uuid | 4b0027eb-6223-11e7-94ad-525400950aac |

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

+————————–+—————-+

我们先来看看表中记录的统计信息是什么样子的。

COUNT_FORMAT_ERRORS: 0

SUM_CONNECT_ERRORS: 0

PS:

表中各字段含义

admin@localhost : performance _schema 02:51:00> select * from
replication_connection_configurationG;

|45| Bytes_received |0|

# 如果是MGR集群,则该表中会记录类似如下MGR集群信息

17 rows inset (0.00 sec)

CONNECTION _RETRY_COUNT: 86400

|45| auto_increment_offset |2|

……

01

复制信息统计表

|45| auto_increment_increment |2|

按照帐号、主机名、用户名为分组对状态变量进行分类数据,例如:按照帐号表统计的表分组列为host和user列,聚合列当然就是状态变量本身(该功能是MySQL
5.7版本新增的),有如下几张表:

  • Slave_retried_transactions
  • Slave_last_heartbeat
  • Slave_received_heartbeats
  • Slave_heartbeat_period
  • Slave_running

+—————————-+—————+

表中各字段含义如下:

root@localhost : performance _schema 11:02:10> select * from
replication_group _member_statsG

CHANNEL _NAME: group_replication_recovery

…….

5 rows inset (0.00 sec)

system variables记录表

| CHANNEL_NAME |WORKER_ID | THREAD_ID |SERVICE_STATE |
LAST_SEEN_TRANSACTION |LAST_ERROR_NUMBER | LAST_ERROR_MESSAGE
|LAST_ERROR_TIMESTAMP |

+————–+———–+———–+—————+———————–+——————-+——————–+———————-+

| THREAD_ID |VARIABLE_NAME | VARIABLE_VALUE |

+———–+————————-+—————-+

用户自定义变量记录表

admin@localhost : performance_schema 09:50:40> select * from
session_variables limit 5;

如果从库是单线程,则该表记录一条WORKER_ID=0的SQL线程的状态。如果从库是多线程,则该表记录系统参数slave_parallel_workers指定个数的工作线程状态(WORKER_ID从1开始编号),此时协调器/SQL线程状态记录在replication_applier_status_by_金沙国际平台,coordinator表,每一个通道都有自己独立的工作线程和协调器线程(每个通道的工作线程个数由slave_parallel_workers参数变量指定,如果是MGR集群时,则该表中记录的工作线程记录为slave_parallel_workers个group_replication_applier线程+1个group_replication_recovery线程),我们先来看看表中记录的统计信息是什么样子的。

COUNT_INIT_CONNECT_ERRORS: 0

2. replication_applier_status表

HOST_VALIDATED: YES

通过以上内容,我们从整体上能够大致了解了performance_schema中的复制信息表记录了什么信息,下面依次详细介绍这些复制信息表。

|| 3 |46| ON || 0 || 0000-00-00 00:00:00 |

在开始详细介绍每一张复制信息表之前,我们先花费一些篇幅来整体认识一下这些表。

| CHANNEL_NAME |WORKER_ID | THREAD_ID |SERVICE_STATE |
LAST_SEEN_TRANSACTION |LAST_ERROR_NUMBER | LAST_ERROR_MESSAGE
|LAST_ERROR_TIMESTAMP |

1 row in set (0.00 sec)

|45| Bytes_sent |2901|

|| ON |NULL | 0 |

对于replication_applier_configuration表,不允许执行TRUNCATE
TABLE语句。

MySQL
server维护着许多状态变量,提供有关其内部相关操作的信息。如下一些performance_schema表中记录着状态变量信息:

我们先来看看表中记录的统计信息是什么样子的。

| USER |HOST | VARIABLE_NAME |VARIABLE_VALUE |

+————–+———–+—————+——————-+——————–+———————-+

IP: 192 .168.2.122

  • IP:连接到server的客户端的IP地址,以字符串形式记录
  • HOST:该客户端IP解析的DNS主机名,如果没有计息记录,则该字段为NULL
  • HOST_VALIDATED:某个IP的客户端的’IP-主机名称-IP’的解析是否成功。如果HOST_VALIDATED为YES,则HOST列被当作与之相关的IP使用,以避免使用DNS解析。当HOST_VALIDATED为NO时,对于每个连会反复地尝试DNS解析,直到最终返回有效的解析结果或者返回一个错误。可以利用该信息来在server所使用的DNS服务器故障期间避免执行DNS解析
  • SUM_CONNECT_ERRORS:该字段记录的连接错误数量被认为是“正在阻塞中”的连接数(此时你可能需要关注下max_connect_errors系统变量值,一旦该列值超过该变量的值,则后续的连接将直接被拒绝)。只对协议握手错误进行计数,并且仅对通过验证的主机(HOST_VALIDATED
    = YES)进行计数
  • COUNT_HOST_BLOCKED_ERRORS:由于SUM_CONNECT_ERRORS超出了max_connect_errors系统变量的值而被阻塞的连接数
  • COUNT_NAMEINFO_TRANSIENT_ERRORS:从IP到主机名称的DNS解析期间的短暂错误的数量,例如第一次解析失败,第二次解析成功
  • COUNT_NAMEINFO_PERMANENT_ERRORS:从IP到主机名称DNS解析期间的永久性错误的数量,解析DNS直到不再尝试重新解析的错误
  • COUNT_FORMAT_ERRORS:主机名格式错误的数量。
    对于主机名(DNS中的主机名),MySQL不会在mysql.user表中重试执行与主机列匹配操作,例如:1.2.example.com(主机名部分是数字是错误的格式)。但是如果直接使用IP地址时则前缀是数字的不会被识别为错误格式,会使用IP格式匹配而不是DNS格式
  • COUNT_ADDRINFO_TRANSIENT_ERRORS:从主机名称到IP反向DNS解析过程中的短暂错误数量
  • COUNT_ADDRINFO_PERMANENT_ERRORS:从主机名称到IP反向DNS解析期间的永久性错误的数量
  • COUNT_FCRDNS_ERRORS:DNS反向解析发生错误的数量。当IP-主机名称-IP的解析发生了解析的结果IP与发起请求的客户端原始IP不匹配时,就产后了这个错误
  • COUNT_HOST_ACL_ERRORS:某个主机没有有权限的用户可登录server时,从这个主机尝试登录server会发生这个错误。在这种情况下,server返回ER_HOST_NOT_PRIVILEGED错误
  • COUNT_NO_AUTH_PLUGIN_ERRORS:由于请求的身份验证插件不可用而导致的错误数量。例如:某个身份验证插件并未加载,那么这个插件被请求时就会发生这个错误
  • COUNT_AUTH_PLUGIN_ERRORS:身份认证插件报告的错误数。验证插件可以报告不同的错误代码,以指出故障的根本原因。根据错误类型,相应地增加对应错误类型的错误计数列值(COUNT_AUTHENTICATION_ERRORS、COUNT_AUTH_PLUGIN_ERRORS、COUNT_HANDSHAKE_ERRORS),未知的插件错误在COUNT_AUTH_PLUGIN_ERRORS列中计数
  • COUNT_HANDSHAKE_ERRORS:在握手协议级别检测到的错误数
  • COUNT_PROXY_USER_ERRORS:代理用户A在代理不存在的另一用户B时检测到的错误数
  • COUNT_PROXY_USER_ACL_ERRORS:当代理用户A被代理给另一个存在但是对于A没有PROXY权限的用户B时,检测到的错误数量
  • COUNT_AUTHENTICATION_ERRORS:认证失败造成的错误次数
  • COUNT_SSL_ERRORS:由于SSL问题导致的错误数量
  • COUNT_MAX_USER_CONNECTIONS_ERRORS:超出每个用户连接配额造成的错误数
  • COUNT_MAX_USER_CONNECTIONS_PER_HOUR_ERRORS:超出每用户连接每小时配额造成的错误数量
  • COUNT_DEFAULT_DATABASE_ERRORS:与默认数据库相关的错误数。例如:数据库不存在或用户没有权限访问
  • COUNT_INIT_CONNECT_ERRORS:由init_connect系统变量加载的文件中的语句执行失败引起的错误数
  • COUNT_LOCAL_ERRORS:server本地执行相关操作时的错误数量,与网络、身份验证、授权无关的错误。例如,内存不足的情况属于这一类别
  • COUNT_UNKNOWN_ERRORS:其他未知错误的数量,该列保留供将来使用
  • FIRST_SEEN:对于某个IP客户端,第一次尝试连接发生的时间
  • LAST_SEEN:对于某个IP客户端,最后一次尝试连接发生的时间
  • FIRST_ERROR_SEEN:对于某个IP客户端,第一次尝试连接发生错误的时间
  • LAST_ERROR_SEEN:对于某个IP客户端,最后一次尝试连接发生错误的时间
  • 与replication_connection_status表相比,replication_connection_configuration更改频率更低。因为它只包含从库连接到主库的配置参数,在连接正常工作期间这些配置信息保持不变的值,而replication_connection_status中包含的连接状态信息,只要IO线程状态发生变化,该表中的信息就会发生修改(多主复制架构中,从库指向了多少个主库就会记录多少行记录。MGR集群架构中,每个节点有两条记录,但这两条记录并未记录完整的组复制连接配置参数,例如:host等信息记录到了replication_group_members表中)。

|admin | localhost |Bytes_received | 6049 |

+——-+————————-+—————-+

AUTO_POSITION: 1

#
多线程和单线程主从复制时表中记录相同,如果是多主复制,则每个复制通道在表中个记录一行信息

admin@localhost : performance_schema 02:50:18> select * from
replication_applier_status_by_worker;

表中各字段含义如下:

IT从业多年,历任运维工程师,高级运维工程师,运维经理,数据库工程师,曾参与版本发布系统,轻量级监控系统,运维管理平台,数据库管理平台的设计与编写,熟悉MySQL的体系结构时,InnoDB存储引擎,喜好专研开源技术,追求完美。

+—————————-+—————+—————–+—————————-+

admin@localhost : performance_schema 09:50:52> select * from
variables_by_thread limit 5; # 可以看到比前面两张表多了个THREAD_ID
字段来记录线程ID

+—————————-+———–+———–+—————+————————————————+——————-+——————–+———————-+

# global_status表

|group_replication_applier | 0 |

  • replication_group_member_stats
  • replication_group_members
  • replication_applier_status
  • replication_connection_status
  • threads

表中各字段含义及与show slave
status输出字段对应关系如下:

root@localhost : performance_schema 11:03:38> select * from
replication_group_members;

1row inset ( 0. 00sec)

……

我们先来看看表中记录的统计信息是什么样子的。

COUNT _TRANSACTIONS_IN_QUEUE: 0

+—————————+———–+—————+——————-+——————–+———————-+

LAST _ERROR_MESSAGE:

PS:

+———–+————————-+—————-+

2 rows inset (0.00 sec)

不知不觉中,performance_schema系列快要接近尾声了,今天将带领大家一起踏上系列第六篇的征程(全系共6个篇章),在这一期里,我们将为大家全面讲解performance_schema中的复制状态与变量统计表。下面,请跟随我们一起开始performance_schema系统的学习之旅吧~

+—————————-+———–+———–+—————+————————————————+——————-+——————–+———————-+

| group_replication_applier |5d78a458- 30d2- 11e8-a66f- 5254002a54f2 |
node1 |3306| ONLINE |

COUNT_FCRDNS_ERRORS: 0

|group_replication_applier | 1 |92| ON |aaaaaaaa-aaaa-aaaa-aaaa-
aaaaaaaaaaaa:104099082| 0 || 0000-00-00 00:00:00 |

| group_replication_recovery |OFF | NULL |0|

相关文章