mariadb

MySQL/MariaDB主从、半同步复制原理

一、主从复制原理 当 MySQL 的 Master 节点的数据有更改的时候,Master 会主动通知 Slave,这时 Slave 开启一个 I/O thread 主动来 Master 获取二进制日志,向 Master 请求二进制日志中记录的语句;Master 将二进制日志中记录的语句发给 Slave,Slave 则将这些语句存到中继日志中,进而从中继日志中读取一句,执行一句,直到所有的语句被执行完。而经 SQL 语句从中继日志中读取出来,再一一执行的进程叫做 SQL thread;将这些语句执行完之后,从节点的数据就和主节点的数据相同了,这就是所谓的 MySQL/MariaDB 主从复制。 Master 节点必须开启二进制日志功能 Slave 节点必须开启中继日志功能 Slave 节点需关闭二进制日志功能(默认不配置即可) Master 和 Slave 节点需要配置不同的 server-id Slave 节点需连接到Master节点 二、半同步复制原理 默认情况下,MySQL 5.5/5.6/5.7 和 MariaDB 10.0/10.1 的复制功能都是异步的,异步复制的情况下可以提供最佳的性能。但是如果 Slave 节点没有接收到 Master 节点发送过来的 binlog 日志时,会造成主从节点的数据不一致,甚至在恢复时造成数据丢失。 为了解决异步复制的数据丢失的问题,MySQL 5.5 引入一种半同步复制模式,该模式可以让 …

MySQL/MariaDB主从、半同步复制原理 Read More »

部署 MySQL/Mariadb 主从复制

本文主要介绍 MySQL/Mariadb 主从复制部署过程,主从复制原理请看这里 一、实验环境 作业系统:CentOS 7.7 mariadb version:10.5.0 服务器角色 IP地址 主机名 应用程式 Master 172.50.1.107 nacos-mha-s1 mariadb Slave1 172.50.1.108 nacos-mha-s2 mariadb Slave2 172.50.1.109 nacos-mha-s3 mariadb 二、部署Maridb 三台服务器都要 部署mariadb 三、主从配置 可根据实际情况是否开启半同步配置 配置文件路径:/etc/my.cnf.d/server.cnf master节点 slave1 节点 slave2 节点 三台服务器都要重新启动 mariadb 服务 四、获取 master 节点 binary log(二进制日志)postion 在 master 节点上,通过mysql -u root -p进入 MySQL 终端,记录 File 和 Position 字段的值 …

部署 MySQL/Mariadb 主从复制 Read More »

使用MHA实现MySQL/MariaDB高可用

本篇介绍MHA部署过程,MHA工作原理请看这里 一、实验环境 作业系统:CentOS 7.7 服务器角色 IP地址 主机名 应用程式 MHA Manager 172.50.1.119 basic-platform Manager, node, mariadb MHA Node | MySQL Master 172.50.1.107 nacos-mha-s1 node, mariadb MHA Node | MySQL Slave1 172.50.1.108 nacos-mha-s2 node, mariadb MHA Node | MySQL Slave2 172.50.1.109 nacos-mha-s3 node, mariadb 二、部署MHA MHA安装包托管在 Google Code 上,也可在 GitHub 上下载 mha-manager 和 mha-node 安装包 1.依赖环境 如果你准备的是一台全新的服务器,建议对服务器进行常用基础环境包的安装 …

使用MHA实现MySQL/MariaDB高可用 Read More »

MHA架构介绍与工作原理

一、简介 MHA (Master High Availability) 目前是 MySQL 高可用相对成熟的解决方案之一,它由日本DeNA公司 youshimaton(现就职于Facebook公司)开发,是一套优秀的故障切换、主从提升的高可用软件。在 MySQL 故障切换过程中,MHA能做到0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能最大程度上保证数据库的一致性,以达到真正意义上的高可用。基于标准的MySQL复制(异步/半同步)。 MHA有两部分组成: MHA Manager (管理节点) 和 MHA Node (数据节点)。 MHA Manager 可以单独部署在一台独立机器上管理多个 master-slave 集群,也可以部署在一台 MySQL Slave 上,MHA Manager 探测集群的node节点,当发现 master 出现故障的时候,它可以自动将具有最新数据的slave提升为新的master,然后将所有其它的slave导向新的master上,整个故障转移过程对应用程序是透明的。 二、工作原理 官方文档 架构原理图: 从宕机崩溃的Master上保存二进制日志事件(binlog event); 识别含有最新更新的Slave; 应用差异的中继日志(relay log)到其他Slave; 应用从Master保存的二进制日志事件; 提升一个Slave为新的Master; 使其他的Slave连接新的Master进行复制; 三、MHA软件包 MHA软件由两部分组成,Manager工具包和Node工具包,具体如下。 Manager工具包: masterha_check_ssh:检查MHA的SSH配置情况。 masterha_check_repl:检查MySQL复制状况。 masterha_manager:启动MHA。 masterha_check_status:检测当前MHA运行状态。 masterha_master_monitor:检测Master是否宕机。 masterha_master_switch:控制故障转移(自动或手动)。 masterha_conf_host:添加或删除配置的server信息。 Node工具包(通常由MHA Manager的脚本触发,无需人工操作): save_binary_logs:保存和复制Master的binlog日志。 …

MHA架构介绍与工作原理 Read More »

CentOS安装MySQL/MariaDB

本文总共有两种方式安装 MySQL/MariaDB,分别是 YUM 和 docker-compose 两种方式 一、实验环境 作业系统:CentOS Linux release 7.7.1908 (Core) mariadb官方配置yum源方法 二、yum 方式安装 mariadb 1. 设置mariadb的yum源 2. 安装 mariadb 3. 启动 mariadb 4. 初始化 mariadb 初始化mariadb的目的:设置mariadb密码、远程ip使用root访问mariadb的权限、删除匿名用户、删除test库等 三、docker-compose 方式安装 MySQL docker-compose.yaml /data/mysql/mysql.conf.d/my.cnf