Mysql 备份

为了防止删库跑路或者mysql主机存储坏掉的问题,我们一般需要对数据进行备份,备份普遍采用:
全量备份+增量备份的方式。

全量备份
备份此时间点内中数据库的所有数据,可以采用逻辑备份或物理备份两种方式。
逻辑备份:
备份数据库的逻辑内容,每个表的内容都采用insert语句的方式进行备份。
采用下面命令备份:

mysqldump -A --single-transaction > backup.sql

-A 标识备份所有数据库;--single-transaction表示进行一致性备份,一定要加防止备份数据不一致失去意义。
还有些常用命令:

#备份所有数据库,密码直接写在命令行里面不建议
mysqldump -uroot -proot --all-databases >/tmp/all.sql
#备份指定数据库库,
mysqldump -uroot -proot --databases db1 db2 >/tmp/user.sql
# 不生成创建语句
--no-create-info
# 只导出表结构不导出数据
--no-data
#将 192.168.80.137的test数据库导入到192.168.80.133 的test库中,后者要存在
mysqldump --host=192.168.80.137 -uroot -proot -C --databases test |mysql --host=192.168.80.133 -uroot -proot test 

恢复

mysql -uroot -proot < backup.sql

另外命令:

mysqlpump  -A --single-transaction --default-parallelism=4  > backup.sql

以四个线程方式备份(在MySQL 5.7.11此版本后安全),且可以看备份的进度,mysqlpump 命令类似mysqldump,mysqlpump的并行是表级别的,如果是很大的表,也只能单线程备份,建议采用:mydumper ,一个开源工具:地址:https://github.com/maxbube/mydumper

好处:支持一致性备份;支持记录级别的多线程备份,可以指定单表多线程恢复。

# -r 100000 表示每100000 条方式备份记录
#--trx-consistency-only 一致性,-t 8 开8个线程
mydumper -o /bak -r 100000 --trx-consistency-only -t 8

物理备份
物理备份直接备份数据库的物理表空间文件和重做日志,物理备份的备份速度和恢复速度都快。
物理备份只能恢复整个实例的数据,而不能按指定表进行恢复。MySQL 8.0 的物理备份工具可以选择官方的 Clone Plugin,需要单独安装此插件:

[mysqld]
plugin-load-add=mysql_clone.so
clone=FORCE_PLUS_PERMANENT

命令如下:

mysql> CLONE LOCAL DATA DIRECTORY = '/path/to/clone_dir';

还可以进行远程物理备份:

CLONE INSTANCE FROM 'user'@'host':port
IDENTIFIED BY 'password'
[DATA DIRECTORY [=] 'clone_dir']
[REQUIRE [NO] SSL];

8.0以前版本,物理备份工具建议:https://github.com/percona/percona-xtrabackup

增量备份
增量备份就是对日志文件进行备份,在 MySQL 数据库中就是二进制日志文件。日志里面保存了所有的mysql的变更记录,可以通过全量+增量恢复任意时间点的数据。

如果有删除误操作,可以跳过这些二进制日志,再重放剩下的二进制日志。

实时增量备份命令:

mysqlbinlog --read-from-remote-server --host=host_name --raw --stop-never binlog.000001

--read-from-remote-server从远处服务器上拉取日志,--raw 表示采用二进制方式进行拉取;
--stop-never 表示永远不要停止,一直拉取;binlog.000001表示从这个文件开始拉取。

增量恢复命令:

mysqlbinlog binlog.000001 binlog.000002 | mysql -u root -p

备份策略

  1. 每周进行一次全量备份;
  2. 双副本,两台机器上存储,定期检查。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 为什么要备份 灾难恢复:硬件故障、软件故障、自然灾害、黑客攻击、误操作测试等数据丢失场景 备份注意要点 能容忍最多...
    Simon_Ye阅读 270评论 0 0
  • 一、备份概述 为何要备份 由于机器故障导致数据丢失 主从复制集群把原始数据备份到异地(其他机房或者其他城市) 由于...
    红衣漫漫阅读 206评论 0 0
  • 文/Bruce.Liu1 文章大纲备份概念1.1. 备份目的1.2. 备份方式1.3. 备份类型1.4. 备份对象...
    BruceLiu1阅读 3,926评论 4 15
  • 普通文件方式 简单数据的导入和导出 编辑配置文件 my.cnf 添加如下配置项 例如 配置完成后需要重启服务 本地...
    红衣漫漫阅读 529评论 0 0
  • 普通文件方式 简单数据的导入和导出 编辑配置文件 my.cnf 添加如下配置项 例如 配置完成后需要重启服务 本地...
    痕迹xxxyyyyyyY阅读 1,233评论 0 1