数据库的MHA

一、配置MHA

1.1配置关键程序软连接

ln -s /application/mysql/bin/mysqlbinlog    /usr/bin/mysqlbinlog

ln -s /application/mysql/bin/mysql          /usr/bin/mysql

1.2配置各节点互信


db01:

rm -rf /root/.ssh

ssh-keygen

cd /root/.ssh

mv id_rsa.pub authorized_keys

scp  -r  /root/.ssh  10.0.0.52:/root

scp  -r  /root/.ssh  10.0.0.53:/root


(如果这个方法不行就用mo1管理机的ssh连接脚本来做,先生成ssh-Keygen在用脚本)



各节点验证

db01:


ssh 10.0.0.51 date

ssh 10.0.0.52 date

ssh 10.0.0.53 date


db02:

ssh 10.0.0.51 date

ssh 10.0.0.52 date

ssh 10.0.0.53 date


db03:

ssh 10.0.0.51 date

ssh 10.0.0.52 date

ssh 10.0.0.53 date




1.3安装软件


下载mha软件

mha官网:https://code.google.com/archive/p/mysql-master-ha/

github下载地址:https://github.com/yoshinorim/mha4mysql-manager/wiki/Downloads


所有节点安装Node软件依赖包

yum install perl-DBD-MySQL -y

rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm


在db01主库中创建mha需要的用户

grant all privileges on *.* to mha@'10.0.0.%' identified by 'mha';


Manager软件安装(db03)

yum install -y perl-Config-Tiny epel-release perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes

rpm -ivh mha4mysql-manager-0.56-0.el6.noarch.rpm



1.4配置文件准备(db03)

创建配置文件目录

 mkdir -p /etc/mha

创建日志目录

mkdir -p /var/log/mha/app1

编辑mha配置文件


cat > /etc/mha/app1.cnf<<EOF

[server default]

manager_log=/var/log/mha/app1/manager        

manager_workdir=/var/log/mha/app1            

master_binlog_dir=/data/binlog     

user=mha                                   

password=mha                             

ping_interval=2

repl_password=123

repl_user=repl

ssh_user=root                            

[server1]                                   

hostname=10.0.0.51

port=3306                                 

[server2]            

hostname=10.0.0.52

candidate_master=1

port=3306

[server3]

hostname=10.0.0.53

port=3306

EOF


1.5状态检查(db03)


masterha_check_ssh  --conf=/etc/mha/app1.cnf

masterha_check_repl  --conf=/etc/mha/app1.cnf


1.6开启MHA(db03):


nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover  < /dev/null> /var/log/mha/app1/manager.log 2>&1 &


1.7查看MHA状态

[root@db03 ~]# masterha_check_status --conf=/etc/mha/app1.cnf


二、MHA的vip功能


参数:

master_ip_failover_script=/usr/local/bin/master_ip_failover


注意:/usr/local/bin/master_ip_failover,必须事先准备好

修改脚本内容


vi  /usr/local/bin/master_ip_failover

my $vip = '10.0.0.55/24';

my $key = '1';

my $ssh_start_vip = "/sbin/ifconfig eth0:$key $vip";

my $ssh_stop_vip = "/sbin/ifconfig eth0:$key down";



更改manager配置文件:

vi /etc/mha/app1.cnf

添加:

master_ip_failover_script=/usr/local/bin/master_ip_failover



注意:

[root@db03 ~]# dos2unix /usr/local/bin/master_ip_failover

dos2unix: converting file /usr/local/bin/master_ip_failover to Unix format ...

[root@db03 ~]# chmod +x /usr/local/bin/master_ip_failover



主库上,手工生成第一个vip地址

手工在主库上绑定vip,注意一定要和配置文件中的ethN一致,我的是eth0:1(1是key指定的值)

ifconfig eth0:1 10.0.0.55/24


卸载心跳ip

[root@db02 ~]# ifconfig eth0:1 down


重启mha

masterha_stop --conf=/etc/mha/app1.cnf

nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/mha/app1/manager.log 2>&1 &


三、邮箱提醒功能

1.参数:

report_script=/usr/local/bin/send

2.准备邮件脚本

send_report

(1)准备发邮件的脚本(上传 email_2019-最新.zip中的脚本,到/usr/local/bin/中)

(2)将准备好的脚本添加到mha配置文件中,让其调用


3.修改manager配置文件,调用邮件脚本

vi /etc/mha/app1.cnf

report_script=/usr/local/bin/send


(3)停止MHA

masterha_stop --conf=/etc/mha/app1.cnf

(4)开启MHA    

nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/mha/app1/manager.log 2>&1 &


(5)关闭主库,看警告邮件  

故障修复:

1.恢复故障节点

(1)实例宕掉

/etc/init.d/mysqld start

(2)主机损坏,有可能数据也损坏了

备份并恢复故障节点。

2.恢复主从环境

看日志文件:

CHANGE MASTER TO MASTER_HOST='10.0.0.52', MASTER_PORT=3306, MASTER_AUTO_POSITION=1, MASTER_USER='repl', MASTER_PASSWORD='123';

start slave ;

3.恢复manager

3.1修好的故障节点配置信息,加入到配置文件

[server1]

hostname=10.0.0.51

port=3306

3.2启动manager   

nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/mha/app1/manager.log 2>&1 &

3.4.14 binlog server(db03)

参数:

binlogserver配置:

找一台额外的机器,必须要有5.6以上的版本,支持gtid并开启,我们直接用的第二个slave(db03)

vim /etc/mha/app1.cnf

[binlog1]

no_master=1

hostname=10.0.0.53

master_binlog_dir=/data/mysql/binlog

创建必要目录

mkdir -p /data/mysql/binlog

chown -R mysql.mysql /data/*

修改完成后,将主库binlog拉过来(从000001开始拉,之后的binlog会自动按顺序过来)

拉取主库binlog日志

cd /data/mysql/binlog     -----》必须进入到自己创建好的目录

mysqlbinlog  -R --host=10.0.0.52 --user=mha --password=mha --raw  --stop-never mysql-bin.000001 &

注意:

拉取日志的起点,需要按照目前从库的已经获取到的二进制日志点为起点


重启MHA

masterha_stop --conf=/etc/mha/app1.cnf

nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/mha/app1/manager.log 2>&1 &

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,444评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,421评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,363评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,460评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,502评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,511评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,280评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,736评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,014评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,190评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,848评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,531评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,159评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,411评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,067评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,078评论 2 352

推荐阅读更多精彩内容