ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

高可用mysql集群

2021-10-28 22:34:34  阅读:195  来源: 互联网

标签:可用 mha cnf etc master 服务器 mysql 集群


MHA+MYSQL主从同步结构

MHA由日本dena公司youshimaton开发

是一套优秀的实现mysql高可用的解决方案

数据库的自动故障切换操作能做到在0-30秒内完成

MHA能确保在故障切换过程中最大限度保证数据的一致性,

以达到真正意义的高可用。

perl 编写

MHA组成:

MHA manager 管理节点

管理所有数据库的服务器

可以单独部署在一台独立的机器上

也可以部署在某台数据库服务器上

MHA Node 数据节点

存储数据的mysql服务器

运行在每台mysql服务器上

由manager定时探测集群中的master节点

当master故障时,manager自动将拥有最新数据的slave提升为新的master

实例:

客户端1台  管理机1台  数据库服务器3台一主两从

数据库:show  master  status;   show  slave  status; 

查看日志是否打开,是否是从服务器

重启mysqld

配置数据库之间可以互相无密码连接

ssh-keygen  

ssh-copy-id   root@ip

管理机无密码连接数据库群

ssh-keygen

ssh-copy-id  root@ip

配置mysql一主多从

51主数据服务器

开启日志   /etc/my.cnf

log_bin=master51

server_id=51

:wq

登录授权从服务器用户:

grant    replication slave  on  *.* to repluster@"密码"  identified  by "密码”;

52从数据服务器

·/etc/my.cnf

server_id=52

:wq        

systemctl  restart  mysqld

登录指定主数据服务信息 show  master  status;看主数据服务器的日志指定日志文件和位置偏移量

change  master  to master_host="主ip"  ,master_user="repluster",master_password="密码“,

master_log_file="master51.0001",master_log_pos=22;

start slave;

show  slave  status \G;

53主机和52主机一样

show  master  status;

show grants  for  repluster@"%";

show  slave   status  \G;

57管理主机:

安装软件包

创建并编辑主配置文件

创建故障切换脚本并编辑

把vip地址指定给在当前的主服务器51

yum   -y install    perl*

rpm -ivh  mha4.mysql-node-0.56-0.e16.noarch.rpm

yum  -y install   mha4.mysql-node-0.56-0.e16.noarch.rpm

tar    -zxvf  mha4.mysql-manager-0.56.tar.gz

perl    Makefile.pl    //需要yum list  | grep -i  "  " 依赖包

make

make install

安装完成命令

masterha_check_ssh   检查mha的ssh配置状况

masterha_check_repl      检查mysql复制状况

masterha_manager          启动mha

masterha_check_status     检测mha运行状态

masterha_stop                  停止mha

模板文件:

mkdir   /etc/mha

cp   /var/ftp/upload/mha/mha4mysql-manager-0.56/samples/conf/app1.cnf  /etc/mha

vim /etc/mha/app1.cnf

manager_workdir=/etc/mha  

manager_log=/etc/mha/manager.log

master_ip_failover_script=/etc/mha/master_ip_failover    故障切换脚本,需拷贝模板

ssh_user=root

ssh_port=22

repl_user=用户名(主服务授予的从连接的用户名)

repl_password=密码

user=root      数据服务器授权用户登录监视

password=密码

[server1]

hostname=数据服务器ip地址

port=3306

candidate_master=1

[server2]

....

:wq

cp   /var/.../samples/scripts/master_ip_failover   /etc/mha/

vim /etc/mha/master_ip_failover         在35行my后

my  $vip="192.168.4.100";  定义vip地址

my  $key="1";   定义地址编号

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

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

  :wq

chmod +x  /etc/mha/master_ip_failover

51主服务器数据库

ifconfig   eth0:1  192.168.4.100/24

ifconfig   eth0:1

配置数据库服务器 51  52  53

安装软件

创建授权用户

优化数据库

cd               mha-soft-student

都配yum     -y    install     ./mha4mysql-node-0.56-noarch.rpm   节点

主配会同步给从:grant    all  on  *.*   to  root@"%"  identified  by "密码";

select   user,host   from  mysql.usrer;

多从服务器都要配置授权同步的用户:

grant   replication   slave  on *.*   to repluser@"%"  identified by “密码”;

优化配置:

开通半同步复制:

数据都配以下:vim /etc/my.cnf  在[mysql]下

plugin-load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so

rpl_semi_sync_master_enabled=1

rpl_semi_sync_slave_enabled=1      //启用模块

relay_log_purge=0  //禁止自动删除日志文件

:wq

systemctl  restart   mysqld

开启从服务器bin-log日志

vim  /etc/my.cnf

log_bin=master52|53

:wq

测试mha

57管理主机:

masterha_check_ssh   --conf=/etc/mha/app1.cnf    检查ssh

masterha_check_repl  --conf=/etc/mha/app1.cnf   检查从服务复制主从正常

masterha_manager  --conf=/etc/mha/app1.cnf   --remove_dead_master_conf   --ignore_last_failover(无8小时内第二次限制切换)

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

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

主数据:grant   select,insert  on gamedb.*  ya@"%"  identified  by "密码“;

create database  gamedb;

create   table  gamedb.t1(id int);

客户端:mysql  -hvip    -uya  -p密码   -e  "mysql命令"

51主数据停止mysqld服务

客户端:mysql  -hvip    -uya  -p密码   -e  "mysql命令"

52:show  slave  status;

53:show  slave status \G | grep  -i  "master_host"

57:masterha_manager  --conf=/etc/mha/app1.cnf   --remove_dead_master_conf --ignore_last_failover

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

标签:可用,mha,cnf,etc,master,服务器,mysql,集群
来源: https://blog.csdn.net/lianglikang/article/details/121018827

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有