学习预览:
(一)mysql 运维基础篇(Linux云计算从入门到精通)
(三)mysql 触发器、存储过程和函数(数据库运维基础补充)
(五)mysql数据备份—物理备份(完备+lvm快照+xtrabackup)+逻辑备份(mysqldump+导入导出)
(六)mysql复制技术—M-S主从配置(传统+GTID)+M-M-S-S主从配置(GTID)
(七)mysql中间件mycat配置和部署(基于M-M-S-S)
(八) 数据库集群技术—Galera Cluster安装与配置
(九)数据库集群技术Galera+mycat(数据库运维学习终章)
CONTEND
5.1 MySQL数据备份技术概述
(1)所有备份数据都应放在非数据库本地,而且建议有多份副本。
测试环境中做日常恢复演练,恢复较备份更为重要。
(2)了解备份和冗余的概念:
备份:能够防止由于机械故障以及人为误操作带来的数据丢失,例如将数据库文件保存在了其它地方。
冗条:数据有多份冗余,但不等备份,只能防止机械故障还来的数据丢失,例如主备模式、数据库集群。
(3)备份过程中必须考虑因素(优先满足数据的一致性):
- 1.数据的一致性
- 2.服务的可用性
(4)备份方式(逻辑备份和物理备份)
逻辑备份:备份的是建表、建库、插入等操作所执行SQL语句( DDL DML DCL ),适用于中小型数据库,效率相对较低。
- mysqldump
- mydumper
物理备份:直接复制数据库文件,适用于大型数据库环境,不受存储引擎的限制,但不能恢复到不同的MySQL版本。
- tar,cp
- xtrabackup
- inbackup
- Ivm snapshot
(5)备份还有完全备份、增量备份和差异备份
- 完全备份当然就是全部都备份了
- 增量备份只备份一次完整的,然后每天只增加新增的内容
- 差异备份,还是制作一个完整的备份,后面每天只针对Sunday,做差异的备份。
5.2 完全物理备份
备份很简单直接tar一个命令就OK了,然后就开始还原(只还原到备份那一刻):
mkdir /backup
cd /var/lib/mysql
tar -cf /backup/`date +%F`.gz *
#开始还原
systemctl stop mysqld
rm -rf /var/lib/mysql/*
tar -xf /backup/2020-04-14.gz -C /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql
systemctl start mysqld
#登录测试数据库是否还在
mysql -p'Root@321'
show databases;
5.3 LVM快照实现物理备份
数据一致,服务可用。
注: MySQL数据 lv 和将要创建的 snapshot 必须在同一VG,因此VG必须要有一定的剩于空间
优点:
- 几乎是热备(创建快照前把表上锁,创建完后立即释放)
- 支持所有存储引擎
- 备份速度快
- 无需使用昂贵的商业软件(它是操作系统级别的)
缺点:
- 可能需要跨部门协调(使用操作系统级别的命令, DBA-般没权限)
- 无法预计服务停止时间
- 数据如果分布在多个卷上比较麻烦(针对存储级别而言)