Sysbench测试及说明

dep: yum install sysbench.x86_64 manual page: http://sysbench.sourceforge.net/docs/ sample page: http://wiki.gentoo.org/wiki/Sysbench 相对于单线程的sql-bench(MySQL提供的测试套件), sysbench在CPU, IO, Mutex, Thread等方面具有更为全面和仿真的特性, 在数据库主机中着重测试CPU, IO, Memory三方面(Mutex和Thread暂不用,业务量在这两方面没有特别的需求)。

Continue reading

MySQL主从数据一致性校验

pt-table-checksum如何校验主从数据的一致性 一.综述 在MySQL中,master和slave的数据一致性校验是一个繁琐且重要的环节,在master和slave同时对外提供服务的业务中, 保证数据的一致性更为重要;这个要求提出如何校验一致性的问题, 在校验的过程中, 如何避免对线上业务造成冲击,不影响主从复制等都需要我们密切关注, 下面部分详细介绍如何通过percona-toolkit的pt-table_checksum校验主从的数据一致性。 二.词语解释 chunk: 分组校验,对大表来说,分组校验是个很好的方法,可以避免引起slave过多的delay于master, 同时也避免了wait_timeout参数影响脚本的执行; CRC32: 循环冗余校验,脚本通过校验码来判断是否存在数据不一致,使用者可以通过method方法更改校验的方法,如MD5, SHA1, UDF等; key: 确保要校验的表有主键或唯一键(没有唯一性,MySQL通过_rowid来标识唯一性),pt-table-checksum通过键来确保待校验行数的一致; 其它: 其它性能优化参数(lag, load, current thread等)见 http://www.percona.com/doc/percona-toolkit/2.2/pt-table-checksum.html

Continue reading

MHA masterha manager检测master及failover处理说明

masterha_manager按照设置频率(ping_interval)定期检测 master 的访问情况, 超过3次检测失败则调用 master_ip_failover_script,master_ip_online_change_script和masterha_master_switch脚本提升一个slave为新的master, 老的master独立出来,供DBA手动操作或者恢复; 详见: https://code.google.com/p/mysql-master-ha/wiki/masterha_manager masterha_manager检测分为3部分: ping检测, ssh检测, MySQL connection检测; 1. MySQL connection检测: 使用init_conf_load_script参数提供的账号信息连接MySQL,成功则master->slave关系正常,失败转到ssh检测; 2. SSH检测: 在MySQL检测失败的情况下,继续检测ssh连接性,正常通信则拷贝binlog文件为提升新master做准备,失败则宣告master为dead状态,后续的slave提升会忽略该主机的binlog信息; 3. PING检测: 通用检测项,按照ping_interval参数定期ping master主机; masterha_manager循环检测,直到做一次主从切换(不论切换成功或失败)就退出(退出后发送报告,report_script参数指定); 调用unix daemonize让masterha_manager命令检测作为守护进程运行:

Continue reading