现发布alpha版mysql awr,其提供的特性类似于oracle awr或statspack+集中式监控。对于原来从事oracle dba或者相关运维的人原来说,这会是个不错的选择。

至于我为什么不选择用zabbix,monyog,nagios等等监控工具,相信各数据库专家们懂的。

系统逻辑结构

支持配置监控多个mysql实例。

关键监控内容

一、源系统配置

  • 建议percona server      5.6/mariadb+,支持mysql,percona,mariadb 5.6,5.7。

  • 启用performance_schema,userstat参数

  • 创建perf_stat用户,授予select      information_schema,performance_schema select/truncate权限;

  • 确保安装了lsof,或yum install lsof进行安装。

CREATE USER perf_stat@'%' IDENTIFIED BY 'hundsun';

GRANT ALL ON information_schema.* TO perf_stat@'%' ;

GRANT ALL ON performance_schema.* TO perf_stat@'%' ;

二、perfstat配置

1、创建存储表结构

create database perf_stat;

use perf_stat;

Create table apps (hostname varchar(64),port int,appname varchar(64) primary key,ver varchar(64));

Create table app_snaps (hostname varchar(64),appname varchar(64),snap_id int,log_time datetime); 保留7天自动删除

Create index idx_app_snaps_appname on app_snaps(appname);

create table IS_GLOBAL_STATUS(hostname varchar(64),appname varchar(64),log_time datetime,snap_id int,variable_name varchar(64),variable_value varchar(64)); 启动以来全量

Create index idx_global_status_app_snap on IS_GLOBAL_STATUS(appname,snap_id);

create table IS_GLOBAL_VARIABLES(hostname varchar(64),appname varchar(64),log_time datetime,snap_id int,variable_name varchar(64),variable_value varchar(64));  启动以来全量

Create index idx_global_VARIABLES_app_snap on IS_GLOBAL_VARIABLES(appname,snap_id);

create table ps_events_waits_summary_global_by_event_name

(

hostname varchar(64),appname varchar(64),log_time datetime,snap_id int,

`EVENT_NAME` varchar(128) NOT NULL,

`COUNT_STAR` bigint(20) unsigned NOT NULL,

`SUM_TIMER_WAIT` bigint(20) unsigned NOT NULL,

`MIN_TIMER_WAIT` bigint(20) unsigned NOT NULL,

`AVG_TIMER_WAIT` bigint(20) unsigned NOT NULL,

`MAX_TIMER_WAIT` bigint(20) unsigned NOT NULL

);

Create index idx_ewsgben_app_snap on ps_events_waits_summary_global_by_event_name(appname,snap_id);

本间隔前n分钟增量

create table ps_table_io_waits_summary_by_table

