小花狸监控之Mongodb
MongoDB监控内容1.副本集状态2.内存使用和映射情况3.5秒内增、删、改、查请求的平均值.$GOLANG/src/probe/module/Host.gopackage moduleimport ( "io/ioutil" "net" "os/exec" "strconv" &n...
小花狸监控之Redis
小花狸监控Redis和主机的状态监控主机状态的代码$GOPATH/src/probe/module/Host.gopackage moduleimport ( "io/ioutil" "net" "os/exec" "strconv" "strings" "...
小花狸监控之主机状态
小花狸监控,使用Golang编写预计监控内容1.主机CPU,内存,磁盘使用率2.Redis3.Mongodb4.MySQL5.Oracle6.LVS(*)7.KeepAlived(*)图难于其易,为大于其细下面是使用Golang获取主机资源使用率Golang语言非常简单直观.和使用命令直接获取几乎无异.package mainimport ( "encoding/json"&n...
AWK应用之统计访问日志
Nginx和Apache都支持访问日志,可以记录页面请求的时间统计页面的访问时间,可以作为调优的一种依据.实验模拟Nginx的访问日志,统计页面访问的各项数值.首先创建模拟数据create table t select concat('/cms/',ceil(rand()*5),'.html') path,now()-interval id+ceil(rand()*60) minute createtime,c...
HashMap死锁分析
参考:http://github.thinkingbar.com/hashmap-infinite-loop/
MySQL查询阻塞语句
select r.trx_id waiting_trx_id, r.trx_mysql_thread_Id waiting_thread, r.trx_query waiting_query, b.trx_id blocking_trx_id, b.trx_mysql_thread_id blocking_thread, b.trx_query blocking_query from information_schema.innodb_lock_waits...
MySQL用表实现号池的功能
最近单位做IM聊天群其中一个功能是新建群,获取群号.群号是我们运营定义的。好的号码要留着卖吧.模拟群号的号池.create table test( id int primary key, state int)engine =innodb;insert into test values(1,0),(2,0),(3,0),(4,0),(5,0),(6,0),(7,0),(8...
MySQL自定义变量执行顺序
高性能MySQL 248页关于书中 MySQL自定义变量 确定取值顺序的一些实验和猜测.并不能保证正确.实验数据,test表 a是主键,b字段没有任何索引.CREATE TABLE test ( a int(11) NOT NULL, b int(11) DEFAULT NULL, PRIMARY KEY (a)) ENGINE=InnoDB;INSERT INTO test VALUES (1,100),(2,20),(3,5),(4...
MySQL自定义变量的三个小技巧
高性能MySQL 244页1.指定表的访问顺序实验数据:user是活跃用户表,user_archived是长时间不活跃的用户表.两个表的结构相同,冷热数据分开.create table user( id int primary key, name varchar(20));create table user_archived( id i...
定位生产环境中间件的问题代码
经常遇到一种情况,就是程序上线了,随着访问量的增加,中间件服务器的负载急剧升高.这个时候服务器很卡,却不知道卡在哪里,调整代码更无从谈起.首先,先找到中间件的进程.[root@centos6 ~]# jps -l或者[root@centos6 ~]# top应该都可以找到中间件的进程号(PID)然后top -p pid 按下shift+h 查看线程信息[root...
过多if-else分支的优化
JAVA程序经常看到一个函数中包含了十几个if-else的分支判断比如 根据不同职位增加工资的例子public class Employee { private int salary = 10; public void addMoney(String str) { &nb...
Oracle恢复误删除的数据文件
实验环境: CentOS 6.4 MySQL 5.6.141.模拟误删除了MySQL的数据文件在datadir目录删除所有的文件.[root@master ~]# rm -rf /dbdata/mysqldata/*[root@master ~]# ls /dbdata/mysqldata/[root@master ~]# 这个时候千万不要关闭数据库实例2.恢复首先找到MySQL的进程号PID,可...
Oracle闪回技术之闪回数据库
OCA/OCP认证考试指南 580页Oracle闪回技术包括1.闪回数据库2.闪回查询、事务和表3.闪回删除4.闪回数据归档闪回数据库 可以将数据库回退到过去的某一时刻,效果等同于不完整恢复.他将丢失在闪回点之后的所有数据,因为他必须使用resetlogs打开数据库.它可以恢复一些逻辑错误,比如update语句忘记了...
复制的过滤
二进制日志的过滤高可用MySQL 54页如果binlog_format为Statement,则过程比较复杂.如下图所示.如果binlog_format为row,则没有这么多歧义.中继日志的过滤过滤数据库过滤表
防跳号的两种方式
在财务上有一种需求,就是单据号必须连续不能中断.这种需求用Oracle的序列不能实现,MySQL的auto_increment也不能实现.因为事务回滚,或者实例重启,都可能造成单据号不连续的情况,就是跳号.防止跳号有两种方式,但是前提都是不能删除数据.1.用锁限制并发.一个表有两个字段,一个是模块名称,一个是当前模块的序列值create ...
MySQL选用可重复读之前一定要想到的事情(ICP验证和勘误)
前文关于ICP优化的实验貌似有误http://blog.itpub.net/29254281/viewspace-1398273/实验环境select @@optimizer_switch\G@@optimizer_switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=on,mrr=on,mrr_co...
在标准MySQL 5.6上查询没有使用过的索引的SQL
select distinct mysql.innodb_index_stats.table_name, mysql.innodb_index_stats.index_namefrom mysql.innodb_index_statswhere concat(mysql.innodb_index_stats.index_name, &nb...
MySQL选用可重复读之前一定要想到的事情(执行计划影响)
大约一年前发现MySQL在可重复读隔离级别下,可能出现全表的排他锁.当时并没有找到一个合理的解释.http://blog.itpub.net/29254281/viewspace-1081634/实验数据和环境CREATE TABLE t ( a int(11) NOT NULL, b int(11) DEFAULT NULL, PRIMARY KEY (a), KEY b (b)) ENGINE=InnoDB;INSERT ...
MySQL选用可重复读之前一定要想到的事情(无索引加锁验证)
之前的实验,提到过一个场景当前读(锁定读)加锁情况. 读提交 可重复读 主键索引 锁定主键索引锁定主键索引唯一索引 锁定唯一索引的值和主键索引的值锁定唯一索引的值和主键索引的值...
MySQL选用可重复读之前一定要想到的事情
MySQL选用可重复读隔离级别之前一定要想到的事情.锁MySQL在使用之前有三个务必要知道..(随着了解的深入这个极有可能再增加..)1.DDL会引起metadata lock,导致请求连环阻塞,甚至是查询请求.http://blog.itpub.net/29254281/viewspace-1383193/2.MySQLDump和XtraBackup的flush table命令会引起waiting for table连环阻...