前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL优化之实现MySQL主从复制

MySQL优化之实现MySQL主从复制

作者头像
Petrochor
发布2022-06-07 15:42:06
5540
发布2022-06-07 15:42:06
举报
文章被收录于专栏:StephenStephen

MySQL主从复制

解决的问题
  • 数据分布
  • 负载均衡
  • 备份
  • 高可用性和容错性
实现原理

MySQL支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个服务器充当从服务器

MySQL复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新、删除等)

每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新

实现步骤

Master将改变记录到二进制日志(binary log)中

Slave将Master的binary log events拷贝到它的中继日志(relay log)

Slave重做中继日志中的事件,将改变反应它自己的数据

实现原理

MySQL双主热备

解决的问题
  • Master挂掉不会影响业务
  • 实现心跳,其中一台master挂掉,立即切换到另一台master
实现原理

Mycat

相关介绍

基于阿里开源的Cobar产品而研发,继承了Cobar的稳定性、可靠性、优秀的架构和性能

一个彻底开源的,面向企业应用开发的大数据库集群

结合传统数据库和新型分布式数据库的新一代企业级数据库产品

一个新颖的数据库中间件产品

主要特性

支持SQL92标准

支持MySQL、Oracle、DB2、SQL Server、PostgreSQL等DB的常见SQL语法

遵守MySQL原生协议,跨语言,跨平台,跨数据库通用中间件代理

基于心跳的自动故障切换,支持读写分离,支持MySQL主从等

步骤
  1. 主服务器开启binary log,vim /etc/my.conf
代码语言:javascript
复制
   log-bin=mysql-bin
   binlog_format=mixed
   server-id=1
   expire_logs_days=10
   early-plugin-load=""

双主热备配置

代码语言:javascript
复制
   log-bin=mysql-bin
   binlog_format=mixed
   server-id=1
   relay_log=mysql-relay-bin
   log_slave_updates=1
   expire_logs_days=10
   early-plugin-load=""
  1. 重启mysql,然后进入mysql,查看主服务器状态
代码语言:javascript
复制
   show master status
   reset master
  1. 配置从机,vim /etc/my.conf,再重启mysql
代码语言:javascript
复制
   #log-bin=mysql-bin
   #binlog_format=mixed
   server-id=2
   relay_log=mysql-relay-bin
   expire_logs_days=10
   early-plugin-load=""

双主热备配置

代码语言:javascript
复制
   log-bin=mysql-bin
   binlog_format=mixed
   server-id=2
   relay_log=mysql-relay-bin
   log_slave_updates=1
   expire_logs_days=10
   early-plugin-load=""
  1. 给master添加用户slave1,允许slave1访问服务器的数据库
代码语言:javascript
复制
   grant replication slave on *.* to slave1@从机IP identified by '123456';
  1. 从机监听master
代码语言:javascript
复制
   # 停止slave
   stop slave;
   # 监听
   change master to \
   master_host = '主机IP' 
   master_port = 3306 \
   master_user = 'slave' \
   master_password = '123456' \
   master_log_file='mysql-bin.000001' \
   master_log_pos = 452;
   # 开启slave
   start slave;
   # 查看slave状态
   show slave status
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-02-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MySQL主从复制
    • 解决的问题
      • 实现原理
        • 实现步骤
          • 实现原理
          • MySQL双主热备
            • 解决的问题
              • 实现原理
              • Mycat
                • 相关介绍
                  • 主要特性
                    • 步骤
                    相关产品与服务
                    云数据库 SQL Server
                    腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档