(

hostname varchar(64),appname varchar(64),log_time datetime,snap_id int,

`OBJECT_TYPE` varchar(64) DEFAULT NULL,

`OBJECT_SCHEMA` varchar(64) DEFAULT NULL,

`OBJECT_NAME` varchar(64) DEFAULT NULL,

`COUNT_STAR` bigint(20) unsigned NOT NULL,

`SUM_TIMER_WAIT` bigint(20) unsigned NOT NULL,

`MIN_TIMER_WAIT` bigint(20) unsigned NOT NULL,

`AVG_TIMER_WAIT` bigint(20) unsigned NOT NULL,

`MAX_TIMER_WAIT` bigint(20) unsigned NOT NULL,

`COUNT_READ` bigint(20) unsigned NOT NULL,

`SUM_TIMER_READ` bigint(20) unsigned NOT NULL,

`MIN_TIMER_READ` bigint(20) unsigned NOT NULL,

`AVG_TIMER_READ` bigint(20) unsigned NOT NULL,

`MAX_TIMER_READ` bigint(20) unsigned NOT NULL,

`COUNT_WRITE` bigint(20) unsigned NOT NULL,

`SUM_TIMER_WRITE` bigint(20) unsigned NOT NULL,

`MIN_TIMER_WRITE` bigint(20) unsigned NOT NULL,

`AVG_TIMER_WRITE` bigint(20) unsigned NOT NULL,

`MAX_TIMER_WRITE` bigint(20) unsigned NOT NULL,

`COUNT_FETCH` bigint(20) unsigned NOT NULL  DEFAULT '0',

`SUM_TIMER_FETCH` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MIN_TIMER_FETCH` bigint(20) unsigned NOT NULL  DEFAULT '0',

`AVG_TIMER_FETCH` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MAX_TIMER_FETCH` bigint(20) unsigned NOT NULL  DEFAULT '0',

`COUNT_INSERT` bigint(20) unsigned NOT NULL  DEFAULT '0',

`SUM_TIMER_INSERT` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MIN_TIMER_INSERT` bigint(20) unsigned NOT NULL  DEFAULT '0',

`AVG_TIMER_INSERT` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MAX_TIMER_INSERT` bigint(20) unsigned NOT NULL  DEFAULT '0',

`COUNT_UPDATE` bigint(20) unsigned NOT NULL  DEFAULT '0',

`SUM_TIMER_UPDATE` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MIN_TIMER_UPDATE` bigint(20) unsigned NOT NULL  DEFAULT '0',

`AVG_TIMER_UPDATE` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MAX_TIMER_UPDATE` bigint(20) unsigned NOT NULL  DEFAULT '0',

`COUNT_DELETE` bigint(20) unsigned NOT NULL  DEFAULT '0',

`SUM_TIMER_DELETE` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MIN_TIMER_DELETE` bigint(20) unsigned NOT NULL  DEFAULT '0',

`AVG_TIMER_DELETE` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MAX_TIMER_DELETE` bigint(20) unsigned NOT NULL  DEFAULT '0'

);

Create index idx_tiwsbt_app_snap on ps_table_io_waits_summary_by_table(appname,snap_id);

本间隔前n分钟增量

create table ps_table_lock_waits_summary_by_table

