8 MySQL-备份和恢复

运维的备份恢复相关的职责

设计备份策略
全备 、增量、时间、自动
日常备份检查
备份存在性
备份空间够用否
定期恢复演练
一季度 或者 半年
故障恢复
通过现有备份,能够将数据库恢复到故障之前的时间点.
迁移

备份类型

热备
在数据库正常业务时,备份数据,并且能够一致性恢复(只能是innodb)
对业务影响非常小

温备
锁表备份,只能查询不能修改(myisam)
影响到写入操作

冷备
关闭数据库业务,数据库没有任何变更的情况下,进行备份数据.
业务停止

备份方式及工具介绍

逻辑备份工具
基于SQL语句进行备份
mysqldump *****
mysqlbinlog *****

物理备份工具
基于磁盘数据文件备份
xtrabackup(XBK) :percona 第三方 *****
MySQL Enterprise Backup(MEB)

逻辑备份和物理备份的比较

mysqldump
优点:
1.不需要下载安装
2.备份出来的是SQL,文本格式,可读性高,便于备份处理
3.压缩比较高,节省备份的磁盘空间
缺点:
4.依赖于数据库引擎,需要从磁盘把数据读出
然后转换成SQL进行转储,比较耗费资源,数据量大的话效率较低
建议:
100G以内的数据量级,可以使用mysqldump
超过TB以上,我们也可能选择的是mysqldump,配合分布式的系统
1EB =1024 PB =1000000 TB

xtrabackup(XBK)
优点:
1.类似于直接cp数据文件,不需要管逻辑结构,相对来说性能较高
缺点:
2.可读性差
3.压缩比低,需要更多磁盘空间
建议: 100G<TB
5.备份策略
方式:
全备:全库备份,备份所有数据
增量:备份变化的数据
逻辑备份=mysqldump+mysqlbinlog
物理备份=xtrabackup_full+xtrabackup_incr+binlog或者xtrabackup_full+binlog
备份周期:
根据数据量设计备份周期
比如:周日全备,周1-周6增量

备份工具使用

mysqldump (逻辑备份的客户端工具)

客户端通用参数

参数 是否必须 含义
-u 用户名
-p 密码
-S socket
-P 端口
-A 全备参数
-B 备份多个单库
-R 备份存储过程及函数
–triggers 备份触发器
-E 备份事件
-F 在备份开始时,刷新一个新binlog日志
–master-data=2 required 以注释的形式,保存备份开始时间点的binlog的状态信息(此参数会自动加锁)
–single-transaction required* innodb 存储引擎开启热备(快照备份)功能

本地备份

mysqldump -uroot -p  -S /tmp/mysql.sock

远程备份

mysqldump -uroot -p  -h 10.0.0.51 -P3306

备份专用基本参数

-A 全备参数

例子1:

[root@db01 ~]# mkdir -p /data/backup
mysqldump -uroot -p -A >/data/backup/full.sql
Enter password: 

mysqldump: [Warning] Using a password on the command line interface can be insecure.
Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you don't want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass --all-databases --triggers --routines --events. 

补充:
1.常规备份是要加 --set-gtid-purged=OFF,解决备份时的警告

[root@db01 ~]# mysqldump -uroot -p123 -A  --set-gtid-purged=OFF  >/backup/full.sql

2.构建主从时,做的备份,不需要加这个参数

[root@db01 ~]# mysqldump -uroot -p123 -A    --set-gtid-purged=ON >/backup/full.sql

-B db1 db2 db3 备份多个单库

说明:生产中需要备份,生产相关的库和MySQL库

例子2 :

mysqldump -B mysql gtid --set-gtid-purged=OFF >/data/backup/b.sql 

(3)备份单个或多个表

例子3–world数据库下的city,country表

mysqldump -uroot -p world city country >/backup/bak1.sql

以上备份恢复时:必须库事先存在,并且ues才能source恢复
(4)特殊参数1使用(必须要加)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值