MySQL数据库备份方案

本文详细介绍了MySQL主备的实现原理,包括主从同步、mysqldump逻辑备份和Xtrabackup物理备份。重点讲解了mysqldump的全量备份和恢复,Xtrabackup的全量及增量备份操作。此外,还讨论了binlog的三种格式(Statement, Row, Mixed)及其在数据恢复中的应用。提供了具体的命令示例和注意事项,帮助理解MySQL数据库的备份和恢复策略。" 110691216,10293561,Pandas DataFrame:数据选取、修改与切片操作详解,"['Pandas', 'DataFrame', '数据处理']
摘要由CSDN通过智能技术生成

数据库备份

  • Mysqldump:逻辑备份,热备份,全量
  • xtrabackup:物理,热,全量 + 增量备份

一、 什么是 MySQL 主备

img

情况一:

  • 客户端的业务操作,读、写访问的是主库
  • 主库通过某种机制,将数据实时同步给备库
  • 主库由于有些原因,无法正常响应客户端的请求

情况二:

  • 完成主备切换
  • 客户端读写,访问的是备库(此时备库升级为新主库)

数据同步是如何实现的?

1.主从同步原理

img

1、在备库执行 change master 命令 ,绑定主库的信息

mysql> CHANGE MASTER TO MASTER_HOST = '192.168.1.1', MASTER_USER = 'repl', MASTER_PASSWORD = 'replpassword', MASTER_PORT = 3306, MASTER_AUTO_POSITION = 1, MASTER_RETRY_COUNT = 0, MASTER_HEARTBEAT_PERIOD = 10000; 
  • MASTER_HOST :master主机名(或IP地址)
  • MASTER_PORT :mysql实例端口号
  • MASTER_USER:用户名
  • MASTER_PASSWORD:密码
  • MASTER_AUTO_POSITION:如果进行change master to时使用MASTER_AUTO_POSITION = 1,slave连接master将使用基于GTID的复制协议
  • MASTER_RETRY_COUNT:重连次数
  • MASTER_HEARTBEAT_PERIOD:复制心跳的周期

MySql 中文文档https://www.docs4dev.com/docs/zh/mysql/5.7/reference/change-master-to.html

2、备库执行 start slave 命令,备库启动两个线程:I/O threadSQL thread

3、master主库,有数据更新,将此次更新的事件类型写入到主库的 binlog 文件中

4、主库会创建log dump 线程,通知slave有数据更新

5、slave,向master节点的 log dump线程请求一份指定binlog文件位置的副本,并将请求回来的binlog存到本地的Relay log 中继日志中

6、slave 再开启一个SQL 线程读取Relay log日志,解析出日志里的命令,并执行,从而保证主备库数据同步

2.mysqldump逻辑备份及恢复

全量备份

全量备份基本模式:

  • 进入到mysql容器中
  • 创建备份目录
  • 通过mysqldump命令,执行数据库逻辑备份操作,将结果输出到 sql文件中。

主要命令如下:

# 级联创建数据备份目录
mkdir -p /data/backups/dmp
# 实现所有数据库备份
mysqldump --opt --single-transaction --master-data=2 --host=localhost --user=root --password=admin --all-databases > /data/backups/dmp/dmp1.sql

mysqldump相关参数说明:

  • –opt 适用于备份大表,同时激活了-add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset 命令
  • –single-transaction 开启一个事务,并设置备份事务为可重复读,保持备份数据一致性
  • –master-data=2 表示在备份过程中记录主库的binlog和pos点,并且在dump文件中注释改行
  • –all-databases 导出所有数据库,包括mysql库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值