生产环境MySQL数据库集群MHA上线实施方案
一.不停库操做
1.在全部节点安装MHA node所需的perl模块(须要有安装epel源)
yum install perl-DBD-MySQL -y
2.在全部的节点安装mha node
rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm
3.将系统调用的脚本统一放到一个目录下
#这里统一放在了/usr/bin/目录下
/usr/bin/apply_diff_relay_logs
/usr/bin/filter_mysqlbinlog
/usr/bin/purge_relay_logs
/usr/bin/save_binary_logs前端
/30 * purge_relay_logs --user=faxuan --password=faxuan.net --host=192.168.1.172 --port=3307 --disable_relay_log_purge >> /var/log/relay_log_purge.txt 2>&1
二.须要停库的操做
1.前端门户nginx挂维护页
2.停掉全部须要链接数据库的服务,避免写库
例如:resin、tomcat等服务
/etc/init.d/resin stop
/usr/local/apache-tomcat/bin/shutdown.sh
3.主库备份
用mysqldump或者xtrabackup对主库进行备份
4.关闭原keepalived,手动绑定VIP
/etc/init.d/keepalived stop
chkconfig keepalived offnode
base(咱们公司会员积分的库):
ifconfig eth0:1 192.168.1.101/22 up
ifconfig eth1:1 10.0.0.101/24 upmysql
exam、study(咱们公司考试、学习的库)
ifconfig eth0:1 192.168.1.201/22 up
ifconfig eth1:1 10.0.0.201/24 up
5.开启MHA
base:
nohup masterha_manager --conf=/etc/masterha/base.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/base/manager.log 2>&1 &
#查看日志
tail -f /var/log/masterha/base/manager.lognginx
exam_study:
nohup masterha_manager --conf=/etc/masterha/exam_study.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/exam_study/manager.log 2>&1 &
#查看日志
tail -f /var/log/masterha/exam_study/manager.log
6.测试
6.1准备测试数据库
create database testdb
6.2建表
CREATE TABLE test_table
(ID
bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',DOMAIN_CODE
varchar(20) NOT NULL COMMENT '考试单位编号',EXAM_NAME
varchar(300) NOT NULL COMMENT '考试名称',EXAM_TYPE
int(1) NOT NULL COMMENT '考试类型(正式考试,补考)',TARGET_EXAM_ID
bigint(20) DEFAULT NULL COMMENT '关联正式考试的ID(若是是补考,该处是必填)',EXAM_PICTURE_PATH
varchar(100) DEFAULT NULL COMMENT '图示路径',EXAM_BEGIN_TIME
timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '考试开始时间',EXAM_END_TIME
timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '考试结束时间',EXAM_TIME
int(3) NOT NULL COMMENT '考试时长',EXAM_NEED_SCORE
int(5) NOT NULL COMMENT '考试所需积分',EXAM_PAPER_TYPE
int(1) DEFAULT NULL COMMENT '考试试卷类型(0固定、1随机)',EXAM_SCORE
double(6,2) DEFAULT NULL COMMENT '考试总分(关联试卷后回填)',EXAM_PASS_SCORE
double(6,2) NOT NULL COMMENT '考试及格分',EXAM_COMMIT_NUM
int(2) NOT NULL COMMENT '参考最大次数',EXAM_STATUS
int(1) NOT NULL COMMENT '发布状态0未发布,1已发布',EXAM_YEAR
varchar(5) NOT NULL COMMENT '年份',EXAM_PAPER_ID
bigint(20) DEFAULT NULL COMMENT '关联试卷ID',EXAM_DISCRIPTION
varchar(1000) DEFAULT NULL COMMENT '考试备注',OPERATOR_USER_ACCOUNT
varchar(20) NOT NULL COMMENT '修改人',OPERATOR_TIME
timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '修改时间',TARGET_DOMAIN_CODE
varchar(20) DEFAULT NULL COMMENT '发布目标单位编号(发布时回填)',RANK
varchar(100) DEFAULT NULL COMMENT '职务级别(发布时回填)',EXAM_DIPLOMA_ID
bigint(20) DEFAULT NULL COMMENT '关联证书',DIPLOMA_NAME
varchar(200) DEFAULT NULL COMMENT '证书标题(关联证书后回填',DIPLOMA_PICTURE_PATH
varchar(200) DEFAULT NULL COMMENT '证书背景图片保存位置(关联证书后回填)',INDUSTRY_CODES
varchar(1000) DEFAULT NULL,LANGUAGE
int(2) NOT NULL DEFAULT '1' COMMENT 'è¯è¨€ï¼ˆ0:全部,1:汉è¯,2:ç»´è¯,3:è’™è¯,4:哈è¯ï¼‰',EXT1
int(1) NOT NULL DEFAULT '1' COMMENT '成绩计入学分的字段标识(0 是,1否)',EXT2
int(3) DEFAULT NULL COMMENT '成绩所占比例',EXT3
varchar(1) DEFAULT NULL,EXT4
varchar(1) DEFAULT NULL,EXT5
varchar(1) DEFAULT NULL,
PRIMARY KEY (ID
),
KEY DOMAIN_CODE
(DOMAIN_CODE
),
KEY EXAM_PAPER_ID
(EXAM_PAPER_ID
)
) ENGINE=InnoDB AUTO_INCREMENT=365 DEFAULT CHARSET=utf8;
6.3写插入数据脚本
往数据库里插入数据的过程当中停库测试
6.4网络中断测试
有的时候不是由于主库挂了,而是由于主库那台服务器网络中断了,因此也要进行VIP漂移等测试,因此这里要强调一下,无论是任何操做,或正上线任何东西,你们必定都要把问题考虑全面。
7.若是全部测试都没有问题,就恢复环境,补全mha配置文件,启动mha
由于测试完以后,mha会自动摘除down了的server标签,因此要补全配置文件
8.开启全部连库的服务(resin/tomcat)
/etc/init.d/resin start
/usr/local/apache-tomcat/bin/startup.sh
9.添加监控
利用zabbix等监控软件,监控mha的进程。sql
【注意】:之因此把命令都写出来,是由于,在生产环境中,必定要先写好上线流程的全部步骤,包括命令,而后在生产环境操做的时候,不要用手敲,必定要复制,复制必定不会出错,可是手敲,不免会出现错误,若是一个步骤出现问题,那么整个上线过程都会受到影响。数据库