innodb引擎在生产环境下大量使用。监控数据库状态是一项日常维护常规工作。通过监控,我们可以知晓数据库状态趋势,预防问题,未雨绸缪,有备无患。nagios&cacti mysql监控
1. 查看表状态
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
mysql> show table status like "unitid"G
Name: unitid 表名
Engine: InnoDB 表引擎
Version: 10 表格式文件版本
Row_format: Compact 表压缩格式Compact、Redundant、Dynamic、Compressed
Rows: 2 表行数,近似于select count(*) from table
Avg_row_length: 8192 平均行数
Data_length: 16384 数据文件长度
Max_data_length: 0 能够存储在数据文件的数据的最大长度
Index_length: 0 索引文件长度
Data_free: 0 可用的字节
Auto_increment: NULL
Create_time: 2013-08-28 11:25:19
Update_time: NULL
Check_time: NULL
Collation: utf8_general_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.00 sec)
|
2. 查询INFORMATION_SCHEMA相关表
mysql服务器运行状态信息存储在INFORMATION_SCHEMA库中。与innodb相关的信息有:
1. INNODB_CMP 包含数据格式化压缩操作信息
2. INNODB_CMP_RESET 该表包含的信息与INNODB_CMP相同,不过,具有基于计数器功能的指标表,每次读操作都会截断数据。
3. INNODB_TRX 该表包含有关当前正在执行事务的详细信息。是对innodb事务进行监测的最有用的查询分析表。
4. INNODB_LOCK_WAITS 包含事务当前正在等待的锁信息,用来查看不同事务间锁定关系。
3. 全局变量
1
|
SHOW GLOBAL VARIABLES LIKE 'innodb%';
|
4. 全局状态
1
|
SHOW GLOBAL STATUS LIKE 'innodb%';
|
5. innodb统计分析
5.1 Innodb_buffer_pool_pages比率
Innodb_buffer_pool_pages_free/Innodb_buffer_pool_pages_total
5.2 innodb数据大小
1
|
SELECT SUM(DATA_LENGTH) AS Value FROM INFORMATION_SCHEMA.TABLES WHERE ENGINE='innodb';
|
5.3 innodb索引大小
1
|
SELECT SUM(INDEX_LENGTH) AS Value FROM INFORMATION_SCHEMA.TABLES WHERE ENGINE='innodb';
|
5.4 innodb_buffer_pool_size最小大小
innodb_index_size + innodb_data_size
5.5 mysql内存使用情况
每线程buffer大小 = (read_buffer_size + read_rnd_buffer_size +
sort_buffer_size + thread_stack + join_buffer_size + binlog_cache_size) *
max_connections
每线程最大buffer大小 = (read_buffer_size + read_rnd_buffer_size +
sort_buffer_size + thread_stack + join_buffer_size + binlog_cache_size) *
Max_used_connections
全局buffer大小 = innodb_buffer_pool_size + innodb_additional_mem_pool_size +
innodb_log_buffer_size + key_buffer_size + query_cache_size
最大内存分配 = global_buffers + per_thread_max_buffers
允许分配的总内存 = global_buffers + per_thread_buffers
mysql使用的系统RAM百分比 = (total_memory_allocation_allowed* 100) / os_mem_total
6. 统计innodb和myisam表的数据和索引大小以及百分比
如需转载请注明出处:http://www.ttlsa.com/html/2964.html
http://www.ttlsa.com/mysql/mysql-innodb-monitoring/