MySQL数据库 高可用集群方案

MySQL数据库的集群方案

在这里插入图片描述

MySQL 高可用架构:主从备份

  • 为了防止数据库的突然,挂机,我们需要对数据库进行高可用架构 主从备份 是常见的场景
  • 通常情况下都是 一主一从/(多从)
    正常情况下,都是主机进行工作,从机进行备份主机数据,如果主机某天突然意外宕机,从机可以立刻工作而不会数据丢失…
    在这里插入图片描述

MySql 主从复制原理

mysql主节点(称master) | 从(称slave)复制

  • 首先我们要先开启主机的 日志记录 master主机,每进行 DML的操作,向日志中写入一条消息记录 到二进制日志事件(binary log)

  • 从节点,中会指定主节点的信息:ip 端口 二进制日志 的位置文件...
    并启动一个线程,异步实时的 将master的binary log events拷贝到它的中继日志(relay log)
    slave重做中继日志中的事件,将改变反映它自己的数据(数据重演)

注意:

  • 通常为了保证数据准确,主从备份之前要:确保
  • 主DB server和从DB server数据库的版本一致
  • 主DB server和从DB server数据库数据一致
  • 主DB server开启二进制日志,主DB server和从DB server的server_id服务id都必须唯一

环境准备:

  • percona-5-7-23.tar
    Mysql的衍生版本Percona 通过docker进行搭建服务。这里本人直接使用提供好的tar 进行生成Docker镜像
    有网络条件的朋友可以直接 拉取最新的镜像!

Docker 搭建Mysql 主从备份:

  • 正好,前段时间,看了一段时间Dokcer 本次就直接通过Dokcer进行搭建了… 正常情况其实也无疑..

搭建Master01节点:

#本人安装软件的目录:
[root@hadoop1 ~]# cd /usr/local
[root@hadoop1 local]# ls
apache-phoenix-5.0.0-HBase-2.0-bin  elasticsearch        haproxy-1-9-3.tar  kafka_2.10-0.10.2.1        MR-1.0-SNAPSHOT.jar                                       partition.csv       zookeeper-3.4.13
apache-tomcat-7.0.85                elasticsearch-6.2.4  hbase-2.1.0        kibana-6.2.4-linux-x86_64  Mycat-server-1.6.6.1-release-20181031195535-linux.tar.gz  percona-5-7-23.tar
apollo                              hadoop               jdk1.8.0_171       logstash-6.3.0             mysql                                                     wordcount.txt

#本人没有下载,就直接讲 tar包转换成镜像文件了...
[root@hadoop1 local]# docker load --input percona-5-7-23.tar
f972d139738d: Loading layer [==================================================>]  208.8MB/208.8MB
793d15bf88da: Loading layer [==================================================>]  6.144kB/6.144kB
f34bc9e37309: Loading layer [==================================================>]  303.1kB/303.1kB
39df7a5abc61: Loading layer [==================================================>]  22.46MB/22.46MB
#省略..

#查看所有镜像
#percona Mysql衍生版本
#haproxy 代理服务器
[root@hadoop1 ~]# docker images
REPOSITORY                                         TAG       IMAGE ID       CREATED         SIZE
haproxy                                            1.9.3     d1ba0f09266d   2 years ago     72.1MB
percona                                            5.7.23    9db94bcf28b3   2 years ago     577MB

正片开始😀
Mysql master主节点搭建
#回到根目录 创建文件目录(用户区分之前安装的应用...)
[root@hadoop1 /]# cd /
[root@hadoop1 /]# mkdir -p /data/mysql/master01

#进入一号主节点目录
[root@hadoop1 /]# cd /data/mysql/master01

#创建两个目录:conf配置文件 data日志文件,为了方便操作容器内,创建数据卷
[root@hadoop1 master01]# mkdir conf data
[root@hadoop1 master01]# ls
conf  data
#linux 设置文件权限 777 最大!
[root@hadoop1 master01]# chmod 777 * -R 
[root@hadoop1 master01]# cd /data/mysql/master01/conf
#创建编写配置文件 👇👇
[root@hadoop1 conf]# vim my.cnf

#生成容器
	#-v 设置数据卷:容器与宿主机进行文件管理共享,为了方便更改查看配置文件!
	#-p 设置端口,因为对外访问的是linux的端口,容器内部的端口要与宿主机进行映射所以之后的 3306只能有一个!(后面就是3307 3316别搞混)
	#-e 配置数据库默认密码 root
[root@hadoop1 conf]# docker create --name percona-master01 -v /data/mysql/master01/data:/var/lib/mysql -v /data/mysql/master01/conf:/etc/my.cnf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root percona:5.7.23
cde032cb98a0465f08cee6554e83a4d53ce2b72bc95f662746d712418d4d1c91
#启动mysql 容器 && (并且查看他的启动日志:如果启动报错就可以实时的发现!
[root@hadoop1 conf]# docker start percona-master01 && docker logs -f percona-master01
#...
[root@hadoop1 ~]# docker ps -a
cde032cb98a0   percona:5.7.23   "/docker-entrypoint.…"   15 hours ago   Exited (255) 15 minutes ago   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp   percona-master01

my.cnf 文件内容

#配置mysql基础信息
[mysqld]
#开启二进制日志,集群必须开启,主从互备直接通信就是通过: 二进制日志! (从节点这个可以忽略!)
log-bin=mysql-bin 
#服务id,同一个集群环境下服务id不可重复!
server-id=1
  • 从节点可以忽略: log-bin=mysql-bin
    因为,从节点只需要读取,主节点的 二进制日志 即可!

主节点 测试连接:

在这里插入图片描述

  • 查看二进制日志文件:文件名 文件位置...

设置:主节点配置信息

#创建同步账户以及授权
CREATE USER 'wf'@'%' IDENTIFIED BY 'wf'; 
#配置权限, 读库读表的操作 *.* 
GRANT REPLICATION SL
  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java.慈祥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值