(

hostname varchar(64),appname varchar(64),log_time datetime,snap_id int,

`OBJECT_TYPE` varchar(64) DEFAULT NULL,

`OBJECT_SCHEMA` varchar(64) DEFAULT NULL,

`OBJECT_NAME` varchar(64) DEFAULT NULL,

`COUNT_STAR` bigint(20) unsigned NOT NULL,

`SUM_TIMER_WAIT` bigint(20) unsigned NOT NULL,

`MIN_TIMER_WAIT` bigint(20) unsigned NOT NULL,

`AVG_TIMER_WAIT` bigint(20) unsigned NOT NULL,

`MAX_TIMER_WAIT` bigint(20) unsigned NOT NULL,

`COUNT_READ` bigint(20) unsigned NOT NULL,

`SUM_TIMER_READ` bigint(20) unsigned NOT NULL,

`MIN_TIMER_READ` bigint(20) unsigned NOT NULL,

`AVG_TIMER_READ` bigint(20) unsigned NOT NULL,

`MAX_TIMER_READ` bigint(20) unsigned NOT NULL,

`COUNT_WRITE` bigint(20) unsigned NOT NULL,

`SUM_TIMER_WRITE` bigint(20) unsigned NOT NULL,

`MIN_TIMER_WRITE` bigint(20) unsigned NOT NULL,

`AVG_TIMER_WRITE` bigint(20) unsigned NOT NULL,

`MAX_TIMER_WRITE` bigint(20) unsigned NOT NULL,

`COUNT_READ_NORMAL` bigint(20) unsigned NOT NULL  DEFAULT '0',

`SUM_TIMER_READ_NORMAL` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MIN_TIMER_READ_NORMAL` bigint(20) unsigned NOT NULL  DEFAULT '0',

`AVG_TIMER_READ_NORMAL` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MAX_TIMER_READ_NORMAL` bigint(20) unsigned NOT NULL  DEFAULT '0',

`COUNT_READ_WITH_SHARED_LOCKS` bigint(20) unsigned NOT NULL  DEFAULT '0',

`SUM_TIMER_READ_WITH_SHARED_LOCKS` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MIN_TIMER_READ_WITH_SHARED_LOCKS` bigint(20) unsigned NOT NULL  DEFAULT '0',

`AVG_TIMER_READ_WITH_SHARED_LOCKS` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MAX_TIMER_READ_WITH_SHARED_LOCKS` bigint(20) unsigned NOT NULL  DEFAULT '0',

`COUNT_READ_HIGH_PRIORITY` bigint(20) unsigned NOT NULL  DEFAULT '0',

`SUM_TIMER_READ_HIGH_PRIORITY` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MIN_TIMER_READ_HIGH_PRIORITY` bigint(20) unsigned NOT NULL  DEFAULT '0',

`AVG_TIMER_READ_HIGH_PRIORITY` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MAX_TIMER_READ_HIGH_PRIORITY` bigint(20) unsigned NOT NULL  DEFAULT '0',

`COUNT_READ_NO_INSERT` bigint(20) unsigned NOT NULL  DEFAULT '0',

`SUM_TIMER_READ_NO_INSERT` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MIN_TIMER_READ_NO_INSERT` bigint(20) unsigned NOT NULL  DEFAULT '0',

`AVG_TIMER_READ_NO_INSERT` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MAX_TIMER_READ_NO_INSERT` bigint(20) unsigned NOT NULL  DEFAULT '0',

`COUNT_READ_EXTERNAL` bigint(20) unsigned NOT NULL  DEFAULT '0',

`SUM_TIMER_READ_EXTERNAL` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MIN_TIMER_READ_EXTERNAL` bigint(20) unsigned NOT NULL  DEFAULT '0',

`AVG_TIMER_READ_EXTERNAL` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MAX_TIMER_READ_EXTERNAL` bigint(20) unsigned NOT NULL  DEFAULT '0',

`COUNT_WRITE_ALLOW_WRITE` bigint(20) unsigned NOT NULL  DEFAULT '0',

`SUM_TIMER_WRITE_ALLOW_WRITE` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MIN_TIMER_WRITE_ALLOW_WRITE` bigint(20) unsigned NOT NULL  DEFAULT '0',

`AVG_TIMER_WRITE_ALLOW_WRITE` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MAX_TIMER_WRITE_ALLOW_WRITE` bigint(20) unsigned NOT NULL  DEFAULT '0',

`COUNT_WRITE_CONCURRENT_INSERT` bigint(20) unsigned NOT NULL  DEFAULT '0',

`SUM_TIMER_WRITE_CONCURRENT_INSERT` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MIN_TIMER_WRITE_CONCURRENT_INSERT` bigint(20) unsigned NOT NULL  DEFAULT '0',

`AVG_TIMER_WRITE_CONCURRENT_INSERT` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MAX_TIMER_WRITE_CONCURRENT_INSERT` bigint(20) unsigned NOT NULL  DEFAULT '0',

`COUNT_WRITE_DELAYED` bigint(20) unsigned NOT NULL  DEFAULT '0',

`SUM_TIMER_WRITE_DELAYED` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MIN_TIMER_WRITE_DELAYED` bigint(20) unsigned NOT NULL  DEFAULT '0',

`AVG_TIMER_WRITE_DELAYED` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MAX_TIMER_WRITE_DELAYED` bigint(20) unsigned NOT NULL  DEFAULT '0',

`COUNT_WRITE_LOW_PRIORITY` bigint(20) unsigned NOT NULL  DEFAULT '0',

`SUM_TIMER_WRITE_LOW_PRIORITY` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MIN_TIMER_WRITE_LOW_PRIORITY` bigint(20) unsigned NOT NULL  DEFAULT '0',

`AVG_TIMER_WRITE_LOW_PRIORITY` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MAX_TIMER_WRITE_LOW_PRIORITY` bigint(20) unsigned NOT NULL  DEFAULT '0',

`COUNT_WRITE_NORMAL` bigint(20) unsigned NOT NULL  DEFAULT '0',

`SUM_TIMER_WRITE_NORMAL` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MIN_TIMER_WRITE_NORMAL` bigint(20) unsigned NOT NULL  DEFAULT '0',

`AVG_TIMER_WRITE_NORMAL` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MAX_TIMER_WRITE_NORMAL` bigint(20) unsigned NOT NULL  DEFAULT '0',

`COUNT_WRITE_EXTERNAL` bigint(20) unsigned NOT NULL  DEFAULT '0',

`SUM_TIMER_WRITE_EXTERNAL` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MIN_TIMER_WRITE_EXTERNAL` bigint(20) unsigned NOT NULL  DEFAULT '0',

`AVG_TIMER_WRITE_EXTERNAL` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MAX_TIMER_WRITE_EXTERNAL` bigint(20) unsigned NOT NULL  DEFAULT '0'

);

