一次mysql MHA架构搭建过程

【环境介绍】

系统环境:Red Hat Enterprise Linux 7 + 5.7.18 + MHA version 0.57


系统


IP


主机名


备注


版本


xx系统


192.168.142.111


mysqlmha1


主库


5.7.18 -log MySQL Community Server (GPL)


192.168.142.112


mysqlmha2


备库(预主库)


192.168.142.113


mysqlmha3


备库/MHA MGM


192.168.142.111


mysqlmha3


VIP

【搭建步骤:软件部署】

用户目录创建

#groupadd mysql

#useradd mysql -g mysql

#mkdir /home/mysql/logs //创建日志目录

#mkdir /home/mysql/tmp //创建pid目录

将其置于/var/lib下并解压安装包

#tar -xvf mysql-5.7.18-linux-glibc2.12-x86_64.tar.gz

#mv mysql-5.7.20-linux-glibc2.12-x86_64  mysql //改名为mysql目录

#mkdir -p /var/lib/mysql/data //创建数据目录

#chown -R mysql:mysql  /var/lib/mysql/data /home/mysql/tmp  /home/mysql/logs //修改权限

初始化mysql数据库

# cd /var/lib/mysql

# ./bin/mysqld --initialize --user=mysql --basedir=/var/lib/mysql --datadir=/var/lib/mysql /data --innodb_undo_tablespaces=3 --explicit_defaults_for_timestamp

创建配置文件,注意文件目录及server_id,其他参数可根据具体情况调整

cat >/etc/mymha.cnf
#For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/mysqldata/mysql01
socket=/mysqldata/mysql01/mysql01.sock
port = 3306
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

log-error=/mysql/mysql57/logs/mysql01.err
pid-file=/mysqldata/mysqldb01.pid

server-id = 111
basedir=/mysql/mysql57
explicit_defaults_for_timestamp

default_storage_engine=InnoDB
default_tmp_storage_engine=InnoDB
character_set_server=utf8
user=mysql
log_timestamps=system
sync_binlog=1

innodb_flush_log_at_trx_commit=1
innodb_buffer_pool_size=1G
innodb_thread_concurrency=32
innodb_flush_method=O_DIRECT
innodb_io_capacity=200
innodb_file_per_table=1

max_connections=1000
max_user_connections=100
long_query_time=1
lower_case_table_names=1
slow_query_log=1
slow_query_log_file=/mysqlslowlog/slow01.log
tmpdir=/mysql/mysql57/tmp
wait_timeout=300
thread_cache_size=100
expire_logs_days=30

#binlog set
log-bin=/mysql/mysql57/logs/binlog01
relay-log=/mysql/mysql57/repaylog/relaylog01
binlog-format = ROW
gtid-mode = ON
enforce-gtid-consistency = ON
log-slave-updates = ON
master-info-repository = TABLE
relay-log-info-repository = TABLE
binlog-checksum = NONE

slave-parallel-workers=4
slave-preserve-commit-order=1
slave-parallel-type=LOGICAL_CLOCK

设置开机启动并启动mysql服务

#cp /var/lib/mysql/support_files/mysql.server /etc/init.d/mysql

#service mysql start

#service mysql status

配置环境变量并加载环境变量

#vi /etc/profile

PATH=/var/lib/mysql/bin:$PATH

#source /etc/profile

或者直接使用mysql启动指定配置文件,一台主机多个mysql实例时可以使用这种方式启动

#mysqld --defaults-file=/etc/mymha.cnf &

查看数据库初始化密码

#cat /home/mysql/logs/mysql.err|grep -i ‘temporary password‘

使用root用户进入数据库后修改密码

Mysql>set password = password(‘mysql‘);

其他主机安装mysql步骤跟上面一致,注意修改/etc/my.cnf 中的server_id参数

其他备库或者直接使用拷贝的方法安装mysql

#scp -r /var/lib/mysql 192.168.142.xxx: /var/lib/

#chown -R mysql:mysql /var/lib/mysql

#vi /etc/my.cnf

server_id = xxx

#cd /var/lib/mysql/data

#rm auto.cnf

初始化mysql数据库

#./bin/mysqld --initialize --user=mysql --basedir=/var/lib/mysql --datadir=/var/lib/mysql /data --innodb_undo_tablespaces=3 --explicit_defaults_for_timestamp

使用root用户进入数据库后修改密码

#cat /home/mysql/logs/mysql.err|grep -i ‘temporary password‘

Mysql>set password = password(‘mysql‘);

执行以上后完成mysql安装

【搭建步骤:主从配置】

所有节点创建同步用户repl,ip%表示范围(1对多),密码为repl

