IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> mysql高可用集群MHA -> 正文阅读

[系统运维]mysql高可用集群MHA

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.*? to 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

如何恢复宕机的数据库服务器

启动mysql宕机服务

show? slave? status;

当前主服务器数据完全备份:

mysqldump? ?-uroot? -p密码? --master-data(记录日志和偏移量)? gamedb > /root/gamedb.sql

scp? ?/root/gamedb.sql? ? 宕机ip:/root/

宕机:mysql? -uroot? ?-p密码? ?gamedb? <? /root/gamedb.sql

grep? master? ?/root/gamedb.sql? ?日志和偏移量

宕机做从指定复制主服务器:

change? master? to master_host="192.168.4.52",master_user="repluser"

,master_password="密码",master_log_file=master.22,

master_log_pos=903;

start? slave;

管理主机:vim? /mha/app1.cnf? 添加宕机的数据库信息加入选举

[server1]

candidate_master=1

hostname=192.168.4.51

port=3305

:wq

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

检查主从同步

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

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

select? ?* from? gamedb.t1;

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-29 13:27:02  更:2021-10-29 13:28:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 22:38:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码