备份类型
-
全量备份
- 备份所有数据 增量备份
- 仅备份自上一次完全备份或增量备份以来变量的那部数据
-
差异备份
- 仅备份自上一次完全备份以来变量的那部数据
-
物理备份
- 复制数据文件进行的备份,类似与拿硬盘拷贝数据 逻辑备份
- 从数据库导出数据另存在一个或多个文件中;基于协议
根据数据服务是否在线划分
-
热备
- 读写操作均可进行的状态下所做的备份;不用停止服务 温备
- 可读但不可写状态下进行的备份,像微博站点一类的网站相当于无法使用 冷备
- 读写操作均不可进行的状态下所做的备份,需要停止服务
备份策略及手段
根据数据更新频率的不同来决定备份频率
全量+差异 + binlogs
全量+增量 + binlogs
备份手段:物理、逻辑
备份工具
mysqldump
它是客户端工具,可以远程连接到服务器上备份数据库
以下是简单备份示例,以下方法存在的问题:数据库服务器可能正在被访问,在备份前要锁住数据库,要不然时间点会不一致,没法用于还原数据库
# 全量备份
[root@centos7 ~]# mysqldump -uroot -p123456 -h192.168.6.17 --all-databases > mydb.sql
InnoDB存储引擎:支持温备和热备
–single-transaction:创建一个事务,基于此执行备份;可能有事务没有提交,完了要执行一次崩溃后的恢复操作
-
其它选项:
-
-R, –routines:备份指定库的存储过程和存储函数;
–triggers:备份指定库的触发器;
-E, –events:
–master-data[=#]
1:记录为CHANGE MASTER TO语句,备份那一刻二进制文件在哪个文件的哪个位置,此语句不被注释;
2:记录为CHANGE MASTER TO语句,备份那一刻二进制文件在哪个文件的哪个位置,此语句被注释,记录备份时间点,方便备份;
–flush-logs:锁定表完成后,即进行日志刷新操作;
改进示例:
# 连接主机备份,全量备份
[root@centos7 ~]# mysqldump -uroot -p123456 -h192.168.6.17 --single-transaction -R --triggers -E --master-data=2 --flush-logs --all-databases > mydb-$(date +%F-%H-%M-%S).sql
# 二进制日志导出,由于执行日志滚动,这里二进制文件为master-log