美文网首页
Mysql 备份

Mysql 备份

作者: 明翼 | 来源:发表于2022-01-14 20:03 被阅读0次

为了防止删库跑路或者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. 双副本,两台机器上存储,定期检查。

相关文章

网友评论

      本文标题:Mysql 备份

      本文链接:https://www.haomeiwen.com/subject/ityicrtx.html