目录
MySQL的备份和还原
1.为什么要备份?
Backup备份 recovery恢复(还原)
(1)天灾人祸、误操作、安全机制等
(2)付出代价(费用、人力)
停止业务–》会损失收入
备份的时间需要注意:一般选择在服务器不忙的时候
- 什么时候备份
一般选择在服务器不忙的时候
3点–》写脚本去备份
2.备份类型
完全备份、部分备份、增量备份、差异备份
- 完全备份:整个数据集
- 部分备份:只备份数据子集,如部分库或表
- 增量备份:仅备份最近一次完全备份或增量备份(如果存在增量)以来变化的数据,备份较快,还原复杂
- 差异备份:仅备份最近一次完全备份以来变化的数据,备份较慢,还原简单
//注意:二进制日志文件不应该与数据文件放在同一磁盘
3.备份种类
- 热备(online):mysqld服务是运行的情况下去备份。mysqldump、SQLyog、mysql
workbench等工具来备份、xtrabackup - 冷备(offline):mysql服务需要停止,然后去拷贝数据
恢复:mysql、SQLyog等工具来备份
物理和逻辑的备份
- 物理:备份数据库的文件或者磁盘–》在linux系统里的文件系统上 (例如cp, scp,tar, rsync)
- 逻辑:备份数据库里的表的结构和执行的语句(insert、create)–>进入到MySQL的内部 Mysqldump
Mysql的数据目录在哪里?
/var/lib/mysql
/data/mysql
每个数据库对应一个目录,里面存放表的数据
[root@MYSQL aliresearch_db]# ls
article.frm article.ibd catagory.frm catagory.ibd db.opt user.frm user.ibd
- .frm 是存放表结构的文件,表里的字段和字段的类型等信息
- .ibd 是存放数据和索引的文件
4.mysql备份工具
mysqldump+复制binlog:
- mysqldump:完全备份复制binlog中指定时间范围的event:增量备份
LVM快照+复制binlog:
- LVM快照:使用cp或tar等做物理备份;完全备份复制binlog中指定时间范围的event:增量备份
其他工具
- xtrabackup:由Percona提供支持对InnoDB做热备(物理备份)的工具,支持完全备份、增量备份
- mysqlbackup:热备份, MySQL Enterprise Edition组件
5. Mysqldump说明
- mysqldump客户端是一个逻辑备份工具,备份出数据库中表和数据的SQL语句。
5.1 注意事项
- 在对数据库进行完全备份前,需要收集数据库相关信息,确保备份内容完整,以下为收集语句
\-- 查看表相关信息
select table_schema,table_name,table_collation,en