MySQL主从复制原理、特点和常见架构学习笔记

写在前面:以下内容为腾讯NEXT公开课有关课程的学习笔记。课程链接如下:
https://www.bilibili.com/video/BV1oJ411z7bf?p=1

一、MySQL主从复制的特点和工作原理

1、主从复制的特点

  • 异地备份数据
  • 提供数据修改的回滚窗口期
  • 部署高可用集群
  • 实现数据库读写分离
  • 不能保证主从数据库的完全同步
  • 不能代替数据库备份
  • 不能降低主库的写负载

2、主从复制的工作原理

主从复制原理

二、MySQL二进制日志的作用

2、二进制日志的作用

  • 记录所有对数据库中数据的修改操作
  • 用于数据库的增量备份和基于时间点的恢复
  • 用于实现MySQL主从复制

3、二进制日志的格式

1)基于SQL段的格式(–binlog-format=STATEMENT)

基于SQL段的格式的binlog
特点

  • 日志中记录的就是修改数据时所使用的的SQL语句
  • 在主从复制环境中,从数据库重新执行相应的SQL语句以完成数据同步
  • 日志记录相对来说较少

读取

mysqlbinlog --start-datetime="[start-time]" --stop-datetime="[stop-time]" Binlogfile
2)基于行的二进制日志格式(–binlog-format=ROW)

基于行的日志格式
特点

  • 记录对数据行所做的实际修改
  • 在主从复制环境中,从数据库直接应用对数据行的修改
  • 对每一行日志的修改都会有一条日志记录,所以日志量比较大

读取

mysqlbinlog --base64-output=decode-rows -v -v --start-datetime="[start-time]" --stop-datetime="[stop-time]" Binlogfile
## 第一个-v表示把ROW格式日志解析为SQL语句
## 第二个-v表示在SQL语句或者那个以备注的形式显示列的类型
3)段和行混合的日志格式(–binlog-format=MIXED)

结果确定SQL存储为基于段的格式
结果非确定SQL存储为基于行的格式

三、二进制日志常用配置参数

  • log-bin [=base_name][/data/sql-log/mysql-bin]
  • binlog_format = [ROW | STATEMENT | MIXED]
  • binlog_expire_logs_seconds = 二进制过期秒数
  • binlog_row_image = [FULL | MINIMAL | NOBLOB]
  • binlog_rows_query_log_events = [ON | OFF]

四、MySQL主从复制配置步骤

主数据库从数据库
开启binlog及GTID开启binlog及GTID(可选)
建立同步数据库账号用备份初始化从数据库数据
备份主数据库数据配置复制链路
把备份文件传到从服务器启动复制链路

五、MySQL备份

1、数据库备份在主从复制集群中的作用

用于灾难恢复,保证数据的安全性

2、数据库备份的类型

1)逻辑备份
  • 通过导出数据库中的数据和数据库对象所进行的备份。
  • 可用于跨数据库版本恢复
  • 由于恢复时需要重新导入数据库对象所以恢复数据库所需时间较长
2)物理备份
  • 通过直接备份数据库的数据文件进行的备份
  • 只能在同备份版本实例相同的数据库实例上进行恢复
  • 由于是直接复制数据文件所以恢复时间较短

3、命令行工具mysqldump

## 备份某个或几个数据库
mysqldump -u [user] -p [passwd] --databases [db1] [db2] > backup.sql

## 备份所有数据库
mysqldump -u [user] -p [passwd] --all-databases > backup.sql

--master-data=[1,2] 记录备份时数据库二进制日志的偏移量
--max-allowed-packet 指定MySQL服务器最大允许的SQL包的大小
--single-transaction 在一个单独的事物中完成备份
--set-gtid-purged=OFF 不备份gtid信息

六、常见主从复制架构

1、一主一从

一主一从

2、一主多从

主数据库中存在多个binlog线程,为各个从数据进行binlog文件复制。
一主多从

3、级联复制

级联复制架构中存在多个主数据库,主数据库中需要维护不同的数据表,避免从数据库中出现数据冲突。
级联复制架构

4、多主复制

主库之间需要维护不同的数据表,避免从数据库上出现数据冲突。
多主复制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值