mysql>create user [email protected]‘192.168.142.%‘ IDENTIFIED BY ‘repl‘;

赋予该用户同步所有数据库的表的权限

mysql>GRANT REPLICATION SLAVE ON *.* TO [email protected]‘192.168.142.%‘;

mysql>flush privileges;

两个备库节点执行

mysql>change master to master_user= ‘repl‘,master_host=‘192.168.142.111‘,master_password=‘repl‘,master_port=3306,MASTER_AUTO_POSITION=1;

启动从库服务

mysql> slave start;

查看主从复制状态

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.142.111
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: binlog01.000011
          Read_Master_Log_Pos: 529
               Relay_Log_File: relaylog01.000002
                Relay_Log_Pos: 395
        Relay_Master_Log_File: binlog01.000011
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

    ......

Executed_Gtid_Set: 42f239e7-5908-11e8-8214-000c2926d694:1,
4651522f-5908-11e8-807d-000c293193c4:1,
8d7abed9-d4cd-11e7-a165-000c29c913a2:1-7,
aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:1-15:1000002-1000075
                Auto_Position: 1
         Replicate_Rewrite_DB:
                 Channel_Name:
           Master_TLS_Version:
1 row in set (0.00 sec)

查看Slave_IO_Running和Slave_SQL_Running运行正常则完成主从复制搭建

【配置MHA高可用】

原文地址:https://www.cnblogs.com/zetanchen/p/9050776.html

时间: 2024-10-11 02:00:40

一次mysql MHA架构搭建过程的相关文章

CENTOS6.6 下mysql MHA架构搭建

本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 本篇是自己搭建的一篇mysql MHA文章 前面的安装步骤基本不变,后面的比如keepalived的配置文件有几种方法 其实想完成keepalived+lvs+atlas(mycat)+mha+mysql主从复制 这样的架构,只是MYCAT单独文章了 每个节点都关闭防火墙,SELINUX. 1.安装epel yum源 wget http://mirrors.

mysql高可用MHA架构搭建

前言:首先介绍一下mha,引用自网络. MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案. 该软件由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点).MHA Manager可以单独部署在一台独立的机器上管理多个master-slave集群,也可以部署在一台slave节点上.MHA Node运行在每台MySQL服务器上,MHA Manager会定时探测集群中的master节点,当master出现故障时,它可以自

MHA架构搭建

MHA工作原理总结如下: 1.  配置文件检查阶段(整个集群的配置) 2.  宕机奔溃的master保存二进制日志事件且摘除VIP操作 3.  识别含有最新更新的slave 4.  复制dead master和slave相差的中继日志,保存到mha manager具体的目录下面 5.  提升一个slave为新的master 6.  使其他的slave连接新的master进行复制 复制机制: 异步复制: MySQL默认是异步复制,MASTER将事件写入BINLOG,但并不知道SLAVE是否何时已经

CENTOS6.6下mysql MMM架构搭建

本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序.MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时刻备选主的预热,可

综合架构搭建过程中不可缺少的部分——全网备份

2.全网备份2.1.全网备份的作用此项目可以将web服务器与存储服务器的数据,以编写脚本的方式将数据文件和目录统一备份到备份服务器,然后以法邮件的方式提醒用户2.2.全网备份部署过程2.2.1.服务端部署#!/bin/bash # 01: 验证备份数据完整性 find /backup/ -type f -name "finger.txt"|xargs md5sum -c >/tmp/check_finger.txt # 02: 将指纹文件验证结果发送给运维人员 mail -s &

MySQL高可用之MHA的搭建

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

MHA架构概述及实战

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

【PaPaPa】系统架构搭建浅析 - 人人可以搭架构

声明 [PaPaPa]这个项目是以技术分享与研究为目的而做的,并非商业项目,所以更多的是提供一种思路,请勿直接在项目中使用. 上一篇隐藏开源项目地址实属无奈,为了寻找一起做这件事的同伴不得已刷了一天推荐,在此希望大家能够理解. 从此篇开始将完全公开项目地址以及所有项目中涉及到的细节,包括文档.讨论过程.设计思路.实现方法全部整理出来写成一个系列,这个将在后续文章中一一揭开,敬请期待. 本项目与博文系列将秉承着“授人以渔”的方式写作,尽自己绵薄之力为C#出一份力以回馈我从C#中得到的快乐和生活上的

基于DR模式的keepalived主从模式高可用架构搭建

一:架构图示 2.keepalived是什么? Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机 ,或工作出现故障,Keepalived将检测到,通过VRRP协议,将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后 Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器. 3.VRRP协议是什么? VRRP(Virtual Router Redundancy Protoc