mysql-MHA预发布环境架构分享(六)之mha安装

MHA由Node和Manager组成,Node运行在每一台MySQL服务器上,也就是说,不管是MySQL主服务器、从服务器、还MHA管理机器,都要安装Node!MHA管理节点模块内部依赖MHA节点模块;MHA管理节点通过ssh连接管理mysql服务器和执行MHA节点脚本。

步骤一、IP划分:

主库:10.142.132.52 [keepalived]

从库1:10.142.132.51  [keepalived 备主]

从库2:10.142.132.47

从库3:10.142.132.48

mha管理:10.142.132.50

mysql-proxy:10.142.132.50

步骤二、安装源码文件(Mha安装包依赖很多per包,请按照我的安装顺序安装!)

(1)、mha4mysql-node-0.53.tar.gz

rpm -ivhperl-DBI-1.620-1.el5.rfx.x86_64.rpm

rpm -ivhMySQL-shared-compat-5.6.21-1.rhel5.x86_64.rpm

rpm -ivhperl-DBD-MySQL-3.0007-2.el5.x86_64.rpm   【如果是6系统先安装 rpm -ivhperl-Data-ShowTable-3.3-1.2.el6.rf.noarch.rpm 】

tar xfmha4mysql-node-0.53.tar.gz

cd mha4mysql-node-0.53

perl Makefile.PL

make && make install

注意:redhat5系列系统,会出现【Pleaseenter your CPAN site: []   随便输入,反正也不用CPAN模块:http://www.cpan.org】

(2)、mha4mysql-manager-0.53.tar.gz

rpm -ivhperl-Config-Tiny-2.10-1.el5.noarch.rpm

rpm -ivhepel-release-5-4.noarch.rpm

rpm -ivh perl-Parallel-ForkManager-0.7.5-4.el5.noarch.rpm

rpm -ivhperl-Mail-Sender-0.8.16-1.el5.rf.noarch.rpm

rpm -ivhperl-Mail-Sendmail-0.79-1.2.el5.rf.noarch.rpm

rpm -ivhperl-Params-Validate-0.95-1.el5.rf.x86_64.rpm

rpm -ihvperl-Email-Date-Format-1.002-4.el5.noarch.rpm

rpm -ivhperl-MIME-Lite-3.029-1.el5.rf.noarch.rpm

rpm -ivhperl-TimeDate-1.16-1.2.el5.rf.noarch.rpm 【解决:perl(Date::Format) perl(Date::Parse)】

rpm -ivhperl-Pod-Escapes-1.04-5.el5.noarch.rpm

rpm -ivhperl-Pod-Simple-3.16-1.el5.rf.noarch.rpm

rpm -ivhperl-Test-Pod-1.45-1.el5.rf.noarch.rpm

rpm -ivh perl-MailTools-2.12-1.el5.rf.noarch.rpm【解决:perl(Mail::send)】

rpm -ivhperl-Log-Dispatch-2.20-1.el5.noarch.rpm

tar xfmha4mysql-manager-0.53.tar.gz

cd mha4mysql-manager-0.53

perl Makefile.PL

make && make install

注意:redhat5系列系统,会出现【Pleaseenter your CPAN site: []   随便输入,反正也不用CPAN模块:http://www.cpan.org】

步骤三、在所有机器配置ssh信任

47机器举例

(1)

ssh-keygen -t rsa

(2)

cat id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA7........

(3)

在 48、50、51、52

vi authorized_keys

增加 47 上 id_rsa.pub的内容

(4)测试

ssh 10.142.132.52 date

ssh 10.142.132.51 date

ssh 10.142.132.50 date

ssh 10.142.132.48 date

ssh 10.142.132.47 date

步骤四、编辑mha4mysql-manager配置文件

【10.142.132.50管理节点】

mkdir -p /etc/masterha

vi /etc/masterha/app1.cnf

[server default]

user=root

password=mysql

ssh_user=root

repl_user=lipengfei

repl_password=lipengfei

manager_workdir=/app/masterha/app1

manager_log=/app/masterha/app1/app1.log

remote_workdir=/app/masterha/app1

ping_interval=1

[server1]

hostname=10.142.132.52

candidate_master=1

check_repl_delay=0

master_binlog_dir=/app/mysql/data

[server2]

hostname=10.142.132.51

candidate_master=1

check_repl_delay=0

master_binlog_dir=/app/mysql/data

[server3]

hostname=10.142.132.48

no_master=1

[server4]

hostname=10.142.132.47

no_master=1

步骤五、启动mha4mysql-manager

nohup masterha_manager--conf=/etc/masterha/app1.cnf --ignore_last_failover < /dev/null > /app/masterha/app1/app1.log2>&1 &

步骤六、故障测试

1、  手工停止 52上的mysql服务,service mysql stop

2、  大约30秒,51自动成为新的主库【在47或48从库上show slave status  就可以看出来】

3、  52再次启动mysql服务,要手工加入到AB架构中【51是主库,使用如下演示命令加入AB架构】

change master to master_host=‘10.142.132.51‘, master_port=3306,master_user=‘lipengfei‘, master_password=‘lipengfei‘,master_log_file=‘binlog.000001‘,master_log_pos=120;

4、  手工停止51上的Mysql服务

5、  大约30秒,52自动成为新的主库【在47或48从库上show slave status  就可以看出来】

注意说明:

1、当主DB故障,切换到另外的服务器上后,即使恢复了原来的主DB,也不能立即加入整套MHA系统中,得重新手工加入AB架构。