Create index idx_tlwsbt_app_snap on ps_table_lock_waits_summary_by_table(appname,snap_id);

本间隔前n分钟增量

create table ps_table_io_waits_summary_by_index_usage

(

hostname varchar(64),appname varchar(64),log_time datetime,snap_id int,

`OBJECT_TYPE` varchar(64) DEFAULT NULL,

`OBJECT_SCHEMA` varchar(64) DEFAULT NULL,

`OBJECT_NAME` varchar(64) DEFAULT NULL,

`INDEX_NAME` varchar(64) DEFAULT NULL,

`COUNT_STAR` bigint(20) unsigned NOT NULL,

`SUM_TIMER_WAIT` bigint(20) unsigned NOT NULL,

`MIN_TIMER_WAIT` bigint(20) unsigned NOT NULL,

`AVG_TIMER_WAIT` bigint(20) unsigned NOT NULL,

`MAX_TIMER_WAIT` bigint(20) unsigned NOT NULL,

`COUNT_READ` bigint(20) unsigned NOT NULL,

`SUM_TIMER_READ` bigint(20) unsigned NOT NULL,

`MIN_TIMER_READ` bigint(20) unsigned NOT NULL,

`AVG_TIMER_READ` bigint(20) unsigned NOT NULL,

`MAX_TIMER_READ` bigint(20) unsigned NOT NULL,

`COUNT_WRITE` bigint(20) unsigned NOT NULL,

`SUM_TIMER_WRITE` bigint(20) unsigned NOT NULL,

`MIN_TIMER_WRITE` bigint(20) unsigned NOT NULL,

`AVG_TIMER_WRITE` bigint(20) unsigned NOT NULL,

`MAX_TIMER_WRITE` bigint(20) unsigned NOT NULL,

`COUNT_FETCH` bigint(20) unsigned NOT NULL  DEFAULT '0',

`SUM_TIMER_FETCH` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MIN_TIMER_FETCH` bigint(20) unsigned NOT NULL  DEFAULT '0',

`AVG_TIMER_FETCH` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MAX_TIMER_FETCH` bigint(20) unsigned NOT NULL  DEFAULT '0',

`COUNT_INSERT` bigint(20) unsigned NOT NULL  DEFAULT '0',

`SUM_TIMER_INSERT` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MIN_TIMER_INSERT` bigint(20) unsigned NOT NULL  DEFAULT '0',

`AVG_TIMER_INSERT` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MAX_TIMER_INSERT` bigint(20) unsigned NOT NULL  DEFAULT '0',

`COUNT_UPDATE` bigint(20) unsigned NOT NULL  DEFAULT '0',

`SUM_TIMER_UPDATE` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MIN_TIMER_UPDATE` bigint(20) unsigned NOT NULL  DEFAULT '0',

`AVG_TIMER_UPDATE` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MAX_TIMER_UPDATE` bigint(20) unsigned NOT NULL  DEFAULT '0',

`COUNT_DELETE` bigint(20) unsigned NOT NULL  DEFAULT '0',

`SUM_TIMER_DELETE` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MIN_TIMER_DELETE` bigint(20) unsigned NOT NULL  DEFAULT '0',

`AVG_TIMER_DELETE` bigint(20) unsigned NOT NULL  DEFAULT '0',

`MAX_TIMER_DELETE` bigint(20) unsigned NOT NULL  DEFAULT '0'

);

Create index idx_tiwsbiu_app_snap on ps_table_io_waits_summary_by_index_usage(appname,snap_id);

本间隔前n分钟增量

create table ps_events_statements_summary_by_digest

(

hostname varchar(64),appname varchar(64),log_time datetime,snap_id int,

`SCHEMA_NAME` varchar(64) DEFAULT NULL,

`DIGEST` varchar(32) DEFAULT NULL,

`DIGEST_TEXT` longtext,

`COUNT_STAR` bigint(20) unsigned NOT NULL,

`SUM_TIMER_WAIT` bigint(20) unsigned NOT NULL,

`MIN_TIMER_WAIT` bigint(20) unsigned NOT NULL,

`AVG_TIMER_WAIT` bigint(20) unsigned NOT NULL,

`MAX_TIMER_WAIT` bigint(20) unsigned NOT NULL,

`SUM_LOCK_TIME` bigint(20) unsigned NOT NULL,

`SUM_ERRORS` bigint(20) unsigned NOT NULL,

`SUM_WARNINGS` bigint(20) unsigned NOT NULL,

`SUM_ROWS_AFFECTED` bigint(20) unsigned NOT NULL,

`SUM_ROWS_SENT` bigint(20) unsigned NOT NULL,

`SUM_ROWS_EXAMINED` bigint(20) unsigned NOT NULL,

`SUM_CREATED_TMP_DISK_TABLES` bigint(20) unsigned NOT NULL,

`SUM_CREATED_TMP_TABLES` bigint(20) unsigned NOT NULL,

`SUM_SELECT_FULL_JOIN` bigint(20) unsigned NOT NULL,

`SUM_SELECT_FULL_RANGE_JOIN` bigint(20) unsigned NOT NULL,

`SUM_SELECT_RANGE` bigint(20) unsigned NOT NULL,

`SUM_SELECT_RANGE_CHECK` bigint(20) unsigned NOT NULL,

`SUM_SELECT_SCAN` bigint(20) unsigned NOT NULL,

`SUM_SORT_MERGE_PASSES` bigint(20) unsigned NOT NULL,

`SUM_SORT_RANGE` bigint(20) unsigned NOT NULL,

`SUM_SORT_ROWS` bigint(20) unsigned NOT NULL,

`SUM_SORT_SCAN` bigint(20) unsigned NOT NULL,

`SUM_NO_INDEX_USED` bigint(20) unsigned NOT NULL,

`SUM_NO_GOOD_INDEX_USED` bigint(20) unsigned NOT NULL,

`FIRST_SEEN` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,

`LAST_SEEN` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP

);

Create index idx_digest_app_snap on ps_events_statements_summary_by_digest(appname,snap_id);

本间隔前n分钟增量

FLUSH INDEX_STATISTICS

create table IS_INDEX_STATISTICS

(

hostname varchar(64),appname varchar(64),log_time datetime,snap_id int,

`TABLE_SCHEMA` varchar(192) NOT NULL DEFAULT '',

`TABLE_NAME` varchar(192) NOT NULL DEFAULT '',

`INDEX_NAME` varchar(192) NOT NULL DEFAULT '',

`ROWS_READ` bigint(21) unsigned NOT NULL DEFAULT '0'

);

Create index idx_index_statistics_app_snap on IS_INDEX_STATISTICS(appname,snap_id);

本间隔前n分钟增量

FLUSH TABLE_STATISTICS

create table IS_TABLE_STATISTICS

(

hostname varchar(64),appname varchar(64),log_time datetime,snap_id int,

`TABLE_SCHEMA` varchar(192) NOT NULL DEFAULT '',

`TABLE_NAME` varchar(192) NOT NULL DEFAULT '',

`ROWS_READ` bigint(21) unsigned NOT NULL DEFAULT '0',

`ROWS_CHANGED` bigint(21) unsigned NOT NULL DEFAULT '0',

`ROWS_CHANGED_X_INDEXES` bigint(21) unsigned NOT NULL DEFAULT '0'

);

Create index idx_table_statistics_app_snap on IS_TABLE_STATISTICS(appname,snap_id);

本间隔前n分钟增量

2、配置监控的数据源

在当前版本的mysql awr实现中,暂不支持通过web控制台方式增加监控节点(下一个版本会支持)。

要增加监控的节点,需要在三个地方进行改动,如下所示:

(1)、在WEB-INF/conf/spring-servlet.xml中增加一个类似如下的数据源:

<bean id="hitop_pxc_db1_ds" class="org.apache.commons.dbcp.BasicDataSource"

destroy-method="close">

<property name="url" value="${hitop_pxc_db1_ds.jdbc.url}" />

<property name="driverClassName" value="${hitop_pxc_db1_ds.jdbc.driverClassName}" />

<property name="username" value="${hitop_pxc_db1_ds.jdbc.username}" />

<property name="password" value="${hitop_pxc_db1_ds.jdbc.password}" />

<property name="maxActive" value="${hitop_pxc_db1_ds.jdbc.maxActive}" />

<property name="maxIdle" value="${hitop_pxc_db1_ds.jdbc.maxIdle}" />

<property name="maxWait" value="${hitop_pxc_db1_ds.jdbc.maxWait}" />

<property name="validationQuery" value="select 1" />

<property name="defaultAutoCommit" value="true" />

</bean>

同时在dataSource中增加对应的条目,如下所示:

<bean id="dataSource" class="com.cyl.kernel.DynamicDataSource">

<property name="targetDataSources">

<map key-type="java.lang.String">

<entry key="localSrc_ds" value-ref="localSrc_ds" />

<entry key="hitop_pxc_db1_ds" value-ref="hitop_pxc_db1_ds" />

<entry key="perfstat_ds" value-ref="perfstat_ds" />

</map>

</property>

<property name="defaultTargetDataSource" ref="perfstat_ds" />

</bean>

(2)、在WEB-INF/conf/jdbc-mysql.properties中增加对应的系统配置,如下所示:

hitop_pxc_db1_ds.jdbc.driverClassName=com.mysql.jdbc.Driver

hitop_pxc_db1_ds.jdbc.url=jdbc:mysql://172.28.1.102:3306/performance_schema?useUnicode=true&characterEncoding=gbk&autoReconnect=true&failOverReadOnly=false

hitop_pxc_db1_ds.jdbc.username=root

hitop_pxc_db1_ds.jdbc.password=hundsun

hitop_pxc_db1_ds.jdbc.maxActive=5

hitop_pxc_db1_ds.jdbc.maxIdle=2

hitop_pxc_db1_ds.jdbc.maxWait=10000

(3)登录使用perf_stat用户登录监控服务器mysql,执行如下insert语句:

USE perf_stat;

INSERT INTO apps(hostname,PORT,appname,ver) VALUES('mysql服务器地址',端口,'唯一标识该mysql实例的id,不得重复','mysql大版本');

如:

INSERT INTO apps(hostname,PORT,appname,ver) VALUES('localhost',3306,'localSrc','5.6');

INSERT INTO apps(hostname,PORT,appname,ver) VALUES('localhost',3306,'localSrc','5.7'); 5.6、5.7经过测试,5.5不确定

三、perfstat后台服务

1、每隔15/20分钟采集一次;采集时会自动过滤mysql、performance_schema、information_schema三个对象中的CRUD以及各种操作

采集时对于PS中表的操作,会设置SET sql_log_bin = off;以避免truncate PS相关表时传播到其他节点(如果主从或者galera cluster的话)

2、自动清除7天前的日志

四、访问

http://ip:8080即可打开主页面,如

war包下载地址,baidu pan http://pan.baidu.com/s/1slf8h5b。

下一版本计划更新内容:

1、支持界面增加被监控实例,简化配置;

2、支持监控暂停与恢复;

3、支持不同实例不同调度策略;

4、增加slave监控;

媲美oracle awr/statspack的mysql awr第一版发布的更多相关文章

  1. mysql awr 1.0.5 GA正式版发布

    1.0.5变更内容 1.修复centos 7下swap值不正确:2.中文乱码:3.begin/end snap下拉显示Mysql启动时间:4.两次快照间不能重启过:5.新增tab页面查看mysql存储 ...

  2. mysql awr v1.0.1发布

    现发布mysql awr v1.0.1 修复问题: 1.galera cluster下flush table/index_statistcs时如果系统中业务ddl频繁可能会导致很多进程处于prepar ...

  3. ORACLE AWR概述及生成AWR报告

    1.Overview of the Automatic Workload Repository The Automatic Workload Repository (AWR) collects, pr ...

  4. 你搞懂 ORACLE、 SQLSERVER、MYSQL与DB2的区别了吗

    ORACLE. SQLSERVER.MYSQL与DB2的区别--平台性:    Oracle.MYSQL与DB2可在所有主流平台上运行:    SQL Server只能在Windows下运行: --安 ...

  5. Oracle中如何实现Mysql的两表关联update操作

    在看<MySQL 5.1参考手册>的时候,发现MySQL提供了一种两表关联update操作.原文如下: UPDATE items,month SET items.price=month.p ...

  6. oracle数据库不支持mysql中limit功能

    oracle数据库不支持mysql中limit功能,但可以通过rownum来限制返回的结果集的行数,rownum并不是用户添加的字段,而是oracle系统自动添加的. (1)使查询结果最多返回前10行 ...

  7. Oracle、DB2、MySql、SQLServer JDBC驱动

    四种数据库JDBC驱动,还列出了连接的Class驱动名和Url Pattern,DB2包括Type 2.Type 3和Type 4三种模式.注意驱动包名称的大小写. Oralce连接驱动包名和URL ...

  8. 蓝色的成长记录——追逐DBA(8):为了夺回SP报告,回顾oracle的STATSPACK实验

    ***********************************************声明*************************************************** ...

  9. Oracle SQL developer 连接 MySQL 数据库安装配置

    1. 下载 JDBC driver for MySQL 下载链接: https://dev.mysql.com/downloads/connector/j/ 下载成功后,解压缩,得到 mysql jd ...

随机推荐

  1. 介绍几个工作开发中封装的好用的android自定义控件

    首先看效果图, 看下这两个界面,第一个中用到了一个自定义的FlowRadioGroup,支持复合子控件,自定义布局: 第二个界面中看到了输入的数字 自动4位分割了吧:也用到了自定义的DivisionE ...

  2. 批量Ping IP

    刚刚接触Python 想做点什么 听说Python 在网络方便很厉害 后来总结如下: 第一:发现公司都固定IP 每次新来同事都要猜一个没有人用的IP  很费劲 第二:我们公司有的IP可以上QQ 有的不 ...

  3. [PaPaPa][需求说明书][V0.3]

    PaPaPa软件需求说明书V0.3 前   言 不好意思,本文是没有前言的. 别说是前言了,其实关于界面的内容我也是不打算写!!   因为我知道你们想要的界面是这样的: 再不济也应该是这样的: 但是我 ...

  4. POJ 2853 Sequence Sum Possibilities

    Sequence Sum Possibilities Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5537   Accep ...

  5. Android界面布局基本属性

    在 android 中我们常用的布局方式有这么几种:1.LinearLayout ( 线性布局 ) :(里面只可以有一个控件,并且不能设计这个控件的位置,控件会放到左上角)              ...

  6. 理解RxJava:(一)基础知识

    理解RxJava:(一)基础知识 本文翻译自Grokking RxJava, Part 1: The Basics,著作权归原作者danlew所有.译文由JohnTsai翻译.转载请注明出处,并保留此 ...

  7. 【转】ORATOP工具使用说明

    文章转自:http://lintzyuan.blogspot.jp/2014/07/oratop.html ORATOP   前言:隨著PC Server的規格及速度愈來愈快,大多數的公司摒棄大型主機 ...

  8. 【NS2仿真】TCP与UDP混合

    # # ftp # \ # tcp # \ # n0 sink # \ / # \ / # n1---5M 2ms---n3 # / \ # / \ # n2 null # / # udp # / # ...

  9. 【转】mysql如何跟踪执行的sql语句

    转自http://blog.csdn.net/testcs_dn/article/details/18791815 在SQL SERVER下跟踪sql采用事件探查器,而在mysql下如何跟踪sql呢? ...

  10. 写的一个Sass 和Compass的例子

    /*1.打开项目根目录下的 config.rb 文件 2.搜索 line_comments 关键词,默认应该是 # line_comments = false 3.去掉前面的 #,保存 config. ...