第七章节 备份恢复
1. DBA(运维)在备份恢复需要做哪些工作
1.1 设计备份策略
1.1.1 备份周期
天,周,月
1.1.2 备份方式
全备,增量....
1.1.3 备份什么?
数据
日志
1.1.4 备份类型
冷备,温备,热备
1.1.5 备份工具
mysqldump
XBK(xtrabackup)
replication
mysqlbinlog
1.2 检查备份
工作中每天必须检查,这是好的习惯
备份文件大小
备份内容头部
1.3 定期恢复演练
正常恢复到测试库
模拟故障恢复演练
1.4 快速、完整故障恢复
1.5升级、迁移的工作
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2. 备份类型(笔试)
2.1 冷备 cold backup
业务停止或数据库关闭,进行备份,业务影响最大
2.2 温备 warm backup
锁表备份,只读备份,阻塞所有的变更操作,只能读。
2.3 热备 hot backup
不锁表备份,只能针对事务型引擎的表(例如:InnoDB),业务的影响最小.
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3. 备份工具介绍
3.1 mysqldump : MDP
优势:
- 逻辑备份工具,
- 文本格式,压缩比
- 备份出来都是SQL,
- 可读性较强,
- 便于二次处理.
- 自带工具
劣势:
- 相对较慢:从磁盘调数据 --->内存 --->转换成SQL --->xxx.sql
3.2 Xtrabackup(percona) XBK, PBK
官网下载地址-点击
物理备份工具, 备份的数据文件(类似cp),可读性比较差,不便于处理
优势:
- 备份速度快
- 支持热备
- 自带了增量备份功能
劣势:
- 需要安装
- 可读性比较差
- 不便于处理
- 压缩比低
3.3 选择建议
小于100G :MDP,XBK
100G - 1T : XBK
超过TB级别 : XBK,MDP
FB : MDP
PB量级 1PB = 1024TB
一块普通的4TB盘1500RMB,
1PB=256*4TB=256*1500=384000 RMB o(* ̄︶ ̄*)o
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4. 备份策略
4.1备份方式:
全备:全库备份,备份所有数据
增量:备份变化的数据
逻辑备份 = mysqldump+binlog
物理备份 = XBK_full+xbk_inc+binlog 或者 xtrabackup_full+binlog
4.2 备份周期:
根据数据量设计备份周期
比如:周日全备,周1-周6增量
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5. mysqldump 逻辑备份工具使用
5.1 客户端通用的参数
-u
-p
-h
-P
-S
5.2 基础备份参数
5.2.1 -A 全库备份
[root@db01 ~]# mkdir -p /backup
[root@db01 ~]# mysqldump -uroot -p123456 -A > /backup/full.sql
[root@db01 ~]# ll /backup/
total 49816
-rw-r--r-- 1 root root 50828204 Aug 15 17:57 full.sql
5.2.2 -B 单库或多库备份
例子:只备份world和test库
[root@db01 ~]# mysqldump -uroot -p123456 -B world test /backup/db.sql
[root@db01 ~]# ll /backup/
total 98672
-rw-r--r-- 1 root root 50025056 Aug 15 18:02 db.sql
-rw-r--r-- 1 root root 50828204 Aug 15 17:57 full.sql
5.2.3 单表或多表备份
库名 表1 表2
[root@db01 ~]# mysqldump -uroot -p123456 world city country > /backup/tab.sql
[root@db01 ~]# mysqldump -uroot -p123456 world > /backup/a.sql
[root@db01 ~]# ll /backup/
total 98952
-rw-r--r-- 1 root root 244810 Aug 15 18:10 a.sql
-rw-r--r-- 1 root root 50025056 Aug 15 18:02 db.sql
-rw-r--r-- 1 root root 50828204 Aug 15 17:57 full.sql+
-rw-r--r-- 1 root root 217203 Aug 15 18:09 tab.sql
5.3 特殊功能参数
(1) -R --triggers -E 数据库特殊对象备份参数
-R 存储过程函数
--triggers 触发器
-E 事件
(2) --master-data=2
1. 以注释形式,记录备份时binlog文件名和position号(截取二进制日志的起点)
2. 自动锁表功能,加 --single-transaction ,减少锁表.
3. 自动解锁
(3) --single-transaction
快照备份,热备.
Creates a consistent snapshot by dumping all tables in a single transaction. Works ONLY for tables stored in storage engines which support multiversioning (currently only InnoDB does);
(4) --set-gtid-purged=OFF (GTID模式独有的参数)
作用, 去除gtid所有信息,在日常备份恢复时可加.
做主从复制应用的时候,不能加此参数.☆.☆.☆.☆.☆
(5) --max-allowed-packet=256M
备份加上日期
[root@db01 ~]# mysqldump -uroot -p123456 -A -R -E --master-data=2 --single-transaction --triggers --set-gtid-purged=OFF --max-allowed-packet=256M > /backup/full`date +%F_%w`.sql