2、当发生一次切换后,管理节点的监控进程就会自动退出,需要用脚本来自动启动。另外还得删除app1.failover.complete这个文件,否则新的主DB出现问题MHA就不会切换了。

---------------------------------------mha常用命令--------------------------------------

nohup masterha_manager--conf=/etc/masterha/app1.cnf --ignore_last_failover < /dev/null > /app/masterha/app1/app1.log2>&1 &  【开启MHA Manager监控】

masterha_check_status--conf=/etc/masterha/app1.cnf 【查看MHA Manager监控是否正常】

masterha_stop--conf=/etc/masterha/app1.cnf 【关闭MHA Manage监控】

masterha_check_ssh--conf=/etc/masterha/app1.cnf    【检查SSH配置】

masterha_check_repl--conf=/etc/masterha/app1.cnf 【检查整个复制环境状况】

时间: 2024-10-04 09:36:27

mysql-MHA预发布环境架构分享(六)之mha安装的相关文章

mysql-MHA预发布环境架构分享(七)之mha缺点之修复

1.修复当AB故障切换一次后,mha-manager会自动退出 [只是基本实现,可以在我的基础上修改] [nohup 后台一直执行] vi /app/masterha/monitor.sh #!/bin/bash while : do mhapid=`ps -ef|grep -v grep|grep masterha_manager |wc -l` echo "mhapid:" $mhapid if [ $mhapid -eq 0 ];then masterha_stop --conf

mysql-MHA预发布环境架构分享(五)之keepalived安装

安装keepalive tar zxf keepalived-1.2.2.tar.gz cd keepalived-1.2.2 ./configure --sysconf=/etc --with-kernel-dir=/usr/src/kernels/2.6.18-164.el5-x86_64 sudo make sudo make install sudo cp /usr/local/sbin/keepalived /sbin/keepalived service keepalived sta

mysql-MHA预发布环境架构分享(一)之架构草图、正式图展示

   [草图] 简介: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于 Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件.在MySQL故障切换过程中,MHA能做到在 0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用. 该软件由两部分组成:MHA M

mysql-MHA预发布环境架构分享(二)之mysql源码安装

安装mysql源码包: (1).安装cmake (mysql5.5以后是通过cmake来编译的) 下载解压cmake-2.8.5.tar.gz tar zxf cmake-2.8.12.2.tar.gz -C /usr/local/src cd /usr/local/src/cmake-2.8.12.2 ./configure --prefix=/usr/local/cmake make && make install export PATH=/usr/local/cmake/bin:$P

mysql-MHA预发布环境架构分享(八)之relay log的清除

(1)设置relay log的清除方式(在每个slave节点上): mysql -e 'set global relay_log_purge=0' 注意: MHA在发生切换的过程中,从库的恢复过程中依赖于relay log的相关信息,所以这里要将relay log的自动清除设置为OFF,采用手动清除relay log的方式.在默认情况下,从服务器上的中继日志会在SQL线程执行完毕后被自动删除.但是在MHA环境中,这些中继日志在恢复其他从服务器时可能会被 用到,因此需要禁用中继日志的自动删除功能.

mysql-MHA预发布环境架构分享(三)之AB复制

[主:10.142.132.52 mysql配置文件] [mysqld] datadir=/app/mysql/data socket =/app/mysql/data/mysql.sock lower_case_table_names=1 character-set-server=utf8 collation-server=utf8_general_ci server_id =1 wait_timeout=360000 log-bin=binlog log-bin-index=binlog.i

mysql-MHA预发布环境架构分享(四)之Atlas读写分离

rpm -ivh Atlas-2.2.1.el5.x86_64.rpm   [rpm包直接安装] rpm -ql Atlas [查看安装路径] grep -v '^#' /usr/local/mysql-proxy/conf/test.cnf  |grep -v '^$'  > lipengfei  [过滤垃圾提示符] mv test.cnf test.cnf.old cat lipengfei > test.cnf /usr/local/mysql-proxy/bin/encrypt mys

理解预发布环境和项目部署流程

题外话: 终于又提笔了.一直都记得博客园,偶尔看到评论,偶尔也会翻看旧的文章.一直没有写是因为这段时间里有些忙碌,学习测试方法分析,自动化编程,发布流程环境管理,测试提效,学习和积累是一个漫长的过程,以及暂时没有找到可以单独成文写出来的内容. 这次文章讲到的内容,是如何从一个测试角度看待发布流程和环境管理这些在功能测试前应该先了解的基础. 一.环境 开发环境: 通常表示最低环境,由代码开发人员直接使用和维护,是代码最超前版本的一个环境. 测试环境: 开发人员确认代码分支在开发环境自测没有问题后,

企业中MySQL主流高可用架构实战三部曲之MHA

老张最近两天有些忙,一些老铁一直问,啥时更新博文,我可能做不到天天更新啊,但保证以后一有空就写一些干货知识分享给大家. 我们如果想要做好技术这项工作,一定要做到理论与实践先结合.我一个曾经被数据库虐得体无完肤的过来人给大家一些建议:就是只看书,背理论真的行不通,到时遇到棘手的问题,你还是一样抓瞎.一定要在理论理清的基础上多做实验. 给自己定个目标,3个月做够100-500个实验.然后整理在做实验过程中的各种报错,认真解读分析报错原理,做好笔记.最后再拿起书,重新阅读之前有些可能理解不了的理论知识